(O diagramă care arată mai multe dintre elementele de limbaj SQL care compun o singură declarație)
Elemente de limbaj
Limbajul SQL este divizat în mai multe elemente de limbaj, inclusiv:
- Clauze, care sunt componente constitutive ale declarațiilor și interogărilor. (În unele cazuri, acestea sunt opționale.)
- Expresii, care pot produce fie valori scalare, fie tabele constând din coloane și rânduri de date
- Predicate, care precizează condițiile care pot fi evaluate la logica cu trei-valori (3VL) SQL (adevărat / fals / necunoscut) sau valorile de adevăr booleene, și sunt folosite pentru a limita efectele declarațiilor și întrebărilor, sau pentru a schimba fluxul de program.
- Interogări, care preiau datele pe baza unor criterii specifice. Acesta este un element important al lui SQL.
- Instrucţiuni, care pot avea un efect persistent asupra schemei și datelor, sau pot controla fluxul de tranzacții, programe, conexiuni, sesiuni, sau diagnosticare.
- Instrucțiunile SQL includ, de asemenea, terminarea instrucţiunilor, punct și virgulă („;”). Deși nu sunt necesare pe orice platformă, sunt definite ca o parte standard a gramaticii SQL. Punct și virgulă este modul standard pentru a separa fiecare instrucțiune SQL în sistemele de baze de date care permit mai mult de o instrucțiune SQL să fie executată în același apel la server.
- Spațiu gol nesemnificativ este, în general, ignorat în instrucțiunile și interogările SQL, ceea ajută la formatarea mai uşoară a codului SQL pentru lizibilitate.
Operatori
Operator | Descriptiere | Exemplu |
---|---|---|
= |
Egal cu | Author = 'Alcott' |
<> |
Ne-egal cu (cele mai multe DBMS also acceptă şi != în loc de <> ) |
Dept <> 'Sales |
> |
Mai mare de | Hire_Date > '2012-01-31' |
< |
Mai mic de | Bonus < 50000.00 |
>= |
Mai mare sau egal cu | Dependants >= 2 |
<= |
Mai mic sau egal cu | Rate <= 0.05 |
BETWEEN |
Într-un interval inclusiv | Cost BETWEEN 100.00 AND 500.00 |
LIKE |
Potrivire cu un model de caracter | First_Name LIKE 'Will%' |
IN |
Egal cu una sau mai multe valori posibile | DeptCode IN (101, 103, 209) |
IS sau IS NOT |
Compară cu null (lipsă de date) | Address IS NOT NULL |
IS NOT DISTINCT FROM |
Egal cu valoarea sau ambele sunt valori nule (lipsă de date) | Debt IS NOT DISTINCT FROM - Receivables |
AS |
Folosit pentru a schimba un nume de câmp, atunci când se vizualizează rezultatele | SELECT employee AS 'department1' |
Comenzi SQL mai importante:
- SELECT – extrafe datele dintr-o bază de date
- UPDATE – actualizează datele dintr-o bază de date
- DELETE – şterge datele dintr-o bază de date
- INSERT INTO – introduce noi date într-o bază de date
- CREATE DATABASE – crează o nouă bază de date
- ALTER DATABASE – modifică o bază de date
- CREATE TABLE – crează un nou tabel
- ALTER TABLE – modifică un tabel
- DROP TABLE – şterge un tabel
- CREATE INDEX – crează un index (cuvinte-cheie de căutare)
- DROP INDEX – şterge un index
Expresii condiţionale (CASE)
SQL are expresia case/when/then/else/end
, care a fost introdusă în SQL-92. În forma sa cea mai generală, care se numește un „caz căutat” în standardul SQL, funcționează ca else if în alte limbaje de programare:
CASE WHEN n > 0
THEN 'positive'
WHEN n < 0
THEN 'negative'
ELSE 'zero'
END
SQL testează condițiile WHEN
în ordinea în care apar în sursă. În cazul în care sursa nu specifică o expresie ELSE
, SQL devine implicit la ELSE NULL
. O sintaxă abreviată - numită "caz simplu" în standardul SQL - oglindeşte instrucţiunile de comutare:
CASE n WHEN 1
THEN 'one'
WHEN 2
THEN 'two'
ELSE 'i cannot count that high'
END
Această sintaxă folosește comparații implicite de egalitate, cu limitări obișnuite pentru compararea cu NULL.
Pentru dialectul Oracle-SQL, acesta din urmă poate fi redus la un construct DECODE echivalent:
SELECT DECODE(n, 1, 'one',
2, 'two',
'i cannot count that high')
FROM some_table;
Ultima valoare este implicită. Dacă nu este specificată nicio valoare, este de asemenea implicit NULL. Cu toate acestea, spre deosebire de standardul "caz simplu", DECODE Oracle consideră două NULL egale între ele.
Traducere şi adaptare din Wikipedia.
Lasă un răspuns