Tangentbordsövning: Programmering i SQL

stäng och börja skriva

Tangentbordsträning är betydelsefull för programmering. Du är mer effektiv med snabbskrivningstekniker för att skriva kod i programmeringsspråket SQL.

Låt oss lära oss mer om SQL språk och tangentbordsträning av kodning i SQL.

Kodning i SQL och tangentbordsträning

Att lära sig SQL och träna tangentbordsskrivning hänger naturligt ihop. SQL-frågor är fulla av parenteser, kommatecken, operatorer och citattecken. Små misstag, som ett felaktigt citattecken eller ett glömt semikolon, kan få hela frågan att misslyckas. När du skriver SQL är det bra att veta vilka delar av syntaxen som är gemensamma mellan databaser och vilka som är specifika. Den här artikeln fokuserar främst på PostgreSQL, men nämner också MySQL, SQLite och SQL Server där syntaxen skiljer sig åt.

Vad är typiskt för SQL-syntaxen?

SQL (Structured Query Language) är ett deklarativt språk. Istället för att beskriva steg för steg hur data ska hämtas, deklarerar du vilka data du vill ha. Nästan varje sats börjar med ett nyckelord som SELECT, INSERT eller UPDATE. Ordningen på klausulerna är fast: SELECT ... FROM ... WHERE ... GROUP BY ... HAVING ... ORDER BY .... PostgreSQL och MySQL delar denna ordning, så om du lär dig den i ett system kan du använda den i ett annat.

SELECT id, name
FROM customers
WHERE active = true
ORDER BY created_at DESC;

Vanliga specialtecken

SQL innehåller många skiljetecken. Parenteser () omsluter funktioner och villkor. Kommatecken , separerar kolumner. Punkt . används i scheman och tabellnamn, t.ex. public.users. Enkla citattecken '...' markerar textsträngar. PostgreSQL använder dubbla citattecken "..." för identifierare, medan MySQL använder backticks `...`. I SQL Server används även hakparenteser [...]. Att öva på dessa symboler hjälper dig att skriva frågor korrekt.

-- Textsträng
SELECT * FROM books WHERE title = 'War and Peace';

-- Identifierare med mellanslag (PostgreSQL)
SELECT "Order ID", "Customer Name" FROM orders;

Versaler och gemener

Av konvention skrivs SQL-nyckelord ofta med versaler: SELECT, FROM, WHERE. Det gör dem mer synliga, men det är inte obligatoriskt. I PostgreSQL konverteras icke-citerade identifierare automatiskt till gemener, så MyTable och mytable behandlas som samma. I MySQL beror beteendet på operativsystemet. Vid övning är det vanligt att använda versaler för nyckelord för att framhäva frågans struktur.

Semikolon och slutet på satser

I PostgreSQL avslutas varje sats normalt med semikolon ;. Att glömma det kan stoppa körningen i verktyg som psql. MySQL och SQLite är mer förlåtande i interaktivt läge, men semikolon är ändå god praxis. Detta lilla tecken är ofta orsaken till fel.

SELECT-frågor och joins

Att skriva frågor innebär ofta att skriva joins. PostgreSQL använder INNER JOIN, LEFT JOIN och RIGHT JOIN. Varje join kräver nyckelordet ON följt av ett villkor. Ett saknat mellanslag eller ett skrivfel i villkoret gör frågan ogiltig. Att öva joins hjälper till med precision i symboler som = och ..

SELECT c.id, c.name, o.amount
FROM customers c
INNER JOIN orders o ON o.customer_id = c.id
WHERE o.amount > 100;

Funktioner och uttryck

PostgreSQL har många inbyggda funktioner som COUNT(), SUM() och AVG(). Parenteser krävs alltid. Datum- och tidsfunktioner som NOW() eller DATE_TRUNC() är specifika för PostgreSQL. MySQL har motsvarigheter som CURDATE() eller DATE_FORMAT(). Att skriva dem korrekt kräver uppmärksamhet på understreck, kommatecken och parenteser.

SELECT DATE_TRUNC('month', created_at) AS month,
       COUNT(*) AS orders
FROM orders
GROUP BY month
ORDER BY month;

INSERT, UPDATE, DELETE

Satser som ändrar data innehåller många skiljetecken. INSERT använder parenteser och kommatecken för kolumner och värden. UPDATE använder = åtskilda med kommatecken. DELETE kombinerar nyckelord och villkor. Dessa strukturer är nästan identiska i PostgreSQL, MySQL, SQLite och SQL Server, även om citeringsreglerna kan variera.

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 använder ofta CTE:er som börjar med WITH. De innehåller många parenteser och kommatecken, vilket gör dem till bra övning. MySQL och SQLite stöder dem i nyare versioner, och SQL Server också. Att placera parenteserna rätt är det vanligaste misstaget.

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;

Fönsterfunktioner

PostgreSQL är känt för sina avancerade fönsterfunktioner. Den typiska syntaxen OVER (PARTITION BY ... ORDER BY ...) kräver exakt inmatning av parenteser och nyckelord. MySQL och SQL Server stöder dem också, men PostgreSQL används ofta som referens.

SELECT customer_id,
       SUM(amount) OVER (PARTITION BY customer_id ORDER BY created_at) AS running_total
FROM payments;

Parametrar och placeholders

I applikationer varierar placeholders mellan databaser. PostgreSQL använder $1, $2, MySQL och SQLite använder ? och SQL Server använder @p1. Dessa små symboler är lätta att skriva fel, men avgörande för exekvering.

-- PostgreSQL
SELECT * FROM users WHERE id = $1;

-- MySQL
SELECT * FROM users WHERE id = ?;

Sammanfattning

Av konvention skrivs SQL-nyckelord ofta med versaler, medan identifierare förblir gemener om de inte är citerade. PostgreSQL använder dubbla citattecken för identifierare, placeholders $n, CTE:er och fönsterfunktioner. MySQL använder backticks och placeholders ?. SQL Server introducerar hakparenteser och parametrar @. SQLite håller syntaxen enkel men kräver precision. Att öva SQL-frågor förbättrar noggrannheten i symboler och nyckelord, och att fokusera på PostgreSQL ger erfarenhet med en av de mest använda moderna databaserna.