Ultimate SQL Cheat Sheet do zakładek na później [2022]

Opublikowany: 2022-06-17

SQL lub S tructured Query Language to zestaw poleceń służących do zarządzania operacjami relacyjnych baz danych, takimi jak usuwanie, tworzenie, aktualizacja, odczyt i tak dalej.

SQL jest międzynarodowym standardem używanym przez relacyjne bazy danych od 1987 roku. Istnieją cztery typy poleceń SQL:

  • Język definicji danych (DDL) — te polecenia definiują strukturę bazy danych. Na przykład upuść, zmień nazwę, zmień i utwórz. Wpływają na strukturę bazy danych. Na przykład tworzenie bazy danych lub zmiana nazwy tabeli.
  • Język manipulacji danymi (DML) — te polecenia służą do pracy z danymi. Na przykład wstaw, wybierz, zaktualizuj, usuń. Nie mają one wpływu na tabele ani strukturę bazy danych, ale na dane znajdujące się w tabelach. Na przykład wstawianie nowego wiersza lub aktualizowanie wartości w wierszu.
  • Język kontroli transakcji (TCL) — te polecenia sterują przetwarzaniem transakcji w bazie danych. Na przykład wycofaj, zapisz, zatwierdź. Te polecenia mają trwały wpływ na bazę danych. Na przykład wycofanie całej transakcji do poprzedniego stanu, nawet jeśli jeden proces nie powiedzie się.
  • Język kontroli danych (DCL) — polecenia kontroli danych służą do autoryzacji użytkowników i przyznawania tylko niezbędnych uprawnień użytkownikowi lub grupie. Na przykład jeden użytkownik może mieć uprawnienia tylko do odczytu, podczas gdy inny może mieć uprawnienia do odczytu i zapisu. Kontrola dostępu odbywa się za pomocą poleceń grant, deny i revoke.

Poniżej znajduje się ściągawka SQL zawierająca najbardziej przydatne polecenia. Ściągawka pomoże Ci szybko odnieść się do wymaganych poleceń z poprawną składnią i oczekiwanym wynikiem zapytania. W tej ściągawce skupiamy się na poleceniach DDL i DML, ponieważ pozostałe dwa typy są dość proste w użyciu.

Definicja danych i zapytania dotyczące manipulacji

Komenda Opis Przykład
DODAJ Dodaje kolumnę lub ograniczenie (określone) do istniejącej tabeli. ALTER TABLE employee ADD last_name varchar2(255); ALTER TABLE employee ADD CONSTRAINT emp_det PRIMARY KEY (id, last_name);

ALTER TABLE employee ADD last_name varchar2(255); ALTER TABLE employee ADD CONSTRAINT emp_det PRIMARY KEY (id, last_name);
ZMIEŃ TABELĘ Zmienia określoną tabelę, aby dodać, zaktualizować lub usunąć kolumnę tabeli. ALTER TABLE employee ADD last_name varchar2(255);

