A 10 ujjas gépelés jelentős a programozásban. A gyors gépelési technikák használatával hatékonyabban írhat kódot SQL programozási nyelven.
Programozás SQL-ban és 10 ujjas gépelésben
Az SQL tanulása és a gépelés gyakorlása jól kiegészítik egymást. Az SQL-lekérdezések tele vannak zárójelekkel, vesszőkkel, operátorokkal és idézőjelekkel. Apró hibák, például rossz idézőjel vagy hiányzó pontosvessző, az egész lekérdezést hibássá tehetik. SQL írásakor hasznos tudni, mely részek közösek a különböző adatbázisokban, és melyek sajátosak egy adott rendszerre. Ez a cikk elsősorban a PostgreSQL-re összpontosít, de említést tesz a MySQL-ről, SQLite-ról és SQL Serverről is, ahol az eltérés jelentős.
Mi jellemző az SQL szintaxisára?
Az SQL (Structured Query Language) deklaratív nyelv. Nem lépésről lépésre írod le, hogyan kell lekérdezni az adatokat, hanem megmondod, mit szeretnél. Szinte minden utasítás egy kulcsszóval kezdődik, például SELECT
, INSERT
vagy UPDATE
. A záradékok sorrendje kötött: SELECT ... FROM ... WHERE ... GROUP BY ... HAVING ... ORDER BY ...
. A PostgreSQL és a MySQL ugyanazt a sorrendet követi, így ha az egyiket megtanulod, a másikban is használhatod.
SELECT id, name
FROM customers
WHERE active = true
ORDER BY created_at DESC;
Gyakran használt speciális karakterek
Az SQL tele van írásjelekkel. A zárójelek ()
függvényeket és feltételeket vesznek körül. A vesszők ,
oszlopokat választanak el. A pont .
sémák és táblanevek esetén használatos, például public.users
. Az egyszeres idézőjelek '...'
szöveges literálokat jelölnek. A PostgreSQL dupla idézőjelet "..."
használ azonosítókhoz, míg a MySQL backtick jelet `...`
. Az SQL Serverben szögletes zárójelek [...]
is előfordulnak. Ezek gyakorlása segít hibátlan lekérdezések írásában.
-- Szöveges literál
SELECT * FROM books WHERE title = 'War and Peace';
-- Azonosítók szóközökkel (PostgreSQL)
SELECT "Order ID", "Customer Name" FROM orders;
Nagy- és kisbetűk
Szokás szerint az SQL kulcsszavakat nagybetűkkel írjuk: SELECT
, FROM
, WHERE
. Ez megkönnyíti a felismerést, de nem kötelező. A PostgreSQL-ben az idézőjelek nélküli azonosítókat automatikusan kisbetűsre alakítja, így a MyTable
és a mytable
ugyanazt jelenti. A MySQL-ben a viselkedés az operációs rendszertől függ. A gyakorláshoz hasznos a nagybetűs kulcsszavak használata, mert így jobban látható a lekérdezés szerkezete.
Pontosvessző és utasítás vége
A PostgreSQL-ben minden utasítás általában pontosvesszővel ;
zárul. Ennek elfelejtése megakadályozhatja a futtatást például a psql
eszközben. A MySQL és az SQLite engedékenyebb interaktív módban, de a pontosvessző továbbra is ajánlott. Ez a kis karakter gyakran hibák forrása.
SELECT-lekérdezések és joinok
Lekérdezések írása gyakran joinok írását is jelenti. A PostgreSQL INNER JOIN
, LEFT JOIN
és RIGHT JOIN
szintaxist használ. Minden join igényli az ON
kulcsszót és egy feltételt. Egy hiányzó szóköz vagy elírt feltétel érvényteleníti a lekérdezést. A joinok gyakorlása segít pontosabban írni az olyan szimbólumokat, mint =
és .
.
SELECT c.id, c.name, o.amount
FROM customers c
INNER JOIN orders o ON o.customer_id = c.id
WHERE o.amount > 100;
Függvények és kifejezések
A PostgreSQL sok beépített függvényt tartalmaz, például COUNT()
, SUM()
és AVG()
. A zárójelek mindig kötelezőek. A dátum- és időfüggvények, mint NOW()
vagy DATE_TRUNC()
, PostgreSQL-specifikusak. A MySQL-ben hasonló a CURDATE()
vagy a DATE_FORMAT()
. Ezek helyes begépelése figyelmet igényel az aláhúzásra, vesszőkre és zárójelekre.
SELECT DATE_TRUNC('month', created_at) AS month,
COUNT(*) AS orders
FROM orders
GROUP BY month
ORDER BY month;
INSERT, UPDATE, DELETE
Az adatmódosító utasítások sok írásjelet tartalmaznak. Az INSERT
zárójeleket és vesszőket használ az oszlopok és értékek felsorolására. Az UPDATE
egyenlőségjeleket =
használ vesszőkkel elválasztva. A DELETE
kulcsszavakat és feltételeket kombinál. Ezek a szerkezetek szinte azonosak PostgreSQL-ben, MySQL-ben, SQLite-ban és SQL Serverben, bár az idézőjelek szabályai eltérhetnek.
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)
A PostgreSQL gyakran használ CTE-ket (Common Table Expressions), amelyek WITH
-szel kezdődnek. Ezek sok zárójelet és vesszőt tartalmaznak, így jó gépelési gyakorlatot jelentenek. A MySQL és az SQLite újabb verziói támogatják őket, és az SQL Server is. A helyes zárójel-elhelyezés a leggyakoribb nehézség.
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;
Ablakfüggvények
A PostgreSQL híres a fejlett ablakfüggvényeiről. A tipikus szintaxis OVER (PARTITION BY ... ORDER BY ...)
pontos zárójelezést és kulcsszavakat igényel. A MySQL és az SQL Server is támogatja az ablakfüggvényeket, de a PostgreSQL az irányadó.
SELECT customer_id,
SUM(amount) OVER (PARTITION BY customer_id ORDER BY created_at) AS running_total
FROM payments;
Paraméterek és placeholders
Alkalmazásokban a placeholder-ek adatbázisonként eltérnek. A PostgreSQL $1, $2
-t használ, a MySQL és az SQLite ?
-t, míg az SQL Server @p1
-t. Ezek apró szimbólumok, amelyeket könnyű elgépelni, de kritikusak a végrehajtás szempontjából.
-- PostgreSQL
SELECT * FROM users WHERE id = $1;
-- MySQL
SELECT * FROM users WHERE id = ?;
Összegzés
A szokás szerint az SQL kulcsszavak nagybetűvel íródnak, míg az azonosítók kisbetűsek maradnak, hacsak nincsenek idézőjelek között. A PostgreSQL dupla idézőjelet használ azonosítókhoz, $n
placeholder-eket, CTE-ket és ablakfüggvényeket. A MySQL backtick jeleket és ?
placeholder-eket használ. Az SQL Server szögletes zárójeleket és @
paramétereket vezet be. Az SQLite egyszerű szintaxist tart fenn, de pontosságot igényel. Az SQL-lekérdezések begyakorlása fejleszti a pontosságot az írásjelek, kulcsszavak és szimbólumok használatában, és a PostgreSQL-re összpontosítva tapasztalatot szerezhetsz az egyik legszélesebb körben használt modern adatbázissal.