Ultimate Cheat Sheet SQL pentru a marca pentru mai târziu [2022]
Publicat: 2022-06-17SQL, sau S trutured Query Language este un set de comenzi pentru gestionarea operațiunilor de baze de date relaționale precum ștergerea, crearea, actualizarea, citirea și așa mai departe.
SQL a fost standardul internațional utilizat de bazele de date relaționale din 1987. Există patru tipuri de comenzi SQL:
- Limbajul de definire a datelor (DDL) – Aceste comenzi definesc structura bazei de date. De exemplu, plasați, redenumiți, modificați și creați. Acestea afectează structura bazei de date. De exemplu, crearea unei baze de date sau redenumirea unui tabel.
- Limbajul de manipulare a datelor (DML) – Aceste comenzi sunt folosite pentru a lucra cu datele. De exemplu, inserați, selectați, actualizați, ștergeți. Acestea nu afectează tabelele sau structura bazei de date, ci datele prezente în tabele. De exemplu, inserarea unui rând nou sau actualizarea unei valori în rând.
- Limbajul de control al tranzacțiilor (TCL) – Aceste comenzi controlează procesarea tranzacțiilor în baza de date. De exemplu, rollback, salvare, commit. Aceste comenzi au un impact permanent asupra bazei de date. De exemplu, revenirea întregii tranzacții la starea anterioară chiar dacă un proces eșuează.
- Limbajul de control al datelor (DCL) – comenzile de control al datelor sunt folosite pentru a autoriza utilizatorii și pentru a acorda doar permisiunile necesare unui utilizator sau unui grup. De exemplu, un utilizator poate avea permisiunea numai pentru citire, în timp ce altul poate avea permisiunea de citire și scriere. Controlul accesului se face folosind comenzile grant, deny și revoke.
Mai jos este fișa SQL Cheat sheet care conține cele mai utile comenzi. Cheat sheet vă va ajuta să faceți referire rapid la comenzile necesare cu sintaxa corectă și rezultatul așteptat al unei interogări. În această foaie de cheat, ne concentrăm pe comenzile DDL și DML, deoarece celelalte două tipuri sunt destul de simplu de utilizat.
Interogări privind definirea și manipularea datelor
Comanda | Descriere | Exemplu |
ADĂUGA | Adaugă o coloană sau o constrângere (după cum este specificat) la tabelul existent. | 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); |
ALTER TABLE | Modifică tabelul specificat pentru a adăuga, actualiza sau șterge coloana unui tabel. | ALTER TABLE employee ADD last_name varchar2(255); ALTER TABLE employee DROP COLUMN last_name; |
ALTER COLONA | Modificați tipul de date al coloanei. De exemplu, pentru a schimba tipul coloanei joining_date din tabelul angajat de la varchar2 la datetime. | ALTER TABLE employee ALTER COLUMN joining_date datetime; |
TOATE | Operatorul logic folosit cu SELECT, WHERE și HAVING și returnează adevărat dacă toate valorile satisfac condiția de subinterogare | SELECT employee_name, joining_date from employee WHERE employee_id = ALL (select employee_id from department_details WHERE department = 'R&D'); |
ȘI | Operator logic care returnează adevărat numai atunci când sunt îndeplinite toate condițiile din clauza WHERE. | SELECT employee_name, salary from employee WHERE city = 'California' AND salary > 2000; |
ORICE | operator logic; returnează adevărat dacă chiar și una dintre valorile subinterogării satisface condiția din clauza 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'); |
LA FEL DE | Creează un alias pentru tabel sau coloană până în momentul executării interogării, util atunci când numele este folosit de mai multe ori, în special în timpul îmbinării tabelului | SELECT count(employee_id) AS employees_from_houston from employee WHERE city = 'Houston'; |
ASC | Returnează datele în ordinea finală asc , utilizate cu clauza ORDER BY. ORDER BY sortează în mod implicit rezultatele crescător. | SELECT employee_name, joining_date, salary from employee ORDER BY employee_name ASC; |
ÎNTRE | Pentru a selecta valori dintr-un interval | SELECT employee_name, joining_date, department_id from employee WHERE salary BETWEEN 40000 AND 100000; |
CAZ | Constă dintr-un set de declarații; returnează valoarea declarației care este adevărată, DACĂ nu este îndeplinită nici una dintre condiții, condiția din partea ELSE este executată. Dacă nu există altceva, atunci returnează 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; |
CREAȚI BAZĂ DE DATE | Creează o nouă bază de date cu numele specificat | CREATE DATABASE movies_development; |
CREAȚI TABEL | Creează un tabel nou cu numele de tabel specificat și numele și tipurile de coloane | CREATE TABLE movie_info (movie_name varchar2(255), release_date datetime, lead_actor varchar2(255), music_director varchar2(255)); |
MOD IMPLICIT | Setează o valoare implicită pentru coloana specificată, utilizată cu comenzile CREATE sau ALTER TABLE | CREATE TABLE employee (joining_date SET DEFAULT CURRENT_DATE); ALTER TABLE product ALTER is_available SET DEFAULT true; |
ȘTERGE | Șterge datele din tabelul specificat | DELETE from employee where employee_id = 345; |
DESC | Returnează datele în ordinea finală desc , utilizate cu clauza ORDER BY. | SELECT employee_name, joining_date, salary from employee ORDER BY employee_name DESC; |
COLOCARE COLONA | Șterge coloana specificată din tabelul specificat. | ALTER TABLE employee DROP COLUMN employee_name; |
DROP BAZA DE DATE | Șterge întreaga bază de date | DROP DATABASE movies_development; |
DROP IMPACT | Șterge valoarea implicită a coloanei specificate | ALTER TABLE employee ALTER COLUMN is_available DROP DEFAULT; |
DROP TABLE | Șterge tabelul specificat | DROP TABLE employee; |
EXISTĂ | Verifică dacă o înregistrare există sau nu în subinterogare și returnează adevărat dacă sunt găsite unul sau mai multe rezultate. | SELECT employee_id, contact_number FROM employee WHERE EXISTS (SELECT employee_id, department FROM department WHERE employee_id = 345 AND department = 'HR'); |
DIN | Specifică tabelul din care datele trebuie selectate sau șterse | SELECT * FROM employee; DELETE FROM employee where employee_id = 345; |
A SE GRUPA CU | Grupează datele conform coloanei specificate, utilizate pentru funcțiile agregate | Afișați numărul de angajați din fiecare țarăSELECT COUNT(employee_id), country from employee GROUP BY country; Afișează evaluările medii ale angajaților fiecărui departament SELECT AVG(rating), department from employee GROUP BY department; |
ÎN | Folosit pentru a selecta mai multe valori simultan într-o clauză WHERE în loc să utilizeze mai multe condiții OR | SELECT employee_name FROM employee WHERE country IN ('India', 'United Kingdom', 'Singapore', 'Australia'); |
INDEX | Indexul face interogarea datelor mai eficientă și mai rapidă. Indecșii sunt de obicei creați pe coloanele care sunt căutate cel mai mult. | Creați index:CREATE INDEX idx_employee ON employee (first_name, last_name); Creați un index unic în care valorile nu pot fi duplicate: CREATE UNIQUE INDEX idx_employee ON employee (first_name, last_name); Ștergeți indexul: ALTER TABLE employee DROP INDEX idx_employee; |
INTRODU IN | Adăugați un rând nou într-un tabel | INSERT INTO employee (employee_id, employee_name, salary, core_skill) VALUES (451, 'Lee Cooper', 40000, 'Java'); |
ESTE NUL | Verifică valorile nule | SELECT employee_id from employee where employee_name IS NULL; |
NU ESTE NUL | Verifică valorile care nu sunt nule | SELECT employee_id, core_skill from employee where core_skill IS NOT NULL; |
CA | Returnează toate valorile care corespund unui model dat | SELECT employee_id, first_name, last_name where first_name LIKE '%tony'; |
NU CA | Returnează toate valorile care nu se potrivesc cu modelul dat | SELECT employee_id, first_name, last_name where first_name NOT LIKE '%tony'; |
SAU | Returnează adevărat dacă una dintre condițiile din clauza where este îndeplinită | SELECT * from employee where country = 'India' OR country = 'Australia'; |
COMANDA PENTRU | Ordonează rezultatele în ordine crescătoare (în mod implicit) sau în ordinea specificată în interogare (terminarea asc sau terminarea desc ). | SELECT employee_name, salary from employee ORDER BY salary DESC; |
ROWNUM | Returnează numărul specificat de rânduri menționat în clauza WHERE a interogării | SELECT * from employee where ROWNUM <= 5; This will return the first five rows in the resultset. |
SELECTAȚI | Selectează coloanele menționate ale tabelului în funcție de condițiile date. Dacă este specificat *, toate valorile coloanei sunt returnate. | SELECT employee_id from employee; SELECT * from employee; |
SELECTAȚI ÎNTRE | Copiază datele din tabelul sursă într-un alt tabel destinație. Puteți selecta toate coloanele (*) sau anumite coloane. | SELECT * INTO new_employee_info FROM employee; SELECT employee_name, joining_date, core_skill INTO new_employee_info FROM employee; |
SELECTARE TOP | Selectează numărul specificat de înregistrări din tabel | SELECT TOP 5 employee_id from employee where employee_rating = 5; |
A STABILIT | Setează valoarea unei coloane la noua valoare specificată în timpul unei operațiuni UPDATE. | UPDATE employee SET first_name = 'Tony' WHERE employee_id = 345; |
NISTE | Returnează adevărat dacă una dintre condițiile din subinterogare este îndeplinită. SOME este similar cu comanda ANY. | SELECT employee_id, employee_name from employee WHERE salary > SOME (select salary from employee WHERE department = 'HR'); |
TABULA TRONCIARĂ | Șterge datele din tabel – rețineți că tabelul nu va fi șters. | TRUNCATE TABLE log_info; |
UNIUNE | Returnează valori distincte din 2 sau mai multe tabele care sunt îmbinate. Pentru a obține și valorile duplicate, utilizați UNION ALL. | SELECT city from employee UNION SELECT city from office_locations; |
UNIC | Adaugă o constrângere unică la coloana specificată, ceea ce înseamnă că coloana nu poate avea valori duplicate. Poate fi folosit în timpul comenzilor de creare sau modificare a tabelului. | CREATE TABLE employee (employee_id int NOT NULL, UNIQUE(employee_id)); ALTER TABLE employee ADD UNIQUE(employee_id); |
ACTUALIZAȚI | Actualizează valoarea coloanei specificate cu o nouă valoare | UPDATE employee SET first_name = 'Tony' WHERE employee_id = 345; |
VALORI | Folosit cu comanda INSERT pentru a adăuga un nou rând de valori în tabel | INSERT INTO employee (employee_id, employee_name, salary, core_skill) VALUES (451, 'Lee Cooper', 40000, 'Java'); |
UNDE | Adaugă condiții pentru a filtra setul de rezultate al unei instrucțiuni select | SELECT * from employee WHERE salary > 20000; |
Funcții agregate
Funcțiile agregate sunt comenzi de manipulare a datelor care funcționează pe coloane numerice precum int și float. Acestea sunt utile în filtrarea și sortarea datelor la nivelul bazei de date în sine. Unele funcții de agregare utilizate în mod obișnuit sunt:

