Nastavenia písania sa nepodarilo obnoviť. Načítaj stránku znova a skús to ešte raz.
Cvičenie strojopisu: Programovanie v jazyku SQL
Pravidlá výpočtu presnosti sa zmenili. Toto cvičenie sa začína znova od začiatku.
Uloženie dokončeného cvičenia sa nepodarilo potvrdiť. Skúste ho uložiť znova bez opätovného písania.
Cvičenie strojopisu: Programovanie v jazyku SQL
Strojopis je pri programovaní dôležitý. Pri písaní kódu v programovacom jazyku SQL vám techniky rýchleho písania pomôžu pracovať efektívnejšie.
Programovanie v jazyku SQL a strojopis
Učenie SQL a precvičovanie strojopisu idú prirodzene dokopy. SQL dopyty sú plné zátvoriek, čiarok, operátorov a úvodzoviek. Malé chyby, ako nesprávna úvodzovka alebo chýbajúca bodkočiarka, môžu spôsobiť zlyhanie celého dopytu. Pri písaní SQL je užitočné vedieť, ktoré časti syntaxe sú spoločné medzi rôznymi databázami a ktoré sú špecifické. Tento článok sa zameriava najmä na PostgreSQL, ale spomína aj MySQL, SQLite a SQL Server tam, kde sa syntax líši.
Čo je charakteristické pre syntax SQL?
SQL (Structured Query Language) je deklaratívny jazyk. Namiesto opisovania krokov, ako získať údaje, deklarujete, ktoré údaje chcete. Takmer každý príkaz začína kľúčovým slovom ako SELECT, INSERT alebo UPDATE. Poradie klauzúl je pevné: SELECT ... FROM ... WHERE ... GROUP BY ... HAVING ... ORDER BY .... PostgreSQL a MySQL toto poradie zdieľajú, takže ak sa ho naučíte v jednom systéme, využijete ho aj v druhom.
SELECT id, name
FROM customers
WHERE active = true
ORDER BY created_at DESC;
Často používané špeciálne znaky
SQL obsahuje veľa interpunkcie. Zátvorky () uzatvárajú argumenty funkcií a slúžia na zoskupovanie podmienok. Čiarky , oddeľujú stĺpce. Bodka . sa používa pri schémach a názvoch tabuliek, napríklad public.users. Jednoduché úvodzovky '...' označujú textové reťazce. PostgreSQL používa dvojité úvodzovky "..." pre identifikátory, zatiaľ čo MySQL používa backticky `...`. V SQL Serveri sa používajú aj hranaté zátvorky [...]. Precvičovanie týchto znakov pomáha písať dopyty správne.
-- Textový reťazec
SELECT * FROM books WHERE title = 'War and Peace';
-- Identifikátory s medzerami (PostgreSQL)
SELECT "Order ID", "Customer Name" FROM orders;
Veľké a malé písmená
Podľa zvyklostí sa kľúčové slová SQL píšu často veľkými písmenami: SELECT, FROM, WHERE. Zviditeľňuje to ich úlohu, ale nie je to povinné. V PostgreSQL sa necitované identifikátory automaticky menia na malé písmená, takže MyTable a mytable sa považujú za rovnaké. V MySQL závisí rozlišovanie veľkých a malých písmen v názvoch databáz a tabuliek od operačného systému a nastavenia servera. Na precvičovanie sa často používajú veľké písmená pre kľúčové slová, aby bola štruktúra dotazu jasná.
Bodkočiarka a koniec príkazu
V SQL bodkočiarka ; ukončuje príkaz. Interaktívne nástroje, ako psql, klient MySQL a konzola SQLite, na tento znak bežne čakajú pred spustením príkazu. V psql môžete aktuálny dopyt odoslať aj príkazom \g. Ak sa namiesto výsledku zobrazí výzva na zadanie ďalšieho textu, skontrolujte, či ste príkaz ukončili.
Dopyty SELECT a joiny
Písanie dopytov často znamená písanie joinov. PostgreSQL používa INNER JOIN, LEFT JOIN a RIGHT JOIN. V nasledujúcom príklade je podmienka spojenia uvedená za kľúčovým slovom ON. Existujú aj spojenia so syntaxou USING alebo NATURAL. Chýbajúca medzera alebo preklep podmienky zneplatní dopyt. Precvičovanie joinov pomáha pri presnom písaní symbolov ako = a ..
SELECT c.id, c.name, o.amount
FROM customers c
INNER JOIN orders o ON o.customer_id = c.id
WHERE o.amount > 100;
Funkcie a výrazy
PostgreSQL má množstvo vstavaných funkcií, ako COUNT(), SUM() a AVG(). Zátvorky sú vždy povinné. Funkcie dátumu a času ako NOW() alebo DATE_TRUNC() sú dostupné v PostgreSQL; ich dostupnosť a správanie sa medzi databázami líšia. MySQL má aj funkcie ako CURDATE() alebo DATE_FORMAT(). Správne napísanie vyžaduje pozornosť na podčiarkovníky, čiarky a zátvorky.
SELECT DATE_TRUNC('month', created_at) AS month,
COUNT(*) AS orders
FROM orders
GROUP BY month
ORDER BY month;
INSERT, UPDATE, DELETE
Príkazy, ktoré menia údaje, obsahujú veľa interpunkcie. INSERT používa zátvorky a čiarky na zoznam stĺpcov a hodnôt. UPDATE používa operátor = na priradenie hodnôt a čiarky na oddelenie jednotlivých priradení. DELETE kombinuje kľúčové slová s podmienkami. Tieto štruktúry sú takmer identické v PostgreSQL, MySQL, SQLite a SQL Serveri, hoci pravidlá citovania sa líšia.
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 často používa CTE začínajúce WITH. Obsahujú veľa zátvoriek a čiarok, takže sú vhodným cvičením na písanie. MySQL, SQLite a SQL Server tiež podporujú CTE. Skontrolujte, či každej otváracej zátvorke zodpovedá uzatváracia zátvorka.
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;
Okenné funkcie
PostgreSQL je známe svojimi pokročilými okennými funkciami. Typická syntax OVER (PARTITION BY ... ORDER BY ...) vyžaduje presné použitie zátvoriek a kľúčových slov. MySQL a SQL Server tiež podporujú okenné funkcie. Nasledujúci príklad používa syntax PostgreSQL.
SELECT customer_id,
SUM(amount) OVER (PARTITION BY customer_id ORDER BY created_at) AS running_total
FROM payments;
Parametre a placeholders
V aplikáciách závisia zástupné symboly parametrov od databázy aj použitého ovládača. Natívne pripravené príkazy PostgreSQL používajú $1, $2, pripravené príkazy MySQL a dopyty SQLite môžu používať ? a parametre SQL Servera majú názvy ako @p1. Ovládač môže vyžadovať inú syntax, napríklad %s v Psycopg. Overte si ju v jeho dokumentácii, pretože pri písaní týchto malých symbolov ľahko urobíte preklep.
-- PostgreSQL
SELECT * FROM users WHERE id = $1;
-- MySQL
SELECT * FROM users WHERE id = ?;
Zhrnutie
Podľa zvyklostí sa kľúčové slová SQL píšu veľkými písmenami. PostgreSQL mení identifikátory bez dvojitých úvodzoviek na malé písmená; v iných systémoch sa pravidlá líšia. PostgreSQL používa dvojité úvodzovky pre identifikátory, placeholders $n, CTE a okenné funkcie. MySQL používa backticky a ? placeholders. SQL Server zavádza hranaté zátvorky a parametre @. SQLite udržuje syntax jednoduchú, ale vyžaduje presnosť. Precvičovanie SQL dopytov zlepšuje presnosť písania symbolov a kľúčových slov a zameranie sa na PostgreSQL dáva skúsenosti s jednou z najpoužívanejších moderných databáz.