Menu
Coddy logo textTech

SQL Cheat Sheet: polecenia SQL

Ostatnia aktualizacja

Odpytywanie danych (SELECT)

Serce SQL: odczyt wierszy z jednej lub kilku tabel.

OperacjaSkładnia
Wybór wszystkich kolumnSELECT * FROM users;
Wybór konkretnych kolumnSELECT id, name FROM users;
Zmiana nazwy kolumny (alias)SELECT name AS full_name FROM users;
Unikalne wartościSELECT DISTINCT country FROM users;
Ograniczenie liczby wierszySELECT * FROM users LIMIT 10;
Pominięcie i ograniczenie (stronicowanie)SELECT * FROM users LIMIT 10 OFFSET 20;
Zliczanie wierszySELECT COUNT(*) FROM users;

Filtrowanie wierszy (WHERE)

Zawężanie wierszy zwracanych przez zapytanie.

OperacjaSkładnia
Równość / porównanieWHERE age >= 18
Kilka warunkówWHERE age >= 18 AND country = 'US'
Jeden z warunkówWHERE role = 'admin' OR role = 'owner'
W zbiorzeWHERE country IN ('US', 'CA', 'MX')
W zakresieWHERE price BETWEEN 10 AND 50
Dopasowanie wzorcaWHERE email LIKE '%@gmail.com'
Jest / nie jest nullWHERE deleted_at IS NULL
NegacjaWHERE status NOT IN ('archived')

Sortowanie i grupowanie

OperacjaSkładnia
Sortowanie rosnąco (domyślnie)ORDER BY created_at
Sortowanie malejącoORDER BY created_at DESC
Sortowanie po kilku kolumnachORDER BY country, name DESC
Grupowanie wierszySELECT country, COUNT(*) FROM users GROUP BY country;
Filtrowanie grupGROUP BY country HAVING COUNT(*) > 100

Złączenia (JOIN)

Łączenie wierszy z dwóch tabel na podstawie pasującej kolumny.

Typ złączeniaZwracaSkładnia
INNER JOINTylko wiersze pasujące w obu tabelachFROM orders o INNER JOIN users u ON o.user_id = u.id
LEFT JOINWszystkie wiersze z lewej + dopasowania (w przeciwnym razie null)FROM users u LEFT JOIN orders o ON o.user_id = u.id
RIGHT JOINWszystkie wiersze z prawej + dopasowaniaFROM orders o RIGHT JOIN users u ON o.user_id = u.id
FULL OUTER JOINWszystkie wiersze z obu stronFROM a FULL OUTER JOIN b ON a.id = b.a_id
CROSS JOINKażda kombinacja (iloczyn kartezjański)FROM sizes CROSS JOIN colors
Self joinTabela złączona sama ze sobąFROM employees e JOIN employees m ON e.manager_id = m.id

Funkcje agregujące

Obliczanie jednej wartości dla grupy wierszy.

FunkcjaCo robi
COUNT(*)Liczba wierszy
COUNT(col)Liczba wartości różnych od null
SUM(col)Suma kolumny liczbowej
AVG(col)Wartość średnia
MIN(col) / MAX(col)Najmniejsza / największa wartość
STRING_AGG(col, ',')Łączenie wartości (Postgres; GROUP_CONCAT w MySQL)

Funkcje okna

Obliczenia na zbiorze wierszy bez zwijania ich do jednego.

FunkcjaSkładnia
Numer wierszaROW_NUMBER() OVER (ORDER BY score DESC)
Ranking (z lukami)RANK() OVER (PARTITION BY country ORDER BY score DESC)
Ranking gęstyDENSE_RANK() OVER (ORDER BY score DESC)
Suma narastającaSUM(amount) OVER (ORDER BY created_at)
Poprzedni / następny wierszLAG(score) OVER (ORDER BY date), LEAD(score) OVER (...)

Zmiana danych (INSERT, UPDATE, DELETE)

