SQL simplifică ascendent. Lucrul cu baza de date

Adesea este nevoie să emită rezultatul interogării într-o anumită ordine, de exemplu, conform alfabetului. Pentru a face acest lucru, în DBMS există o caracteristică specială în limba SQL - sortarea. În acest caz, programatorul poate alege câmpurile și în ce ordine se va întâmpla obținerea rezultatului dorit, fără a aplica abilități grave de programare.

Ce sortează în baza de date?

Lucrul cu bazele de date este în mod constant legat de cantitatea mare de informații la care este necesar să se determine comanda. În prezent, există un număr de DBMS, care are o gamă largă de funcții, dintre care cele mai populare sunt Oracle și Ms SQL. Sortarea informațiilor ca una dintre procedurile principale de lucru cu baza de date este asigurată de o funcție special încorporată în fiecare dintre ele.

Clasamentul datelor vă permite să simplificați procesul de căutare, precum și în unele cazuri ajută la rezolvarea unor sarcini sau optimizarea funcționării programului. Siguranța SQL este efectuată în funcție de un câmp selectat separat și, dacă este necesar, dacă aveți aceleași valori în elementele acestui câmp, puteți specifica parametrii suplimentari care determină locația rândurilor.

Echipa de sortare

Siguranța SQL în baza de date este furnizată utilizând comanda după funcție. Deci, atunci când afișați informații din baza de date, după specificarea coloanelor și a tabelelor care vor fi citite, trebuie să specificați comanda de sortare, după care este necesar să se determine câmpul sau câmpurile prin care se va efectua sortarea.

De exemplu, dacă trebuie să primiți date din câmpurile de nume și de vârstă de la tabelul Oameni, în timp ce întrerupeți rezultatul în ordine alfabetică prin coloana Name, acesta va ajuta la efectuarea următoarelor interogări: Selectați numele, vârsta de la Oameni comandă după nume.

Cum setați ordinea de sortare?

Condițiile moderne se stabilesc diverse sarcini înainte de programatori și, uneori, este necesar să predeterminem, în ce ordine va rezulta rezultatul - descendent sau ascendent, alfabetic sau în ordine inversă? Și pentru aceasta, în limba SQL, ordinea de sortare este determinată prin adăugarea unui cuvânt cheie la cerere. După selectarea câmpurilor și a tabelelor, din care vor fi primite informațiile dorite, trebuie să adăugați comanda, după care specificați numele coloanei pentru care este necesar să sortați.

Pentru a obține comanda inversă, trebuie să specificați parametrul DESC după nume. Dacă eficientizarea elementelor sunt necesare pe două sau mai multe criterii, coloanele sunt indicate prin virgulă, iar prioritatea din clasament va fi acordată domeniului care merge pe prima listă. Este demn de remarcat faptul că elementele de construcție din ordinea inversă Parametrul DESC furnizează doar un singur câmp, după care este specificat acest cuvânt cheie, deci dacă este necesar, trebuie să specificați în toate coloanele selectate.

Metode alternative de sortare

În absența capacității de a utiliza funcția de sortare SQL încorporată, puteți scrie unul dintre algoritmi cunoscuți. Dacă este necesar să se realizeze ordonarea rapidă a elementelor, este necesar să se aplice metoda bazată pe o gamă de elemente de bântuire. Metode de clasare "Bubble" posedă, de asemenea, o mare popularitate, în care două elemente adiacente se schimbă în locuri în cazul unei locații incorecte, "sortare piramidală", trimiterea celui mai mare element până la sfârșitul listei, precum și "inserții de sortare ", ceea ce predermină locația fiecărui element la rândul său.

Scrierea personală a algoritmului nu va crește semnificativ viteza de sortare, totuși, contribuie la dezvoltarea abilităților de programare și va permite, de asemenea, modificarea procesului prin înființarea unei scheme de clasificare pentru o bază de date specifică pentru a îmbunătăți eficiența programului.

Ordinul de ofertă în înregistrările de acces returnate de solicitare, ascendent sau descendent valorile câmpului specificat (câmpuri).

Sintaxă

SELECTAȚI list_pole
Din. masa
Unde condiții_tealth.
[, câmp2. ][, ...]]]

Selectați instrucțiunile care conțin ordine prin propunere include următoarele elemente:

Remarcă

Comanda prin ordinul nu este obligatorie. Ar trebui să fie utilizat atunci când este necesar să se afișeze date în format sortat.

În mod implicit, ordinea de sortare a ascendenței este aplicată (de la A la Z, de la 0 la 9). În cele două exemple de mai jos, se arată că sortează numele angajaților după nume.

Selectați LastName, Prenume
De la angajați.
Ordinea numelui de familie;
Selectați LastName, Prenume
De la angajați.
Ordine de numele de familie ASC;

Pentru a sorta descendența (de la I până la A, de la 9 la 0), adăugați un cuvânt rezervat DESC la sfârșitul fiecărui câmp la care doriți să sortați înregistrările. În exemplul de mai jos, se efectuează sortarea numelor angajaților în ordinea descrescătoare a salariilor.

