Touch metoden er betydelig i programmering. Du er mer effektiv ved å bruke hurtigskrivingsteknikker for å skrive kode i programmeringsspråket SQL.
Programmering i SQL og touch metoden
Å lære SQL og å øve på touchmetoden henger naturlig sammen. SQL-spørringer er fulle av parenteser, kommaer, operatorer og anførselstegn. Små feil, som feil anførselstegn eller en glemt semikolon, kan gjøre at hele spørringen feiler. Når du skriver SQL, er det nyttig å vite hvilke deler av syntaksen som er felles mellom databaser, og hvilke som er spesifikke. Denne artikkelen fokuserer mest på PostgreSQL, men nevner også MySQL, SQLite og SQL Server der syntaksen varierer.
Hva kjennetegner SQL-syntaksen?
SQL (Structured Query Language) er et deklarativt språk. I stedet for å beskrive steg for steg hvordan data hentes, sier du hvilke data du vil ha. Nesten alle setninger begynner med et nøkkelord som SELECT
, INSERT
eller UPDATE
. Rekkefølgen på klausulene er fast: SELECT ... FROM ... WHERE ... GROUP BY ... HAVING ... ORDER BY ...
. PostgreSQL og MySQL deler denne rekkefølgen, så lærer du den i ett system, kan du bruke den i et annet.
SELECT id, name
FROM customers
WHERE active = true
ORDER BY created_at DESC;
Spesialtegn som brukes ofte
SQL inneholder mange skilletegn. Parenteser ()
omslutter funksjoner og betingelser. Komma ,
skiller kolonner. Punktum .
brukes for skjema og tabellnavn, for eksempel public.users
. Enkle anførselstegn '...'
markerer tekststrenger. PostgreSQL bruker doble anførselstegn "..."
for identifikatorer, mens MySQL bruker backticks `...`
. I SQL Server brukes også klammeparenteser [...]
. Å trene på disse symbolene hjelper deg å skrive feilfrie spørringer.
-- Tekststreng
SELECT * FROM books WHERE title = 'War and Peace';
-- Identifikatorer med mellomrom (PostgreSQL)
SELECT "Order ID", "Customer Name" FROM orders;
Store og små bokstaver
Av konvensjon skrives SQL-nøkkelord ofte med store bokstaver: SELECT
, FROM
, WHERE
. Dette gjør dem mer synlige, men det er ikke påbudt. I PostgreSQL konverteres ikke-siterte identifikatorer automatisk til små bokstaver, så MyTable
og mytable
behandles likt. I MySQL avhenger oppførselen av operativsystemet. Til øving er det vanlig å bruke store bokstaver for nøkkelord for å tydeliggjøre strukturen.
Semikolon og slutten på en setning
I PostgreSQL slutter hver setning vanligvis med et semikolon ;
. Glemmer du det, kan det stoppe kjøringen i verktøy som psql
. MySQL og SQLite er mer tilgivende i interaktiv modus, men semikolon er fortsatt en god praksis. Dette lille tegnet er ofte årsaken til feil.
SELECT-spørringer og joins
Å skrive spørringer innebærer ofte å skrive joins. PostgreSQL bruker INNER JOIN
, LEFT JOIN
og RIGHT JOIN
. Hver join krever nøkkelordet ON
etterfulgt av en betingelse. Et manglende mellomrom eller en skrivefeil i betingelsen gjør spørringen ugyldig. Øving på joins gir presisjon i bruk av symboler som =
og .
.
SELECT c.id, c.name, o.amount
FROM customers c
INNER JOIN orders o ON o.customer_id = c.id
WHERE o.amount > 100;
Funksjoner og uttrykk
PostgreSQL har mange innebygde funksjoner som COUNT()
, SUM()
og AVG()
. Parenteser er alltid påkrevd. Dato- og tidsfunksjoner som NOW()
eller DATE_TRUNC()
er spesifikke for PostgreSQL. MySQL har tilsvarende som CURDATE()
eller DATE_FORMAT()
. Å skrive dem riktig krever oppmerksomhet på understreker, komma og parenteser.
SELECT DATE_TRUNC('month', created_at) AS month,
COUNT(*) AS orders
FROM orders
GROUP BY month
ORDER BY month;
INSERT, UPDATE, DELETE
Setninger som endrer data har mange skilletegn. INSERT
bruker parenteser og kommaer for kolonner og verdier. UPDATE
bruker =
atskilt med kommaer. DELETE
kombinerer nøkkelord og betingelser. Disse strukturene er nesten identiske i PostgreSQL, MySQL, SQLite og SQL Server, selv om siteringsreglene kan variere.
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 bruker ofte CTE-er som starter med WITH
. De involverer mange parenteser og kommaer, noe som gjør dem til god tastetrening. MySQL og SQLite støtter dem i nyere versjoner, og SQL Server også. Riktig plassering av parenteser er den vanligste feilen.
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;
Vindusfunksjoner
PostgreSQL er kjent for sine avanserte vindusfunksjoner. Den typiske syntaksen OVER (PARTITION BY ... ORDER BY ...)
krever nøyaktig bruk av parenteser og nøkkelord. MySQL og SQL Server støtter dem også, men PostgreSQL blir ofte brukt som referanse.
SELECT customer_id,
SUM(amount) OVER (PARTITION BY customer_id ORDER BY created_at) AS running_total
FROM payments;
Parametere og placeholders
I applikasjoner varierer placeholders mellom databaser. PostgreSQL bruker $1, $2
, MySQL og SQLite bruker ?
, og SQL Server bruker @p1
. Disse små symbolene er lette å taste feil, men avgjørende for utførelse.
-- PostgreSQL
SELECT * FROM users WHERE id = $1;
-- MySQL
SELECT * FROM users WHERE id = ?;
Oppsummering
Av konvensjon skrives SQL-nøkkelord ofte i store bokstaver, mens identifikatorer holdes små med mindre de er sitert. PostgreSQL bruker doble anførselstegn for identifikatorer, placeholders $n
, CTE-er og vindusfunksjoner. MySQL bruker backticks og ?
-placeholders. SQL Server innfører klammeparenteser og @
-parametere. SQLite holder syntaksen enkel, men krever presisjon. Å øve på SQL-spørringer forbedrer nøyaktigheten ved bruk av skilletegn, nøkkelord og symboler, og å fokusere på PostgreSQL gir erfaring med en av de mest brukte moderne databasene.