ALTER TABLE employee DROP COLUMN last_name;
ZMIEŃ KOLUMNĘ Zmień typ danych kolumny. Na przykład, aby zmienić typ kolumny join_date tabeli pracowników z varchar2 na datetime. ALTER TABLE employee ALTER COLUMN joining_date datetime;
WSZYSTKO Operator logiczny używany z SELECT, WHERE i HAVING i zwraca prawdę, jeśli wszystkie wartości spełniają warunek podzapytania SELECT employee_name, joining_date from employee WHERE employee_id = ALL (select employee_id from department_details WHERE department = 'R&D');
ORAZ Operator logiczny, który zwraca prawdę tylko wtedy, gdy spełnione są wszystkie warunki w klauzuli WHERE. SELECT employee_name, salary from employee WHERE city = 'California' AND salary > 2000;
KAŻDY Operator logiczny; zwraca prawdę, jeśli chociaż jedna z wartości podzapytania spełnia warunek w klauzuli where SELECT employee_id, employee_name from employee WHERE employee_id = ANY (select employee_id from department_details WHERE department = 'HR' OR department = 'R&D');
JAK Tworzy alias dla tabeli lub kolumny do czasu wykonania zapytania, przydatne, gdy nazwa jest używana wielokrotnie, szczególnie podczas złączeń tabel SELECT count(employee_id) AS employees_from_houston from employee WHERE city = 'Houston';
ASC Zwraca dane w kolejności rosnącej , używanej z klauzulą ​​ORDER BY. Samo ORDER BY domyślnie sortuje wyniki rosnąco. SELECT employee_name, joining_date, salary from employee ORDER BY employee_name ASC;
POMIĘDZY Aby wybrać wartości z zakresu SELECT employee_name, joining_date, department_id from employee WHERE salary BETWEEN 40000 AND 100000;
WALIZKA Składa się z zestawu oświadczeń; zwraca wartość instrukcji, która jest prawdziwa, JEŻELI żaden z warunków nie jest spełniony, warunek w części ELSE jest wykonywany. Jeśli nie ma innego, zwraca NULL. SELECT order_amount, customer_id, contact_email CASE WHEN order_amount > 3000 THEN "Eligible for 40% discount" WHEN order_amount between 2000 and 3000 THEN "Eligible for 25% discount" ELSE "Eligible for 5% discount" END FROM order_details;
UTWÓRZ BAZĘ DANYCH Tworzy nową bazę danych o określonej nazwie CREATE DATABASE movies_development;
UTWÓRZ TABELĘ Tworzy nową tabelę o określonej nazwie tabeli oraz nazwach i typach kolumn CREATE TABLE movie_info (movie_name varchar2(255), release_date datetime, lead_actor varchar2(255), music_director varchar2(255));
DOMYŚLNA Ustawia wartość domyślną dla określonej kolumny, używaną z poleceniami CREATE lub ALTER TABLE CREATE TABLE employee (joining_date SET DEFAULT CURRENT_DATE);

ALTER TABLE product ALTER is_available SET DEFAULT true;
KASOWAĆ Usuwa dane z określonej tabeli DELETE from employee where employee_id = 345;
DESC Zwraca dane w kolejności końcowej, używanej z klauzulą ​​ORDER BY. SELECT employee_name, joining_date, salary from employee ORDER BY employee_name DESC;
UPUŚĆ KOLUMNĘ Usuwa określoną kolumnę z określonej tabeli. ALTER TABLE employee DROP COLUMN employee_name;
UPUŚĆ BAZY DANYCH Usuwa całą bazę danych DROP DATABASE movies_development;
UPUŚĆ DOMYŚLNIE Usuwa domyślną wartość określonej kolumny ALTER TABLE employee ALTER COLUMN is_available DROP DEFAULT;
UPUŚĆ TABELĘ Usuwa określoną tabelę DROP TABLE employee;
ISTNIEJE Sprawdza, czy rekord istnieje, czy nie w podzapytaniu, i zwraca prawdę, jeśli zostanie znaleziony jeden lub więcej wyników. SELECT employee_id, contact_number FROM employee WHERE EXISTS (SELECT employee_id, department FROM department WHERE employee_id = 345 AND department = 'HR');
Z Określa tabelę, z której należy wybrać lub usunąć dane SELECT * FROM employee; DELETE FROM employee where employee_id = 345;
GRUPUJ WEDŁUG Grupuje dane zgodnie z określoną kolumną, używaną do funkcji agregujących Wyświetl liczbę pracowników w każdym kraju

SELECT COUNT(employee_id), country from employee GROUP BY country;

Pokazuje średnie oceny pracowników każdego działu

SELECT AVG(rating), department from employee GROUP BY department;
W Służy do wybierania wielu wartości naraz w klauzuli WHERE zamiast używania wielu warunków OR SELECT employee_name FROM employee WHERE country IN ('India', 'United Kingdom', 'Singapore', 'Australia');
INDEKS Indeks sprawia, że ​​zapytania o dane są wydajniejsze i szybsze. Indeksy są zwykle tworzone w kolumnach, które są najczęściej przeszukiwane. Utwórz indeks:
CREATE INDEX idx_employee ON employee (first_name, last_name);

