A dactilografie é significativa na programação. Você será mais eficiente ao usar técnicas de digitação rápida para escrever código na linguagem de programação SQL.
Programação em SQL e dactilografia
Învățarea SQL și exersarea dactilografiei merg foarte bine împreună. Interogările SQL sunt pline de paranteze, virgule, operatori și ghilimele. Greșeli mici, cum ar fi o ghilimea greșită sau lipsa unui punct și virgulă, pot face ca întreaga interogare să eșueze. Atunci când scrii SQL, este util să știi ce părți din sintaxă sunt comune între diferite baze de date și care sunt specifice fiecărui sistem. Acest articol se concentrează în principal pe PostgreSQL, dar menționează și MySQL, SQLite și SQL Server acolo unde sintaxa diferă.
Ce este caracteristic pentru sintaxa SQL?
SQL (Structured Query Language) este un limbaj declarativ. În loc să descrii pas cu pas cum să obții datele, declari ce date dorești. Aproape fiecare instrucțiune începe cu un cuvânt-cheie precum SELECT
, INSERT
sau UPDATE
. Ordinea clauzelor este fixă: SELECT ... FROM ... WHERE ... GROUP BY ... HAVING ... ORDER BY ...
. PostgreSQL și MySQL împărtășesc această ordine, deci dacă o înveți într-un sistem, o poți aplica și în celălalt.
SELECT id, name
FROM customers
WHERE active = true
ORDER BY created_at DESC;
Caractere speciale frecvent utilizate
SQL conține multe semne de punctuație. Parantezele ()
înconjoară funcțiile și condițiile. Virgulele ,
separă coloanele. Punctul .
este folosit pentru scheme și numele tabelelor, cum ar fi public.users
. Ghilimelele simple '...'
marchează șirurile de caractere. PostgreSQL folosește ghilimele duble "..."
pentru identificatori, în timp ce MySQL folosește backticks `...`
. În SQL Server apar și paranteze drepte [...]
. Exersarea acestor simboluri ajută la scrierea corectă a interogărilor.
-- Șir de caractere
SELECT * FROM books WHERE title = 'War and Peace';
-- Identificatori cu spații (PostgreSQL)
SELECT "Order ID", "Customer Name" FROM orders;
Litere mari și mici
Prin convenție, cuvintele-cheie SQL sunt scrise adesea cu majuscule: SELECT
, FROM
, WHERE
. Acest lucru le face mai vizibile, dar nu este obligatoriu. În PostgreSQL, identificatorii nescrişi între ghilimele sunt convertiți automat în litere mici, astfel încât MyTable
și mytable
sunt considerate la fel. În MySQL, comportamentul depinde de sistemul de operare. Pentru exercițiu, este comun să scrii cuvintele-cheie cu majuscule pentru a evidenția structura interogării.
Punct și virgulă și sfârșitul instrucțiunilor
În PostgreSQL, fiecare instrucțiune se termină de obicei cu punct și virgulă ;
. Omiterea acestuia poate bloca execuția în instrumente precum psql
. MySQL și SQLite sunt mai permisive în modul interactiv, dar punctul și virgula rămân o bună practică. Acest mic caracter este adesea cauza eșecurilor.
Interogări SELECT și join-uri
Scrierea interogărilor înseamnă adesea scrierea de join-uri. PostgreSQL folosește INNER JOIN
, LEFT JOIN
și RIGHT JOIN
. Fiecare join necesită cuvântul-cheie ON
urmat de o condiție. Un spațiu lipsă sau o greșeală de tastare în condiție invalidează interogarea. Exersarea join-urilor ajută la precizia tastării simbolurilor precum =
și .
.
SELECT c.id, c.name, o.amount
FROM customers c
INNER JOIN orders o ON o.customer_id = c.id
WHERE o.amount > 100;
Funcții și expresii
PostgreSQL are multe funcții integrate, precum COUNT()
, SUM()
și AVG()
. Parantezele sunt întotdeauna necesare. Funcții de dată și oră precum NOW()
sau DATE_TRUNC()
sunt specifice PostgreSQL. MySQL are echivalente precum CURDATE()
sau DATE_FORMAT()
. Scrierea lor corectă necesită atenție la underscores, virgule și paranteze.
SELECT DATE_TRUNC('month', created_at) AS month,
COUNT(*) AS orders
FROM orders
GROUP BY month
ORDER BY month;
INSERT, UPDATE, DELETE
Instrucțiunile care modifică datele conțin multe semne de punctuație. INSERT
folosește paranteze și virgule pentru coloane și valori. UPDATE
folosește =
separate prin virgule. DELETE
combină cuvinte-cheie cu condiții. Aceste structuri sunt aproape identice în PostgreSQL, MySQL, SQLite și SQL Server, deși regulile ghilimelelor pot varia.
INSERT INTO users (id, name, email)
VALUES (1, 'Alice', 'a@example.com');
UPDATE users
SET name = 'Bob', email = 'bob@example.com'
WHERE id = 1;
DELETE FROM users WHERE id = 2;
Common Table Expressions (CTE)
PostgreSQL folosește frecvent CTE-uri care încep cu WITH
. Ele implică multe paranteze și virgule, ceea ce le face un bun exercițiu de tastare. MySQL și SQLite le suportă în versiunile recente, iar SQL Server de asemenea. Plasarea corectă a parantezelor este cea mai frecventă greșeală.
WITH recent_orders AS (
SELECT * FROM orders WHERE created_at > NOW() - INTERVAL '30 days'
)
SELECT customer_id, COUNT(*) AS order_count
FROM recent_orders
GROUP BY customer_id;
Funcții de fereastră
PostgreSQL este cunoscut pentru funcțiile sale de fereastră avansate. Sintaxa tipică OVER (PARTITION BY ... ORDER BY ...)
necesită atenție la paranteze și cuvinte-cheie. MySQL și SQL Server le acceptă, dar PostgreSQL este adesea considerat referința.
SELECT customer_id,
SUM(amount) OVER (PARTITION BY customer_id ORDER BY created_at) AS running_total
FROM payments;
Parametri și placeholders
În aplicații, placeholders diferă între baze de date. PostgreSQL folosește $1, $2
, MySQL și SQLite folosesc ?
, iar SQL Server folosește @p1
. Aceste simboluri mici sunt ușor de greșit, dar sunt esențiale pentru execuție.
-- PostgreSQL
SELECT * FROM users WHERE id = $1;
-- MySQL
SELECT * FROM users WHERE id = ?;
Rezumat
Prin convenție, cuvintele-cheie SQL sunt scrise cu majuscule, în timp ce identificatorii rămân cu minuscule, cu excepția cazului în care sunt între ghilimele. PostgreSQL adaugă ghilimele duble pentru identificatori, placeholders $n
, CTE-uri și funcții de fereastră. MySQL folosește backticks și placeholders ?
. SQL Server introduce paranteze drepte și parametri @
. SQLite menține sintaxa simplă, dar necesită precizie. Exersarea interogărilor SQL îmbunătățește acuratețea la scrierea semnelor de punctuație, cuvintelor-cheie și simbolurilor, iar concentrarea pe PostgreSQL oferă experiență cu una dintre cele mai utilizate baze de date moderne.