Limbajul interogării

De la Wikipedia, enciclopedia liberă.
Salt la navigare Salt la căutare

În informatică, un limbaj de interogare (sau în limba de interogare în limba engleză sau limbajul de interogare a datelor DQL ) este un limbaj utilizat pentru a crea interogări de către utilizatori pe baze de date și sisteme de informații . Este folosit pentru a face posibilă extragerea informațiilor din baza de date, prin intermediul SGBD relativ, interogarea bazei de date și astfel interfațarea cu utilizatorul și solicitările sale de servicii.

Exemple

Câteva exemple de limbi de interogare sunt:

DQL pentru SQL standard

DQL ( limbajul de interogare a datelor ) conform standardului SQL include comenzi pentru citirea și procesarea datelor prezente într-o bază de date, structurată după modelul relațional . Aceste date trebuie să fi fost introduse anterior prin Limbajul de manipulare a datelor (DML) în structuri sau tabele create cu Limbajul de definire a datelor (DDL), în timp ce Limbajul de control al datelor (DCL) determină dacă utilizatorul le poate accesa.

Selectați

Cu comanda de selectare avem posibilitatea de a extrage datele, într-un mod țintit, din baza de date.

Sintaxa comenzii select

 SELECTEAZĂ [ TOATE | DISTINCT | TOP ] list_elements_selection
FROM table_references_list
[UNDE espressione_condizionale]
[ GROUP BY column_list [ HAVING Condition ] ]
[ ORDIN BY BY column_list ];

unde este:

  • list_elements_selection este lista câmpurilor care trebuie extrase (separate una de cealaltă cu o virgulă);
  • reference_list_table este lista tabelelor din care se extrag datele;
  • expresia_condițională reprezintă lista condițiilor, adică cerințele pe care trebuie să le respecte un câmp pentru a fi preluate din interogare (condițiile sunt specificate folosind operatorii de comparație, conectorii logici și comparatorii, cum ar fi între , în , cum ar fi , este nul ) ; listă_coloană este coloana sau coloanele care trebuie luate ca referință pentru sortarea datelor de ieșire.

În mod implicit, comanda select funcționează cu metoda all , dar specificarea distinctă permite eliminarea rândurilor duplicate din rezultate.

Clauza ORDER BY este utilizată pentru a sorta rezultatele pe baza unuia sau mai multor câmpuri.

Limita (sau partea de sus , în funcție de implementări) limitează numărul de rânduri furnizate: LIMIT 10 ia primele 10 rânduri ale tabelului meu. De asemenea, este posibil să renunțați la un număr de rânduri la începutul rezultatelor adăugând un parametru la LIMIT sau la clauza OFFSET .

SQL standard nu oferă nicio sortare dacă nu specificați clauza ORDER BY , deci fără aceasta, LIMIT are și un efect imprevizibil.
Un exemplu este următorul:

 SELECT DISTINCT prenume , prenume , oraș_reședință
 DE la utilizatori
 UNDE ani > = 18
 ORDINĂ CU PRENUME

Această interogare extrage lista tuturor utilizatorilor adulți prin sortarea rezultatului după numele de familie. Definiția selectării este, totuși, mult mai largă, oferă multe alte opțiuni, dar, în principiu, majoritatea interogărilor sunt compuse cu aceste opțiuni.

 ALEGE DISTINCT *
 DE la utilizatori

asteriscul vă permite să includeți toate coloanele tabelului utilizator în selecție

Cu selectarea este posibilă și efectuarea de calcule:

 Selectați DISTINCT cod_art , preț_unitate * stoc AS Total , stoc * sarcină AS TotIngombro ;
 DIN articole

aceasta produce date extrase, dar și date calculate. Clauza AS este utilizată pentru a denumi noua coloană din noul tabel care va crea selectarea.

Multe SGBD acceptă clauza LIMIT non-standard, care trebuie plasată ultima și poate lua trei forme:

 LIMITĂ < număr_rezultate >
 LIMIT < position_first_result > , < number_results >
 LIMIT < number_results > [ OFFSET < position_first_result > ]

number_results este numărul de rânduri de extras. pos_first_result este indexul primului rând care trebuie extras. Împreună, acestea pot fi folosite pentru a împărți rezultatele în blocuri și a le citi puțin câteodată (de exemplu pentru confortul DBA sau pentru paginarea rezultatelor afișate de o aplicație web).

A te alatura

O formă de selectare compusă din mai multe tabele cu unul sau mai multe câmpuri comune este obținută prin clauza Join .

Subinterogare

Subcercetările pot fi inserate oriunde limbajul SQL admite o expresie care returnează o singură valoare și în clauza FROM. În acest din urmă caz, subinterogarea se mai numește tabele derivate (tabele derivate).

Subcercările propriu-zise pot returna o singură valoare sau un set de rezultate, după caz. Un exemplu destul de simplu este acela în care doriți să extrageți valori numerice peste medie dintr-un tabel. O singură Selectare nu poate citi media și în același timp valorile care o depășesc. În acest scop, vom avea o selecție care citește media:

 SELECTEAZĂ AVG ( câmp1 ) DIN tabelul_meu ;

Această interogare va fi plasată în clauza WHERE a interogării externe; subinterogarea este executată mai întâi:

 SELECT * FROM my_table WHERE field1 > ( SELECT AVG ( field1 ) FROM my_table );

După cum puteți vedea, din punct de vedere sintactic este necesar să puneți subinterogările între paranteze.

Tabelele derivate

Tabelele derivate sunt un caz special de subinterogare: un Select intern extrage datele care vor fi apoi interogate de Selectul extern.

Următorul exemplu este utilizat în scopuri educaționale, dar nu este o abordare optimă. Cu toate acestea, să presupunem că doriți să extrageți înregistrările pentru care câmpul de poștă electronică nu este gol, alegându-le printre utilizatorii a căror înregistrare a fost confirmată. Iată cum puteți face acest lucru cu un tabel derivat:

 SELECT E-mail FROM ( SELECT E-mail FROM utilizatori WHERE confirm = TRUE );

În realitate, tabelele derivate sunt utile acolo unde nu există alte abordări posibile, ceea ce se întâmplă atunci când interogarea externă conține un JOIN.

linkuri externe

Controlul autorității LCCN (EN) sh96000160 · GND (DE) 4134011-5 · BNF (FR) cb125325719 (data)
Informatică Portal IT : accesați intrările Wikipedia care se ocupă cu IT