Utwórz unikalny indeks, w którym wartości nie mogą być duplikowane:
CREATE UNIQUE INDEX idx_employee ON employee (first_name, last_name);

Usuń indeks:
ALTER TABLE employee DROP INDEX idx_employee;
WŁÓŻ W Dodaj nowy wiersz w tabeli INSERT INTO employee (employee_id, employee_name, salary, core_skill) VALUES (451, 'Lee Cooper', 40000, 'Java');
JEST NULL Sprawdza pod kątem wartości zerowych SELECT employee_id from employee where employee_name IS NULL;
NIE JEST NULL Sprawdza wartości, które nie są puste SELECT employee_id, core_skill from employee where core_skill IS NOT NULL;
TAK JAK Zwraca wszystkie wartości pasujące do danego wzorca SELECT employee_id, first_name, last_name where first_name LIKE '%tony';
NIE JAK Zwraca wszystkie wartości, które nie pasują do podanego wzorca SELECT employee_id, first_name, last_name where first_name NOT LIKE '%tony';
LUB Zwraca true, jeśli spełniony jest jeden z warunków w klauzuli where SELECT * from employee where country = 'India' OR country = 'Australia';
ZAMÓW PRZEZ Uporządkowuje wyniki w kolejności rosnącej (domyślnie) lub kolejności określonej w zapytaniu ( asc ending lub descending ending) SELECT employee_name, salary from employee ORDER BY salary DESC;
ROWNUM Zwraca określoną liczbę wierszy wymienionych w klauzuli WHERE zapytania SELECT * from employee where ROWNUM <= 5; This will return the first five rows in the resultset.
WYBIERZ Wybiera wymienione kolumny tabeli na podstawie podanych warunków. Jeśli określono *, zwracane są wszystkie wartości kolumn. SELECT employee_id from employee; SELECT * from employee;
WYBIERZ DO Kopiuje dane z tabeli źródłowej do innej tabeli docelowej. Możesz wybrać wszystkie kolumny (*) lub określone kolumny. SELECT * INTO new_employee_info FROM employee; SELECT employee_name, joining_date, core_skill INTO new_employee_info FROM employee;
WYBIERZ TOP Wybiera określoną liczbę rekordów z tabeli SELECT TOP 5 employee_id from employee where employee_rating = 5;
USTAWIĆ Ustawia wartość kolumny na nową określoną wartość podczas operacji UPDATE. UPDATE employee SET first_name = 'Tony' WHERE employee_id = 345;
NIEKTÓRE Zwraca true, jeśli spełniony jest jeden z warunków w podzapytaniu. NIEKTÓRE jest podobne do polecenia ANY. SELECT employee_id, employee_name from employee WHERE salary > SOME (select salary from employee WHERE department = 'HR');
OBCIĄĆ TABELĘ Usuwa dane z tabeli – pamiętaj, że tabela nie zostanie usunięta. TRUNCATE TABLE log_info;
UNIA Zwraca różne wartości z co najmniej 2 połączonych tabel. Aby uzyskać również zduplikowane wartości, użyj UNION ALL. SELECT city from employee UNION SELECT city from office_locations;
UNIKALNY Dodaje ograniczenie unikatowe do określonej kolumny, co oznacza, że ​​kolumna nie może mieć zduplikowanych wartości. Może być używany podczas tworzenia tabeli lub zmiany poleceń. CREATE TABLE employee (employee_id int NOT NULL, UNIQUE(employee_id));

ALTER TABLE employee ADD UNIQUE(employee_id);
AKTUALIZACJA Aktualizuje wartość określonej kolumny o nową wartość UPDATE employee SET first_name = 'Tony' WHERE employee_id = 345;
WARTOŚCI Używany z poleceniem INSERT, aby dodać nowy wiersz wartości do tabeli INSERT INTO employee (employee_id, employee_name, salary, core_skill) VALUES (451, 'Lee Cooper', 40000, 'Java');
GDZIE Dodaje warunki do filtrowania zestawu wyników instrukcji SELECT SELECT * from employee WHERE salary > 20000;
Ściągawka do poleceń SQL do szybkiego odniesienia

