Imath wiki - limba sql, istorie, operatori de bază

După cum sa menționat deja, în 1970 Edgar Kodd a propus utilizarea modelului relațional. În plus față de modelul în sine, a sugerat, de asemenea limbaj pentru a manipula datele în cadrul acestui model, numit DSL / Alpha. Ulterior, pe DSL / limba Alpha-based apărut SQUARE, și bazat pe el, la rândul său, a limbajului Sequel, care (din cauza unor confuzii în marca comercială) a fost redenumit mai târziu, în SQL.

Rezultatul de interogare SQL este un tabel (sau, dacă preferați, raportul), iar cele mai multe interogări operează pe o relație. Poti vorbi despre faptul că SQL este exprimă în mare măsură algebra relațională.

O ultimă notă. SQL istoric nu este un acronim, dar de multe ori reprezintă Query Language structurat. Citiți sau vraja, sau ca un „sequel“ (continuare).

Mulți dintre voi sunt familiarizați cu limbaje de programare imperative. SQL nu este un limbaj imperativ, iar acum poate fi realizată la declarative. Alte limbi declarative - este, de exemplu, diferite limbaje de marcare, de exemplu, HTML sau XML.

SQL declarativă este că, în loc de a specifica modul de a obține rezultatul (ca în limbi imperative), specificați ce ar trebui să fie atins rezultate pe baza a ceea ce datele de intrare. Lucrarea de odihnă se face de către componenta de bază de date numită de optimizare a.

Pe SQL destul de dificil de a scrie „complet“, program - de obicei, necesită SQL încorporat-apeluri la unele imperative (sau funcționale) de limbă.

SQL a fost inițial modul principal utilizatorul lucrează cu baza de date și vă permite să efectuați următoarele operații:

  • crearea unei noi date bazate pe tabel;
  • adăugarea de noi intrări în tabel;
  • modifica înregistrările;
  • ștergerea înregistrărilor;
  • intrările eșantion din una sau mai multe tabele (în conformitate cu o condiție predeterminată);
  • schimba structurile de masă.

De-a lungul timpului, ea devine mai complexă SQL - îmbogățit cu noi structuri, a oferit o oportunitate de a descrie și de a gestiona noile obiecte stocate (cum ar fi indici, vizualizări, triggere și proceduri stocate) - și a început să dobândească caracteristici tipice de uz general limbaj de programare.

Pentru toate modificările SQL este singurul mecanism de comunicare între software-ul de aplicație și baza de date. În același timp, baze de date moderne și a sistemelor informatice care folosesc baze de date, furnizează utilizatorului instrumente avansate pentru construirea interogare vizuale.

Fiecare propunere SQL - este o cerere de date din baza de date, orice referire la o bază de date, ceea ce duce la o modificare a datelor din baza de date. Următoarele tipuri de cereri, în conformitate cu modificările în baza de date, ca urmare a performanței lor:

  • cereri pentru a crea sau modifica o bază de date a instalațiilor noi sau existente (de tipul descris în cerere și structura obiectului este creată sau modificată);
  • cererile de date;
  • cererile de adăugarea de noi date (înregistrări);
  • cererile de ștergere a datelor;
  • accesa baza de date.

Practic, toate declarațiile SQL au următoarea sintaxă:

Magazinul principal obiect este un tabel de baze de date relaționale, astfel încât toate SQL-interogări - operații pe tabele. În conformitate cu aceasta, interogările sunt împărțite în:

  • cereri care operează pe mesele propriu-zise (crearea și modificarea tabelelor);
  • interogări care operează pe înregistrări individuale (sau rânduri) sau seturi de înregistrări.

Fiecare tabel este descris ca un transfer al domeniilor lor (coloane din tabel), indicând

  • tip stocate în fiecare valori de câmp;
  • Relațiile dintre tabele (atribuirea de chei primare și secundare);
  • informațiile necesare pentru a construi index.

