Home » Articole » Articole » Calculatoare » Internet » Sintaxa SQL

Sintaxa SQL

postat în: Internet 0

SQL_ANATOMY_wiki(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

Adresa ta de email nu va fi publicată. Câmpurile obligatorii sunt marcate cu *