Selectați LastName, Salariu
De la angajați.
Ordine de salariu DESC, LastName;

Dacă în comanda prin propoziție, specificați un câmp care conține date de tip memo sau OLE Obiecte, va apărea o eroare. Microsoft Access DBMS Core nu acceptă sortarea prin câmpurile acestor tipuri.

Ordinea prin propunere este, de obicei, ultimul element din instrucțiunea SQL.

Oferta comenzii BA Puteți include câmpuri suplimentare. În primul rând, înregistrările sunt sortate după câmpul indicat în ordinea prin prima teză. Apoi, pentru intrări cu aceleași valori ale primului câmp, sortarea pe câmp indicat de al doilea etc.


Ciclul următor:

Pasul 8. Sortare simplă

Dacă rezultatul interogării dvs. SQL ar trebui să fie materialul sursă al unui anumit raport, problema de sortare a datelor din ea devine extrem de importantă, deoarece o persoană care citește raportul subdimensionat este foarte dificil de a găsi rapid o parte a informațiilor sale necesare . Pentru a sorta datele de pe coloanele de rezultate de interogare (în cazul nostru, pe câmpurile tabelului), cuvântul cheie al ordinii este utilizat în SQL. Un exemplu de sortare cea mai simplă este prezentată mai jos. O solicitare din partea 2 este luată ca bază: "Cerere cu un criteriu simplu de selecție". Sortați angajații de către câmpul S_Name (numele complet).

Selectați s_name, s_experiență de la d_staff unde s_experience

Sortați rezultatul SQL interogare un câmp.

Pasul 9. Sortarea complexă

Adesea, și chiar aproape întotdeauna este necesar să sortați datele cu mai multe coloane și nu este întotdeauna în ordine ascendentă. Sistemul SQL sugerează după ordinea de cuvinte cheie prin lista coloanelor separate de punct și virgulă, precum și metoda de sortare pentru fiecare coloană: în ordinea ascendentă a valorilor - ASC sau ordinea scăderii acestora - DESC. În exemplul de mai jos, prezentăm deja înregistrări despre toți angajații în ordinea descrescătoare a experienței lor. Angajați cu aceeași experiență pe care o sortăm în ordine alfabetică.

Selectați s_experience, s_name de la comanda d_staff by s_experience desc, s_name ASC


Sortați rezultatul interogării SQL în două câmpuri.

Destul de des, ordinea inversă de sortare este utilizată cu coloane de tip [data]. Dacă data stochează, de exemplu, data informațiilor despre informație, atunci când sortarea inversă, la începutul listei, există acele înregistrări care au fost adăugate recent în raport cu restul. În cazul în care cererea recuperează anunțurile de știri din baza de date, obținem o listă de anunțuri sortate în ordinea descrescătoare a relevanței lor, care poate fi extrem de utilă deoarece citiți de obicei anunțurile de sus în jos și nu toată lumea le arată Pe site-urile de știri, dar doar câteva cele mai "proaspete".

În viitor, este posibil să avem nevoie să sortăm eșantionul nostru - în ordine alfabetică pentru text sau ascendent / descendent - pentru valori digitale. Pentru astfel de scopuri SQL. Există un operator special Comanda prin. .

1. Sortați datele selectate.

Să păstrăm toată masa noastră, sortarea vânzărilor de produse, și anume pe coloană Cantitate..

SELECTAȚI * Din ordinea Sumproduct în funcție de sumă

Vedem că cererea ne-a înregistrat înregistrări ascendente în domeniu Cantitate.. Asigurați-vă că urmați secvența operatorilor, adică operator Comanda prin. Trebuie să meargă la sfârșitul cererii. În caz contrar, va fi primit un mesaj de eroare.

De asemenea, caracteristică a operatorului Comanda prin. Este că poate sorta datele despre domeniu pe care nu am ales-o în cerere, adică este suficient ca acesta să fie în baza de date.

2. Sortați după mai multe câmpuri.

Acum voi conecta exemplul nostru suplimentar într-un alt domeniu. Lăsați-o să fie un câmp Oraș.care afișează locul de vânzare al produselor.

SELECTAȚI * Din ordinea Sumproduct în funcție de sumă, oraș

Comanda de sortare va depinde de ordinea locației câmpului în interogare. Care este, în cazul nostru, mai întâi datele vor fi sortate după coloană Cantitate.și apoi Oraș..

3. Direcția de sortare.

În ciuda faptului că operatorul implicit Comanda prin. Sortează ascensiunea, putem înregistra și valorile de sortare descrescătoare. Pentru a face acest lucru, la sfârșitul fiecărui câmp, am pus operatorul DESC. (care este o reducere a cuvântului Descendentă).

SELECTAȚI * De la ordinea Sumproduct cu suma DESC, oraș

În acest exemplu, valoarea din domeniu Cantitate. au fost respinse și în câmp Oraș. - Ascendent. Operator DESC. Se aplică numai pentru o singură coloană, astfel încât, dacă este necesar, trebuie să fie prescris după fiecare câmp care participă la sortare.