Cererile de primul tip, la rândul lor, sunt împărțite în cereri pentru crearea tabelelor de baze de date noi și interogări pentru modificarea tabelelor existente. Cererile de al doilea tip funcționează pe siruri de caractere, și pot fi împărțite cu privire la întrebările din formularul de mai jos:

  • se introduce noua linie;
  • modificarea valorilor șir de câmpuri sau set de siruri de caractere;
  • ștergerea unui rând sau set de rânduri.

Principalul tip de cerere - cererea se întoarce (utilizator), un set de siruri de caractere cu care să efectueze una din cele trei operații:

Astfel, utilizarea SQL este redusă, de fapt, formarea de tot felul de probe de rânduri și de a efectua operațiuni pe toate înregistrările care aparțin setului.

Limbajul SQL este un set de

  • operatori
  • instrucțiuni
  • și funcțiile calculate.

Avantaje și dezavantaje

avantaje

deficiențe

Nepotrivirea a modelului de date relaționale

Creatorii modelului de date relaționale Edgar Kodd, Kristofer Deyt și susținătorii lor indică faptul că SQL nu este adevărat limbaj relațional. În special, ele indică următoarele defecte SQL în ceea ce privește teoria relațională:

  • SQL permite duplicate într-un tabel șir, că, în cadrul modelului de date relaționale este imposibilă și inadmisibilă;
  • SQL suportă valoarea nedefinită (NULL) și logica multivaloare;
  • SQL folosește ordinea de coloană, iar referirile la un număr de vorbitori;
  • SQL permite coloane cu nici un nume și nume de coloane duplicat.

Deși complexitatea SQL și concepută ca un mijloc de a utilizatorului final, în cele din urmă a devenit atât de complex încât a devenit instrument de un programator. Abaterile de la standarde, în ciuda prezenței internaționale standard în ANSI mulți dezvoltatori face modificări în baza de date SQL în limba utilizată în baza de date dezvoltată, ne îndepărta astfel de standard. Astfel, există specifice pentru fiecare anumită limbă de bază de date dialecte SQL.

În SQL, există patru grupuri mari de operatori.

schemă de date de control al operatorilor de

operatorii care vă permit să creați, modificați și ștergeți tabele (relații) de baze de date, constrângeri, indici etc. precum și pentru a obține informații cu privire la schema de date existente.

  • CREATE creează un obiect bază de date (baza în sine, tabele, vederi, utilizator, și așa mai departe. D.),
  • ALTER schimbă obiectul,
  • DROP elimină obiectul;
Operatorii de gestionare a datelor

operatorii care vă permit să primiți, să creeze, să modifice și să șteargă datele din tabelele create.

  • SELECT citește date condiții satisfăcătoare prestabilite,
  • INSERT adaugă noi date,
  • UPDATE modifică datele existente,
  • DELETE șterge datele;
Operatori Baza de date de control

Acest lucru permite operatorilor de a personaliza baza de date, gestiona permisiunile, a crea utilizatori, etc.

  • GRANT oferă utilizatorului (grup) pentru a permite anumite operațiuni pe obiect,
  • REVOKE retrage autorizațiile eliberate anterior,
  • DENY seturi de interdicție având prioritate față de rezoluția;
tranzacții de control declarații

Acesta vă permite să definiți un grup de operațiuni care pot fi anulate sau comise numai „toți împreună.“ Ie eroare a unei tranzacții, întreaga tranzacție este anulat automat.

  • COMMIT aplică tranzacției,
  • ROLLBACK role înapoi toate modificările făcute în cadrul tranzacției curente,
  • tranzacție SAVEPOINT se împarte în porțiuni mai mici.

Să luăm în considerare unele dintre ele mai în detaliu.

schemă de date de control al operatorilor de

Operatori de creare elemente de scheme, în general, sunt numite CREATE.

operatorii de a crea

Crearea unei baze de date