Mai jos vor fi descrise principalele comenzi SQL necesare pentru lucrul de bază cu scripturi SQL — SELECT, FROM, WHERE, JOIN, GROUP BY, ORDER BY.
Un manual excelent de SQL, cu exemple și posibilitatea de a testa diferite comenzi, este disponibil la link .
SELECT SELECT — aceasta este comanda de bază utilizată pentru a selecta date din baza de date.
Această comandă este de obicei folosită împreună cu comanda FROM, care specifică din ce tabelă să se preia datele.
Este posibilă și selectarea din mai multe tabele — acest lucru va fi descris în secțiunea JOIN .
Interogarea SELECT implicită arată astfel: SELECT coloana1, coloana2, ... FROM nume_tabelă; coloana1, coloana2, ...
în această interogare reprezintă numele câmpurilor (coloanelor) din tabelă din care utilizatorul dorește să obțină date.
În cazul în care utilizatorul trebuie să selecteze toate datele, se folosește *: SELECT * FROM nume_tabelă; De exemplu, rezultatul interogării SELECT sku_id, article_name FROM products; va fi format din două coloane cu codul SKU și numele din tabela PRODUCTS: Iar rezultatul interogării SELECT * FROM products; va conține toate coloanele din tabela PRODUCTS: La crearea interogărilor SELECT, este recomandabil să se atribuie aliasuri coloanelor (nume): SELECT column_1 SKU, column_2 STORE FROM nume_tabelă; .
În acest exemplu, SKU și STORE sunt aliasurile coloanelor column_1 și column_2 — ele vor fi utilizate ulterior în lucrul cu designerul de rapoarte.
Aflați mai multe despre SELECT și încercați cum funcționează la link .
Puteți afla mai multe despre conceptul de aliasuri la link .
Pe lângă selecția standard a câmpurilor cu SELECT, puteți selecta și date specifice.
Mai jos sunt prezentate funcțiile de bază care pot fi utilizate direct într-o interogare SELECT.
SELECT DISTINCT — utilizat pentru a selecta valori unice pentru un câmp. De exemplu: SELECT DISTINCT column_1 FROM nume_tabelă; .
Această interogare va afișa numai valorile unice din column_1.
Aflați mai multe despre SELECT DISTINCT și încercați cum funcționează la link .
SELECT TOP — utilizat pentru a selecta primele N valori dintr-un câmp. De exemplu: SELECT TOP 100 column_1 FROM nume_tabelă; .
Această interogare va afișa numai primele 100 de valori din column_1.
Aflați mai multe despre SELECT TOP și încercați cum funcționează la link .
MIN/MAX — utilizat pentru a afișa cea mai mică sau cea mai mare valoare dintr-o coloană.
De exemplu: SELECT MIN(column_1) FROM nume_tabelă; . Această interogare va afișa cea mai mică valoare din column_1.
Aflați mai multe despre MIN / MAX și încercați cum funcționează la link .
COUNT, AVG, SUM — COUNT() numără numărul de rânduri dintr-o coloană; AVG() afișează media coloanei; SUM() — afișează suma tuturor valorilor.
SELECT COUNT(column_1) FROM nume_tabelă; . Această interogare va afișa numărul de rânduri din column_1.
SELECT AVG(column_1) FROM nume_tabelă; . Această interogare va afișa media din column_1. SELECT SUM(column_1) FROM nume_tabelă; .
Această interogare va afișa suma tuturor valorilor din column_1.
Aflați mai multe despre COUNT, AVG, SUM și încercați cum funcționează la link .
WHERE Comanda WHERE este utilizată pentru a crea o condiție de selecție: SELECT coloana1, coloana2, ...
FROM nume_tabelă WHERE condiție; De exemplu, dacă trebuie să selectați toate valorile mai mari decât 10, clauza WHERE trebuie specificată astfel: SELECT coloana1 FROM nume_tabelă WHERE coloana1 > 10; De asemenea, comanda WHERE dispune de operatori matematici precum mai mare decât, mai mic decât, diferit de și altele.
Aceștia sunt utilizați la stabilirea unei condiții.
Aflați mai multe despre WHERE, operatorii disponibili și încercați cum funcționează la link .
În WHERE pot exista mai multe condiții; pentru definirea lor se utilizează operatorii logici "AND", "OR", "NOT".
Dacă este necesar ca ambele condiții să fie îndeplinite, se utilizează AND.
Dacă este necesar ca una dintre mai multe condiții să fie îndeplinită, se utilizează OR.
Dacă se dorește ca datele să fie afișate atunci când condiția nu este îndeplinită, se utilizează NOT.
Aflați mai multe despre AND, OR, NOT și încercați cum funcționează la link .
Operatorii IN și LIKE sunt operatori de comparare în clauza WHERE.
IN permite selecția când există mai multe valori, de exemplu: SELECT SKU_ID, ITEM_CODE FROM PRODUCTS WHERE SKU_ID in (2,4,8) Această interogare va afișa numai acele SKU-uri al căror SKU_ID este 2, 4 sau 8.
Aflați mai multe despre IN și încercați cum funcționează la link .
LIKE permite utilizatorului să caute un model dat în datele dintr-o coloană, de exemplu: SELECT SKU_ID, ARTICLE_NAME FROM PRODUCTS WHERE ARTICLE_NAME like (%Ham%) Această interogare va afișa acele SKU-uri care au cuvântul „Ham" în denumire.
Aflați mai multe despre LIKE și încercați cum funcționează la link .
De asemenea, în WHERE, utilizatorul poate lucra cu coloane care au valori NULL (un câmp fără valoare).
Clauzele standard WHERE nu funcționează cu NULL. Trebuie să utilizați operatorii IS NULL și IS NOT NULL.
Aflați mai multe despre IS NULL și IS NOT NULL și încercați cum funcționează la link .
ORDER BY Comanda ORDER BY permite utilizatorului să sorteze datele afișate conform anumitor reguli. SELECT coloana1, coloana2, ...
FROM nume_tabelă WHERE condiție ORDER_BY coloana1 asc/desc Aflați mai multe despre ORDER BY și încercați cum funcționează la link .
JOIN Comanda JOIN este utilizată după comanda FROM și servește pentru a afișa coloane dintr-o interogare din tabele diferite care sunt legate între ele.
Astfel, de exemplu, dacă există o tabelă PRODUCTS cu coloanele SKU_ID, GROUP_ID și o tabelă GROUPS cu coloanele GROUP_ID și GROUP_NAME, JOIN va permite utilizatorului să selecteze datele SKU_ID și GROUP_NAME din tabele diferite, legându-le prin GROUP_ID.
Există mai multe tipuri de JOIN-uri: (INNER) JOIN — poate fi utilizat cu sau fără prefixul INNER — afișează numai acele înregistrări care au aceleași valori în ambele tabele; LEFT JOIN — afișează toate înregistrările din tabela din stânga (specificată prin FROM) și înregistrările corespunzătoare din tabela din dreapta (specificată prin JOIN); RIGHT JOIN — afișează toate înregistrările din tabela din stânga (specificată prin JOIN) și înregistrările corespunzătoare din tabela din dreapta (specificată prin FROM); FULL JOIN — afișează toate înregistrările dacă există o potrivire în tabela din stânga sau din dreapta; Aflați mai multe despre JOIN și încercați cum funcționează la link .
Utilizatorul poate studia și testa fiecare tip de JOIN mai detaliat urmând linkurile: (INNER) JOIN , LEFT JOIN , RIGHT JOIN , FULL JOIN .
GROUP BY Comanda GROUP BY este utilizată după comanda WHERE și servește la gruparea datelor după similitudine.
Astfel, de exemplu, utilizatorul poate grupa toate produsele care au același cod.
Este utilizată dacă există funcții de agregare după SELECT în interogare — precum COUNT, MAX, MIN, SUM, AVG etc.
SELECT coloana1, sum(coloana2) FROM nume_tabelă WHERE condiție GROUP BY coloana1 ORDER_BY coloana1 asc/desc Un exemplu bun de utilizare a GROUP BY este atunci când utilizatorul trebuie să afișeze, de exemplu, vânzările pentru 4 săptămâni (de la săptămâna 10 la 13 din 2019) în contextul SKU-ului selectat pentru două magazine.
În tabela SALES_SKU, vânzările sunt defalcate pe săptămâni; trebuie să sumăm vânzările pentru 4 săptămâni pentru a obține totalul pe 4 săptămâni.
Pentru un astfel de caz, interogarea va arăta astfel: SELECT sku_id, store_id, sum(sales_volume) vol FROM sales_sku WHERE sku_id = 93 and week between 201910 and 201913 and store_id in (1,2) GROUP BY sku_id, store_id ORDER_BY vol asc Rezultatul executării unei astfel de interogări este următorul: Este important că GROUP BY trebuie specificat nu numai prin SKU_ID, ci și prin STORE_ID, deoarece aceste două câmpuri nu sunt utilizate în funcția de agregare.
Dacă utilizatorul selectează numai GROUP BY SKU_ID, sistemul va genera o eroare indicând că STORE_ID nu este aplicat nici în GROUP BY, nici în vreo altă funcție de agregare.
Aflați mai multe despre GROUP_BY și încercați cum funcționează la link .