FUNCŢIE | DESCRIERE | EXEMPLU |
AVG | Returnează valoarea medie a coloanei specificate | SELECT AVG(marks) from students where subject = 'English'; |
MIN | Returnează cea mai mică valoare a coloanei specificate | SELECT MIN(price) from product WHERE product_category = 'shoes'; |
MAX | Returnează cea mai mare valoare a coloanei specificate | SELECT MAX(quantity), product_name from inventory; |
NUMARA | Returnează numărul de rânduri care satisfac interogarea | Afișează un număr total de înregistrări în tabelul angajaților.SELECT COUNT(*) from employee; Afișați numărul de angajați al căror salariu este mai mare de 20000 SELECT COUNT(*) from employee where salary > 20000; |
SUMĂ | Returnează suma valorilor coloanei numerice specificate | SELECT SUM(marks) from students where subject = 'English'; |
Uniri SQL
Îmbinările SQL sunt foarte importante deoarece conectează și filtrează datele din mai multe tabele. Unirile sunt puțin complicate și pot da rezultate neașteptate, dacă nu sunt executate corect. Tabelul de mai jos vă va ajuta să vă referiți rapid la cele 4 tipuri de îmbinări SQL:
TIP DE ÎNTREPRINDERE | DESCRIERE | SINTAXĂ | EXEMPLU |
Unire interioară | Returnează înregistrările care se potrivesc în tabelele unite; este asemănător cu o intersecție. | SELECT coloana1, coloana2... din tabelul 1 INNER JOIN tabelul2 pe tabel1.coloanăN = tabel2.coloanăN; | select c.customer_id, o.order_id, c.customer_phone from customer c INNER JOIN order o on c.customer_id = o.customer_id; |
Unire completă (exterioară). | Returnează toate înregistrările care au o potrivire pe ambele părți – stânga sau dreapta. Este asemănător cu un sindicat. | SELECT coloana1, coloana2... din tabelul 1 FULL OUTER JOIN table2 pe tabel1.coloanăN = tabel2.coloanăN; | 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; |
Alăturare stânga | Returnează toate înregistrările din tabelul din stânga și înregistrările care corespund criteriilor din tabelul din dreapta | SELECT coloana1, coloana2... din tabelul 1 LEFT JOIN table2 pe tabel1.coloanăN = tabel2.coloanăN; | select c.country_id, c.country_name, l.location_name from country c LEFT JOIN locations l on c.country_id = l.country_id; |
Alăturați-vă corect | Returnează toate înregistrările din tabelul din dreapta și înregistrările care corespund criteriilor din tabelul din stânga | SELECT coloana1, coloana2... din tabelul 1 RIGHT JOIN table2 pe table1.coloanăN = tabel2.coloanăN; | select c.country_id, c.country_name, l.location_name from country c RIGHT JOIN locations l on c.country_id = l.country_id; |
Resurse aditionale
SQL este un instrument important pentru dezvoltatorii de software, oamenii de știință de date și analiștii deopotrivă. O referință la îndemână a comenzilor SQL sub forma unei foi de cheat vă poate economisi mult timp și vă poate ajuta să înțelegeți rezultatul așteptat al fiecărui cuvânt cheie.
Pentru informații suplimentare, vă rugăm să consultați următoarele resurse:
Tutorial SQL: Cheat Sheet SQL
Intellipaat: Cheat Sheet pentru comenzi SQL
WebsiteSetup: SQL Cheat Sheet
ProgrammingWithMosh: Cheat Sheet SQL
Cheat Sheet PostgreSQL