Funkcje agregujące

Funkcje agregujące to polecenia manipulacji danymi, które działają na kolumnach liczbowych, takich jak int i float. Są one pomocne w filtrowaniu i sortowaniu danych na poziomie samej bazy danych. Niektóre często używane funkcje agregujące to:

FUNKCJONOWAĆ OPIS PRZYKŁAD
AVG Zwraca średnią wartość określonej kolumny SELECT AVG(marks) from students where subject = 'English';
MIN Zwraca najmniejszą wartość z określonej kolumny SELECT MIN(price) from product WHERE product_category = 'shoes';
MAX Zwraca największą wartość z określonej kolumny SELECT MAX(quantity), product_name from inventory;
LICZYĆ Zwraca liczbę wierszy spełniających zapytanie Pokazuje całkowitą liczbę rekordów w tabeli pracowników.

SELECT COUNT(*) from employee;

Pokaż liczbę pracowników, których wynagrodzenie jest większe niż 20000

SELECT COUNT(*) from employee where salary > 20000;
SUMA Zwraca sumę wartości określonej kolumny liczbowej SELECT SUM(marks) from students where subject = 'English';
Wspólne funkcje agregujące

Połączenia SQL

Sprzężenia SQL są bardzo ważne, ponieważ łączą i filtrują dane z wielu tabel. Połączenia są nieco skomplikowane i mogą dać nieoczekiwane wyniki, jeśli nie zostaną wykonane poprawnie. Poniższa tabela pomoże Ci szybko zapoznać się z 4 typami złączeń SQL:

TYP DOŁĄCZENIA OPIS SKŁADNIA PRZYKŁAD
Połączenie wewnętrzne Zwraca rekordy pasujące w połączonych tabelach; jest podobny do skrzyżowania. SELECT kolumna1, kolumna2… z tabeli1 INNER JOIN tabela2 na tabela1.kolumnaN = tabela2.kolumnaN; select c.customer_id, o.order_id, c.customer_phone from customer c INNER JOIN order o on c.customer_id = o.customer_id;
Pełne (zewnętrzne) połączenie Zwraca wszystkie rekordy, które pasują po obu stronach — lewej lub prawej. Jest podobny do związku. SELECT kolumna1, kolumna2… z tabela1 FULL OUTER JOIN tabela2 na tabela1.kolumnaN = tabela2.kolumnaN; select c.customer_id, o.order_id, c.customer_phone from customer c FULL OUTER JOIN order o on c.customer_id = o.customer_id;
Dołącz do lewej Zwraca wszystkie rekordy z lewej tabeli i rekordy spełniające kryteria z prawej tabeli SELECT kolumna1, kolumna2… z tabeli1 LEFT JOIN tabela2 na tabela1.kolumnaN = tabela2.kolumnaN; select c.country_id, c.country_name, l.location_name from country c LEFT JOIN locations l on c.country_id = l.country_id;
Prawe dołączenie Zwraca wszystkie rekordy z prawej tabeli i rekordy spełniające kryteria z lewej tabeli SELECT kolumna1, kolumna2… z tabeli1 RIGHT JOIN tabela2 na tabela1.kolumnaN = tabela2.kolumnaN; select c.country_id, c.country_name, l.location_name from country c RIGHT JOIN locations l on c.country_id = l.country_id;
Rodzaje złączeń ze składnią i przykładem

Dodatkowe zasoby

SQL jest ważnym narzędziem zarówno dla programistów, analityków danych, jak i analityków. Poręczne odniesienie do poleceń SQL w formie ściągawki może zaoszczędzić dużo czasu i pomóc w zrozumieniu oczekiwanego wyniku każdego słowa kluczowego.

Aby uzyskać dodatkowe informacje, zapoznaj się z następującymi zasobami:

Samouczek SQL: Ściągawka SQL

Intellipaat: Ściągawka z komendami SQL

Konfiguracja strony internetowej: Ściągawka SQL

ProgrammingWithMosh: Ściągawka SQL

Ściągawka PostgreSQL