SQL Cheatsheet
Podstawowe polecenia i operacje SQL
Oto szczegółowy arkusz SQL obejmujący podstawowe polecenia i operacje:
Zapytania danych
Wybierz konkretne kolumny:
SELECT column1, column2 FROM table_name;
Wybierz wszystkie kolumny:
SELECT * FROM table_name;
Wybierz unikalne wartości:
SELECT DISTINCT column1, column2 FROM table_name;
Filtruj dane:
SELECT column1, column2 FROM table_name WHERE condition;
Sortuj dane:
SELECT column1, column2 FROM table_name ORDER BY column1 [ASC|DESC];
Modyfikacja danych
Wstaw wiersz:
INSERT INTO table_name (column1, column2) VALUES (value1, value2);
Zaktualizuj dane:
UPDATE table_name SET column1 = value1 WHERE condition;
Usuń dane:
DELETE FROM table_name WHERE condition;
Operacje na tabelach
Utwórz tabelę:
CREATE TABLE table_name (
column1 datatype PRIMARY KEY,
column2 datatype,
column3 datatype
);
Zmodyfikuj tabelę:
ALTER TABLE table_name ADD column_name datatype;
Usuń tabelę:
DROP TABLE table_name;
Połączenia
Połączenie wewnętrzne:
SELECT * FROM table1 INNER JOIN table2 ON table1.column = table2.column;
Połączenie lewe:
SELECT * FROM table1 LEFT JOIN table2 ON table1.column = table2.column;
Funkcje agregujące
Zlicz wiersze:
SELECT COUNT(*) FROM table_name;
Sumuj wartości:
SELECT SUM(column_name) FROM table_name;
Średnia wartości:
SELECT AVG(column_name) FROM table_name;
Grupuj:
SELECT column1, COUNT(*) FROM table_name GROUP BY column1;
Podzapytania
Podzapytanie w SELECT:
SELECT column1, (SELECT AVG(column2) FROM table2) AS avg_col2 FROM table1;
Podzapytanie w WHERE:
SELECT * FROM table1 WHERE column1 IN (SELECT column2 FROM table2);
Widoki
Utwórz widok:
CREATE VIEW view_name AS SELECT column1, column2 FROM table_name WHERE condition;
Usuń widok:
DROP VIEW view_name;
Ten arkusz obejmuje najczęściej używane polecenia i operacje SQL.
Dzięki niemu można szybko odnosić się do zapytań, modyfikacji danych, operacji na tabelach, połączeń, funkcji agregujących, podzapytań i widoków.
Połączenie wewnętrzne vs. zewnętrzne
INNER JOIN i LEFT JOIN to dwa typowe rodzaje operacji łączenia w SQL, które różnią się sposobem łączenia danych z wielu tabel:
-
INNER JOIN:
- Zwraca tylko wiersze, w których występuje dopasowanie w obu tabelach na podstawie warunku łączenia.
- Wyklucza wszystkie wiersze, które nie mają odpowiedniego dopasowania w drugiej tabeli.
- Przydatne, gdy chcesz pobrać tylko dane, które występują w obu tabelach.
-
LEFT JOIN (nazywany również LEFT OUTER JOIN):
- Zwraca wszystkie wiersze z lewej tabeli oraz dopasowane wiersze z prawej tabeli.
- Jeśli nie ma dopasowania w prawej tabeli, nadal zawiera wiersz z lewej tabeli i wypełnia wartości NULL dla kolumn z prawej tabeli.
- Przydatne, gdy chcesz zobaczyć wszystkie rekordy z lewej tabeli, nawet jeśli nie mają odpowiednich danych w prawej tabeli.
Kluczowe różnice:
-
Zestaw wyników:
- INNER JOIN: Zwraca tylko dopasowane wiersze.
- LEFT JOIN: Zwraca wszystkie wiersze z lewej tabeli oraz dopasowane wiersze z prawej tabeli.
-
Wartości NULL:
- INNER JOIN: Nie generuje wartości NULL dla niezgodnych wierszy.
- LEFT JOIN: Generuje wartości NULL dla kolumn z prawej tabeli, gdy nie ma dopasowania.
-
Przypadki użycia:
- INNER JOIN: Gdy potrzebujesz danych, które występują w obu tabelach.
- LEFT JOIN: Gdy potrzebujesz wszystkich danych z jednej tabeli oraz ewentualnie dopasowanych danych z drugiej.
-
Kompletność danych:
- INNER JOIN: Może wykluczyć dane, jeśli nie ma dopasowań.
- LEFT JOIN: Zapewnia, że wszystkie dane z lewej tabeli są uwzględnione, dając bardziej kompletny widok danych z lewej tabeli.
Zrozumienie tych różnic pozwala wybrać odpowiedni typ połączenia w zależności od konkretnych potrzeb wyprowadzania danych i celów analizy.