OperacjaSkładnia
Wstawienie wierszaINSERT INTO users (name, email) VALUES ('Ada', 'ada@x.com');
Wstawienie kilku wierszyINSERT INTO users (name) VALUES ('Ada'), ('Alan');
Aktualizacja wierszyUPDATE users SET active = true WHERE id = 1;
Usunięcie wierszyDELETE FROM users WHERE active = false;
Upsert (Postgres/SQLite)INSERT ... ON CONFLICT (email) DO UPDATE SET name = EXCLUDED.name;

Definiowanie tabel (DDL)

OperacjaSkładnia
Utworzenie tabeliCREATE TABLE users (id INTEGER PRIMARY KEY, name TEXT NOT NULL);
Dodanie kolumnyALTER TABLE users ADD COLUMN age INTEGER;
Usunięcie kolumnyALTER TABLE users DROP COLUMN age;
Usunięcie tabeliDROP TABLE users;
Utworzenie indeksuCREATE INDEX idx_users_email ON users (email);
Klucz obcyFOREIGN KEY (user_id) REFERENCES users (id)

Wszystkie polecenia, klauzule i złączenia SQL, których potrzebujesz, na jednej stronie. Ten SQL cheat sheet to szybka ściąga do odpytywania i zmieniania danych relacyjnych: klauzule SELECT, cztery typy JOIN, agregacja oraz DDL i DML do tworzenia i aktualizowania tabel.

Składnia opisana tutaj to standardowy ANSI SQL, który działa w PostgreSQL, MySQL, SQLite i SQL Server, chyba że zaznaczono inaczej. Skopiuj to, czego potrzebujesz, albo uruchom każde zapytanie w edytorze online SQL, bez instalowania bazy danych. Dopiero zaczynasz z bazami danych? Darmowy interaktywny kurs SQL w Coddy przeprowadzi cię przez zapytania, złączenia i agregację.

SQL cheat sheet: FAQ

Czy ten SQL cheat sheet jest darmowy?
Tak. Ten SQL cheat sheet jest całkowicie darmowy i nie wymaga rejestracji. Dodaj go do zakładek i wracaj, gdy potrzebujesz sprawdzić klauzulę, złączenie albo funkcję.
Czy to działa w MySQL, PostgreSQL i SQLite?
W większości tak. Składnia SELECT, WHERE, JOIN, GROUP BY i DDL pokazana tutaj to standardowy ANSI SQL, który działa tak samo w MySQL, PostgreSQL, SQLite i SQL Server. Kilka zaawansowanych funkcji różni się między dialektami (najczęściej upsert i agregacja stringów) i przy tych wierszach zaznaczono różnicę.
Czym różni się INNER JOIN od LEFT JOIN?
INNER JOIN zwraca tylko wiersze, które mają dopasowanie w obu tabelach. LEFT JOIN zwraca każdy wiersz z lewej (pierwszej) tabeli, a kolumny z prawej tabeli wypełnia wartością NULL, gdy nie ma dopasowania. Przydaje się, gdy chcesz wszystkich użytkowników, nawet jeśli niektórzy nie mają zamówień.
Czy mogę ćwiczyć te polecenia SQL online?
Tak. Otwórz edytor online SQL, aby uruchomić dowolne zapytanie z tej ściągi na prawdziwej bazie danych w przeglądarce, bez instalacji. Gdy chcesz nauki krok po kroku, darmowy interaktywny kurs SQL w Coddy przeprowadzi cię od SELECT do złączeń i funkcji okna.
Czy ta ściąga nadaje się dla początkujących?
Tak. Jest uporządkowana od najczęstszych operacji (odpytywanie i filtrowanie) do bardziej zaawansowanych (funkcje okna), więc górne sekcje przydadzą się od pierwszego dnia, a resztę opanujesz z czasem.
Ilustracja języków programowania w Coddy

Naucz się języka SQL z Coddy

ZACZNIJ