Structura comenzilor SQL

LIMBAJUL SQL: MANIPULARE DATE

IN ACEASTA PRELEGERE...

· Scopul Structure Query Language (SQL) și rolul său special atunci când lucrați cu baze de date.

· Istoria apariției și dezvoltării limbajului SQL.

· Scrierea de instrucțiuni SQL.

· Preluarea informațiilor din baze de date folosind instrucțiunea SELECT.

· construcția de instrucțiuni SQL caracterizate prin următoarele caracteristici:

· folosirea constructului WHERE pentru a selecta rânduri care satisfac diverse condiții;

· sortarea rezultatelor interogării folosind constructul ORDER BY;

· utilizarea funcţiilor de agregare SQL;

· gruparea datelor selectate folosind constructul GROUP BY;

· utilizarea subinterogărilor;

· utilizarea table joins;

· aplicarea operatiilor cu multimi (UNIREA, INTERSECT, EXCEPT.).

· Efectuarea de modificări în baza de date utilizând instrucțiunile INSERT, UPDATE și DELETE.

Unul dintre limbajele care a apărut ca urmare a dezvoltării modelului de date relaționale este SQL, care acum a devenit foarte răspândit și a devenit de fapt limbajul standard pentru bazele de date relaționale. Standardul de limbaj SQL a fost lansat de Institutul Național de Standarde al SUA (ANSI) în 1986, iar în 1987 Organizația Internațională pentru Standardizare (ISO) a adoptat acest standard ca standard internațional. În prezent, limbajul SQL este susținut de sute de tipuri diferite de SGBD-uri, dezvoltate pentru o mare varietate de platforme de calcul, de la computere personale la mainframe.

Această prelegere folosește definiția ISO a SQL.

Introducere în SQL

În această parte, ne vom uita la scopul limbajului SQL, ne vom familiariza cu istoria acestuia și vom analiza motivele pentru care a devenit acum atât de important pentru aplicațiile de baze de date.

Scopul limbajului SQL

Orice limbaj conceput pentru a funcționa cu baze de date trebuie să ofere utilizatorului următoarele capabilități:

· creați baze de date și tabele cu o descriere completă a structurii acestora;



· Efectuați operațiuni de bază de manipulare a datelor, cum ar fi inserarea, modificarea și ștergerea datelor din tabele;

· Efectuați interogări simple și complexe.

În plus, limbajul bazei de date trebuie să rezolve toate problemele de mai sus cu un efort minim din partea utilizatorului, iar structura și sintaxa comenzilor sale trebuie să fie destul de simple și ușor de învățat.

Și în sfârșit, limbajul trebuie să fie universal, adică. respectă un standard recunoscut, care va permite utilizarea aceleiași sintaxe și structuri de comandă atunci când se trece de la un SGBD la altul. Standardul modern al limbajului SQL satisface aproape toate aceste cerințe.

SQL este un exemplu de limbaj de transformare a datelor sau un limbaj conceput pentru a funcționa cu tabele pentru a transforma datele de intrare în forma de ieșire dorită. Limbajul SQL, care este definit de standardul ISO, are două componente principale:

· Data Definition Language (DDL), conceput pentru a defini structurile bazelor de date și a controla accesul la date;

· Limbajul de manipulare a datelor (DML), conceput pentru preluarea și actualizarea datelor.

Înainte de apariția standardului SQL3, SQL includea doar comenzi pentru definirea și manipularea datelor; îi lipseau orice comenzi pentru a controla progresul calculelor. Cu alte cuvinte, acest limbaj nu avea IF ... THEN ...ELSE, GO TO, DO ... WHILE și orice alte comenzi menite să controleze progresul procesului de calcul. Astfel de sarcini trebuiau rezolvate programatic, folosind limbaje de programare sau de control al sarcinilor, sau interactiv, ca urmare a acțiunilor efectuate de utilizatorul însuși. Datorită acestei incompletitudini, din punct de vedere al organizării procesului de calcul, limbajul SQL ar putea fi utilizat în două moduri. Prima a implicat o muncă interactivă, constând în introducerea de către utilizator a instrucțiunilor SQL individuale din terminal. Al doilea a fost de a încorpora instrucțiunile SQL în programele de limbaj procedural.

Avantajele limbajului SQL3, a cărui definiție formală a fost adoptată în 1999:

· Limbajul SQL este relativ ușor de învățat.

· Este un limbaj non-procedural, deci trebuie să specifice ce informații ar trebui obținute, nu cum pot fi obținute. Cu alte cuvinte, limbajul SQL nu necesită specificarea metodelor de acces la date.

· La fel ca majoritatea limbilor moderne, SQL acceptă un format gratuit pentru scrierea declarațiilor. Aceasta înseamnă că elementele individuale ale operatorului nu sunt asociate cu poziții fixe de pe ecran pe măsură ce tastați.

· Structura comenzii este specificată de un set de cuvinte cheie, care sunt cuvinte obișnuite în limba engleză, cum ar fi CREATE TABLE - Create a table, INSERT - Insert, SELECT - Select.

De exemplu:

CREATE TABLE [Vânzări] ( (S), [Nume obiect] VARCHAR(15), [Cost] DECIMAL(7,2));

INSERT INTO [Obiect] VALUES ("SG16", "Maro", 8300);

SELECT, [Nume obiect], [Cost];

DE LA [Vânzări]

UNDE [Cost] > 10000;

· Limbajul SQL poate fi folosit de o gamă largă de utilizatori, inclusiv administratorii de baze de date (DBA), personalul de conducere al companiei, programatorii de aplicații și mulți alți utilizatori finali de diferite categorii.

În prezent, există standarde internaționale pentru limbajul SQL care îl definesc în mod oficial ca limbaj standard pentru crearea și manipularea bazelor de date relaționale, ceea ce este de fapt.

Istoria limbajului SQL

Istoria modelului de date relaționale, și indirect a limbajului SQL, a început în 1970 odată cu publicarea unui articol fundamental al lui E. F. Codd, care în acel moment lucra la laboratorul de cercetare IBM din San Jose. În 1974, D. Chamberlain, care a lucrat în același laborator, a publicat o definiție a unei limbi numită „Structured English Query Language” sau SEQUEL. O versiune revizuită a acestui limbaj, SEQUEL/2, a fost lansată în 1976; ulterior, numele său a trebuit să fie schimbat în SQL din motive legale - abrevierea SEQUEL era deja folosită de filologi. Dar până în ziua de azi, mulți oameni încă pronunță acronimul SQL ca „sequel”, deși oficial este recomandat să îl citiți ca „es-qu-el”.

În 1976, IBM a lansat un prototip DBMS bazat pe limbajul SEQUEL/2, numit „System R”. Scopul acestui studiu a fost de a testa fezabilitatea implementării modelului relațional. Printre alte aspecte pozitive, cel mai important rezultat al acestui proiect poate fi considerat dezvoltarea limbajului SQL în sine, însă rădăcinile acestui limbaj se întorc în limbajul SQUARE (Specifying Queries as Rational Expressions), care a fost predecesorul limbajului. Proiectul System R. Limbajul SQUARE a fost dezvoltat ca instrument de cercetare pentru implementarea algebrei relaționale prin fraze compuse în limba engleză.

La sfârșitul anilor 1970, compania care a devenit acum Oracle Corporation a lansat Oracle DBMS. Poate că aceasta este prima implementare comercială a unui SGBD relațional construit folosind limbajul SQL.

Puțin mai târziu, a apărut DBMS-ul INGRES, folosind limbajul de interogare QUEL.

Acest limbaj era mai structurat decât SQL, dar semantica sa era mai puțin apropiată de engleza obișnuită. Mai târziu, când SQL a fost adoptat ca limbaj standard pentru bazele de date relaționale, INGRES DBMS a fost complet convertit pentru a-l utiliza. În 1981, IBM a lansat primul său SGBD relațional comercial, numit SQL/DS (pentru mediul DOS/VSE). În 1982, a fost lansată o versiune a acestui sistem pentru mediul VM/CMS, iar în 1983 - pentru mediul MVS, dar sub numele DB2.

În 1982, Institutul Național de Standarde al SUA (ANSI) a început să lucreze la Relation Database Language (RDL), ghidat de documentele conceptuale primite de la IBM Corporation. În 1983, Organizația Internațională pentru Standardizare (ISO) s-a implicat în această activitate. Eforturile comune ale ambelor organizații au culminat cu lansarea standardului de limbaj SQL. Numele RDL a fost abandonat în 1984, iar schița de limbaj a fost reproiectată pentru a fi mai aproape de implementările existente ale limbajului SQL.

Versiunea originală a standardului, care a fost lansată de ISO în 1987, a atras un val de critici. În special, Date, un cercetător binecunoscut în acest domeniu, a subliniat că standardul omite funcții critice, inclusiv controalele de integritate referențială și unii operatori relaționali.

În plus, el a remarcat redundanța excesivă a limbii - aceeași cerere ar putea fi scrisă în mai multe versiuni diferite. Majoritatea criticilor au fost recunoscute ca fiind corecte, iar ajustările necesare au fost făcute standardului înainte de publicarea acestuia. Cu toate acestea, s-a decis că este mai important să se lanseze standardul cât mai repede posibil, astfel încât să poată servi drept bază comună pe care atât limbajul în sine, cât și implementările sale să poată fi dezvoltate în continuare, decât să aștepte până când toate caracteristicile care diferă. au fost definiţi şi conveniţi experţi consideraţi obligatorii.pentru un limbaj similar.

În 1989, ISO a publicat un amendament la standard care definea funcțiile de integritate a datelor. În 1992, a fost lansată prima versiune revizuită substanțial a standardului ISO, uneori numită SQL2 sau SQL-92. Deși unele dintre funcții au fost definite pentru prima dată în acest standard, multe dintre ele au fost deja implementate integral sau parțial în una sau mai multe implementări comerciale ale limbajului SQL.

Și următoarea versiune a standardului, care se numește în mod obișnuit SQL3, a fost lansată abia în 1999. Această versiune oferă suport suplimentar pentru caracteristicile de gestionare a datelor orientate pe obiecte.

Funcțiile care sunt adăugate standardului de limbaj de către dezvoltatorii de implementări comerciale sunt numite extensii. De exemplu, standardul limbajului SQL definește șase tipuri diferite de date care pot fi stocate în baze de date. În multe implementări, această listă este completată de diverse extensii. Fiecare implementare a unei limbi se numește dialect. Nu există două dialecte care să fie complet identice și nu există în prezent niciun dialect care să respecte pe deplin standardul ISO.

Mai mult, pe măsură ce dezvoltatorii de baze de date adaugă noi funcționalități sistemelor lor, își extind continuu dialectele SQL, determinând dialectele individuale să devină din ce în ce mai diferite unele de altele. Cu toate acestea, nucleul de bază al limbajului SQL rămâne mai mult sau mai puțin standardizat în toate implementările.

Deși conceptele originale ale limbajului SQL au fost dezvoltate de IBM, importanța acestuia i-a determinat curând pe alți dezvoltatori să-și creeze propriile implementări. În prezent, există literalmente sute de produse disponibile pe piață construite folosind limbajul SQL și auzim în mod constant despre lansarea a tot mai multe versiuni noi,

baze de date care ar putea funcționa pe numeroase sisteme informatice de diferite tipuri. Într-adevăr, cu ajutorul acestuia, utilizatorii pot manipula datele indiferent dacă lucrează pe un computer personal, o stație de lucru în rețea sau un mainframe.

Unul dintre limbajele care a apărut ca urmare a dezvoltării modelului de date relaționale este limbajul SQL (Structured Query Language), care acum a devenit foarte răspândit și de fapt a devenit limbaj standard baze de date relaționale. Standard SQL a fost lansat de Institutul Național American de Standarde (ANSI) în 1986 și a fost adoptat la nivel internațional de Organizația Internațională de Standardizare (ISO) în 1987. Standardul SQL actual este cunoscut ca SQL/92.

Utilizarea oricăror standarde este asociată nu numai cu numeroase și destul de evidente avantaje, ci și cu anumite dezavantaje. În primul rând, standardele direcționează dezvoltarea industriei relevante într-o anumită direcție; În cazul limbajului SQL, existența unor principii de bază puternice duce în cele din urmă la interoperabilitatea între diferitele sale implementări și contribuie atât la portabilitatea sporită a software-ului și a bazelor de date în general, cât și la versatilitatea administratorilor de baze de date. Pe de altă parte, standardele limitează flexibilitatea și funcționalitatea unei anumite implementări. Sub implementarea limbajului SQL se referă la produsul software SQL al producătorului respectiv. Pentru a extinde funcționalitatea, mulți dezvoltatori care aderă la standardele acceptate adaugă limbaj standard SQL diverse extensii. Trebuie remarcat faptul că standardele necesită orice completat implementări ale limbajului SQL are anumite caracteristici și reflectă în linii mari tendințe majore care nu numai că duc la compatibilitate între toate implementările concurente, dar ajută și la creșterea valorii programatorilor și utilizatorilor SQL. baze de date relaționale pe piaţa modernă de software.

Toate specifice implementări ale limbajului sunt oarecum diferite unele de altele. Este în interesul producătorilor să se asigure că implementările lor îndeplinesc standardele ANSI actuale pentru portabilitate și experiența utilizatorului. Cu toate acestea, fiecare implementare a SQL conține îmbunătățiri pentru a îndeplini cerințele unui anumit server de bază de date. Aceste îmbunătățiri sau extensii ale limbajului SQL sunt comenzi și opțiuni suplimentare care sunt completări la pachetul standard și sunt disponibile în implementarea respectivă.

În prezent, limbajul SQL este suportat de multe zeci de SGBD-uri de diferite tipuri, dezvoltate pentru o mare varietate de platforme de calcul, de la computere personale la mainframe.

Toate limbajele de manipulare a datelor create pentru multe SGBD-uri înainte de apariția baze de date relaționale, s-au concentrat pe operațiuni cu date prezentate sub formă de înregistrări de fișiere logice. Desigur, acest lucru a necesitat utilizatorului să aibă cunoștințe detaliate despre organizarea stocării datelor și un efort serios pentru a specifica ce date sunt necesare, unde se află și cum să le obțină.

Limbajul SQL luat în considerare este axat pe operațiuni cu date prezentate sub formă de seturi de tabele de relații interconectate logic. Cea mai importantă trăsătură a structurilor sale este concentrarea pe rezultatul final al prelucrării datelor, și nu pe procedura acestei prelucrări. Limbajul SQL însuși determină unde se află datele, indecșii și chiar care este cea mai eficientă secvență de operații care trebuie utilizată pentru a obține rezultatul, deci nu este necesar să specificați aceste detalii în interogarea bazei de date.

Introducere în tehnologia client-server

În legătură cu extinderea pieței serviciilor informaționale, producătorii de software au început să producă sisteme software din ce în ce mai inteligente și, prin urmare, voluminoase. Multe organizații și utilizatori individuali de multe ori nu au putut plasa produsele achiziționate pe propriile computere. Pentru schimbul de informații și distribuirea acesteia s-au creat rețele de calculatoare, iar pe servere speciale de fișiere au început să fie instalate programe de generalizare și date.

Datorită SGBD-urilor care lucrează cu servere de fișiere, mulți utilizatori au acces la aceleași baze de date. Dezvoltarea diferitelor sisteme automatizate pentru managementul organizațiilor este simplificată. Cu toate acestea, cu această abordare, toată procesarea solicitărilor de la programe sau de la terminalele computerului utilizatorului este efectuată pe acestea, prin urmare, pentru a implementa chiar și o cerere simplă, este necesar să citiți sau să scrieți fișiere întregi de pe serverul de fișiere, iar acest lucru duce la conflict situații și supraîncărcarea rețelei. Pentru a elimina aceste neajunsuri, s-a propus tehnologie client-server, dar în același timp era nevoie de un limbaj comun pentru comunicarea cu serverul - alegerea a căzut pe SQL.

Tehnologia client-serverînseamnă o modalitate de interacțiune a componentelor software în care acestea formează un singur sistem. După cum sugerează și numele, există un anumit proces client care necesită anumite resurse, precum și proces de server, care oferă aceste resurse. Nu este necesar ca ei să fie pe același computer. De obicei, este obișnuit să plasați serverul pe un nod al rețelei locale și clienții pe alte noduri.

Într-un context de bază de date, clientul controlează interfața de utilizator și logica aplicației, acționând ca o stație de lucru care rulează aplicații de bază de date. Clientul acceptă o solicitare de la utilizator, verifică sintaxa și generează o interogare a bazei de date în SQL sau în alt limbaj de bază de date adecvat logicii aplicației. Apoi trimite un mesaj către server, așteaptă un răspuns și formatează datele primite pentru a le prezenta utilizatorului. Serverul primește și procesează cereri către baza de date, apoi trimite rezultatele înapoi către client. Această procesare include verificarea acreditărilor clientului, asigurarea cerințelor de integritate și îndeplinirea cererii și actualizarea datelor. În plus, sunt acceptate controlul simultan și recuperarea.

Arhitectura client-server are o serie de avantaje.

Ești nou în programare sau pur și simplu ai evitat să înveți SQL în trecut? Atunci ați ajuns la adresa potrivită, deoarece orice dezvoltator se confruntă în cele din urmă cu nevoia de a cunoaște acest limbaj de interogare. Este posibil să nu fiți designerul principal al bazei de date, dar este aproape imposibil să evitați să lucrați cu ele. Sper că această scurtă prezentare generală a sintaxei de bază a interogării SQL va ajuta dezvoltatorul interesat și oricine altcineva care are nevoie de ea.

Ce este o bază de date SQL?

Limbajul de interogare structurat ( S structurat Q uery L limbaj) este un standard de comunicare pentru baze de date care este acceptat de ANSI. Cea mai recentă versiune este SQL-99, deși un nou standard este deja în dezvoltare. Majoritatea bazelor de date aderă ferm la standardul ANSI-92. Au existat multe discuții despre introducerea unor standarde mai moderne, dar vânzătorii de baze de date comerciale se îndepărtează de acest lucru prin dezvoltarea propriilor concepte noi pentru stocarea datelor stocate. Aproape fiecare bază de date utilizează un set unic de sintaxă, deși foarte similar cu standardul ANSI. În cele mai multe cazuri, această sintaxă este o extensie a standardului de bază, deși există cazuri în care această sintaxă produce rezultate diferite pentru diferite baze de date. Este întotdeauna o idee bună să revizuiți documentația bazei de date, mai ales dacă obțineți rezultate neașteptate.

Dacă sunteți nou în SQL, există câteva concepte de bază pe care trebuie să le înțelegeți.

În termeni generali, „bază de date” este numele generic pentru sistem de management al bazelor de date relaționale(RDBMS). Pentru unele sisteme, „bază de date” se referă și la un grup de tabele, date sau informații de configurare care este o parte inerent separată de alte constructe similare. În acest caz, fiecare instalare a bazei de date SQL poate consta din mai multe baze de date. În alte sisteme, ele sunt denumite tabele.

Un tabel este o structură de bază de date care constă din coloane conținând linii date. De obicei, tabelele sunt create pentru a conține informații conexe. În aceeași bază de date pot fi create mai multe tabele.

Fiecare coloană reprezintă un atribut sau un set de atribute ale obiectelor, cum ar fi numerele de identificare a angajaților, înălțimea, culoarea mașinii etc. Termenul folosit adesea pentru a se referi la o coloană este camp indicând numele, de exemplu „în câmpul Nume”. Un câmp de rând este elementul minim al unui tabel. Fiecare coloană dintr-un tabel are un nume, un tip de date și o dimensiune specifică. Numele coloanelor trebuie să fie unice în tabel.

Fiecare rând (sau înregistrare) reprezintă o colecție de atribute ale unui obiect specific, de exemplu, un rând poate conține numărul de identificare al angajatului, salariul acestuia, anul său de naștere etc. Rândurile de tabel nu au nume. Pentru a accesa un anumit rând, utilizatorul trebuie să specifice un atribut (sau un set de atribute) care îl identifică în mod unic.

Una dintre cele mai importante operațiuni care se efectuează atunci când se lucrează cu date este preluarea informațiilor stocate în baza de date. Pentru a face acest lucru, utilizatorul trebuie să execute cerere(interogare).

Acum să ne uităm la principalele tipuri de interogări de baze de date care se concentrează pe manipularea datelor din baza de date. Pentru scopurile noastre, toate exemplele sunt furnizate în SQL standard pentru a se potrivi oricărui mediu.

Tipuri de interogări de date

Există patru tipuri principale de interogări de date în SQL, care sunt denumite limbaj de manipulare a datelor(Limbaj de manipulare a datelor sau DML):

  • SELECTAȚI– selectați rânduri din tabele;
  • INTRODUCE– adăugați rânduri la tabel;
  • ACTUALIZAȚI– schimbarea rândurilor din tabel;
  • ȘTERGE– ștergeți rânduri din tabel;

Fiecare dintre aceste interogări are diferiți operatori și funcții care sunt utilizate pentru a efectua unele acțiuni asupra datelor. Interogarea SELECT are cel mai mare număr de opțiuni. Există, de asemenea, tipuri de interogare suplimentare utilizate împreună cu SELECT, cum ar fi JOIN și UNION. Dar pentru moment, ne vom concentra doar pe interogările de bază.

Folosind o interogare SELECT pentru a selecta datele dorite

Pentru a prelua informațiile stocate în baza de date, se utilizează o interogare SELECT. Efectul de bază al acestei interogări este limitat la un singur tabel, deși există modele care vă permit să selectați din mai multe tabele în același timp. Pentru a obține toate rândurile de date pentru anumite coloane, se utilizează o interogare ca aceasta:

SELECT coloana1, coloana2 FROM table_name;

De asemenea, puteți obține toate coloanele dintr-un tabel utilizând caracterul metalic *:

SELECT * FROM table_name;

Acest lucru poate fi util atunci când intenționați să selectați date cu o anumită clauză WHERE. Următoarea interogare va returna toate coloanele din toate rândurile în care „coloana1” conține valoarea „3”:

Pe lângă = (egal), există următorii operatori condiționali:

În plus, puteți utiliza condițiile BITWEEN și LIKE pentru a compara cu condiția WHERE, precum și combinații ale operatorilor AND și OR.

Ce înseamnă în traducerea rusă: selectați toate rândurile din tabelul table_name, unde valoarea coloanei de vârstă este mai mare sau egală cu 18, iar valoarea coloanei LastName este în intervalul alfabetic de la Ivanov la Sidorov inclusiv, sau valoarea din coloana Companie este Motorola.

Folosind o interogare INSERT pentru a introduce date noi

Interogarea INSERT este folosită pentru creare nou rând de date. Pentru a actualiza datele existente sau câmpurile de rând goale, trebuie să utilizați o interogare UPDATE.

Exemplu de sintaxă a interogării INSERT:

INSERT INTO table_name (coloana1, coloana2, coloana3) VALORI ("data1", "data2", "data3");

Dacă urmează să inserați toate valorile în ordinea în care apar coloanele din tabel, puteți omite numele coloanelor, deși acest lucru este de preferat pentru lizibilitate. De asemenea, dacă enumerați coloane, nu trebuie să le enumerați în ordinea în care apar în baza de date, atâta timp cât valorile pe care le introduceți se potrivesc cu acea ordine. Nu ar trebui să enumerați coloanele care nu conțin informații.

Informațiile deja existente în baza de date sunt modificate într-un mod foarte similar.

Interogarea UPDATE și condiția WHERE

UPDATE este folosit pentru a modifica valorile existente sau pentru a elibera un câmp într-un rând, astfel încât noile valori trebuie să se potrivească cu tipul de date existent și să furnizeze valori acceptabile. Dacă nu doriți să modificați valorile în toate rândurile, atunci trebuie să utilizați clauza WHERE.

Puteți folosi WHERE pe orice coloană, inclusiv pe cea pe care doriți să o modificați. Acesta este utilizat atunci când este necesar să înlocuiți o anumită valoare cu alta.

Atenție! Interogarea DELETE șterge rânduri întregi

O interogare DELETE șterge complet un rând din baza de date. Dacă doriți să ștergeți un singur câmp, atunci trebuie să utilizați o solicitare UPDATE și să setați acest câmp la o valoare care va fi analogă cu NULL din programul dvs. Aveți grijă să limitați interogarea DELETE la o clauză WHERE, altfel puteți pierde întregul conținut al tabelului.

Odată ce un rând a fost șters din baza de date, acesta nu poate fi restaurat, așa că este indicat să aveți o coloană numită „IsActive”, sau ceva de genul acesta, pe care o puteți schimba în null, ceea ce va indica faptul că vizualizarea datelor din acel rând este blocat.

Acum cunoașteți elementele de bază ale interogărilor SQL

SQL este un limbaj de bază de date și am acoperit cele mai importante și de bază comenzi utilizate în interogările de date. Există o mulțime de concepte de bază care nu au fost acoperite (SUM și COUNT, de exemplu), dar cele câteva comenzi pe care am reușit să le enumerăm mai sus ar trebui să vă încurajeze să deveniți activ și să aprofundați în minunatul limbaj de interogare numit SQL.

Astăzi, cursurile SQL „pentru manechin” devin din ce în ce mai populare. Acest lucru poate fi explicat foarte simplu, deoarece în lumea modernă puteți găsi tot mai des așa-numitele servicii web „dinamice”. Se disting printr-un shell destul de flexibil și se bazează pe Toți programatorii începători care decid să dedice site-uri web, în ​​primul rând să se înscrie la cursuri SQL „pentru manechin”.

De ce să înveți această limbă?

În primul rând, SQL este predat pentru a crea în continuare o mare varietate de aplicații pentru unul dintre cele mai populare motoare de blog din ziua de azi - WordPress. După finalizarea câtorva lecții simple, veți putea crea interogări de orice complexitate, ceea ce nu face decât să confirme simplitatea acestui limbaj.

Ce este SQL?

Sau un limbaj de interogare structurat, a fost creat cu un singur scop: să le determine, să le ofere acces și să le proceseze în perioade destul de scurte de timp. Dacă cunoașteți semnificația SQL, atunci veți înțelege că acest server este clasificat ca un așa-numit limbaj „non-procedural”. Adică, capacitățile sale includ doar o descriere a oricăror componente sau rezultate pe care doriți să le vedeți în viitor pe site. Dar când nu indică exact ce rezultate vor fi obținute. Fiecare cerere nouă în această limbă este ca o „suprastructură” suplimentară. Interogările vor fi executate în ordinea în care sunt introduse în baza de date.

Ce proceduri pot fi efectuate folosind acest limbaj?

În ciuda simplității sale, baza de date SQL vă permite să creați o mare varietate de interogări. Deci, ce poți face dacă înveți acest limbaj de programare important?

  • creați o mare varietate de tabele;
  • primirea, stocarea și modificarea datelor primite;
  • schimbați structurile mesei la discreția dvs.;
  • combinați informațiile primite în blocuri individuale;
  • calculați datele primite;
  • asigura o protectie completa a informatiilor.

Ce comenzi sunt cele mai populare în această limbă?

Dacă decideți să urmați un curs SQL for Dummies, atunci veți primi informații detaliate despre comenzile care sunt utilizate în crearea interogărilor folosindu-l. Cele mai comune astăzi sunt:

  1. DDL este o comandă care definește datele. Este folosit pentru a crea, modifica și șterge o mare varietate de obiecte din baza de date.
  2. DCL este o comandă care manipulează datele. Este folosit pentru a oferi diferiților utilizatori acces la informațiile din baza de date, precum și pentru a folosi tabele sau vizualizări.
  3. TCL este o echipă care gestionează o varietate de tranzacții. Scopul său principal este de a determina progresul unei tranzacții.
  4. DML - manipulează datele primite. Sarcina sa este de a permite utilizatorului să mute diverse informații din baza de date sau să le introducă acolo.

Tipuri de privilegii care există pe acest server

Privilegiile se referă la acele acțiuni pe care un anumit utilizator le poate efectua în conformitate cu statutul său. Cel mai minim, desigur, este o autentificare obișnuită. Desigur, privilegiile se pot schimba în timp. Cele vechi vor fi șterse și altele noi vor fi adăugate. Astăzi, toți cei care urmează cursuri SQL Server „pentru manechin” știu că există mai multe tipuri de acțiuni permise:

  1. Tip obiect - utilizatorului i se permite să execute orice comandă numai în legătură cu un anumit obiect care se află în baza de date. În același timp, privilegiile diferă pentru diferite obiecte. Ele sunt, de asemenea, legate nu numai de un anumit utilizator, ci și de mese. Dacă cineva, folosindu-și capacitățile, a creat un tabel, atunci el este considerat proprietarul acesteia. Prin urmare, el are dreptul de a atribui noi privilegii altor utilizatori legate de informațiile din acesta.
  2. Tipul de sistem este așa-numitul drept de autor al datelor. Utilizatorii care au primit astfel de privilegii pot crea diverse obiecte în baza de date.

Istoria SQL

Acest limbaj a fost creat de IBM Research Laboratory în 1970. La vremea respectivă, numele său era puțin diferit (SEQUEL), dar după câțiva ani de utilizare a fost schimbat, scurtându-l puțin. În ciuda acestui fapt, chiar și astăzi mulți experți în programare de renume mondial încă pronunță numele în mod demodat. SQL a fost creat cu un singur scop - să inventeze un limbaj care să fie atât de simplu încât chiar și utilizatorii obișnuiți de internet să-l învețe fără probleme. Un fapt interesant este că la acea vreme SQL nu era singurul astfel de limbaj. În California, un alt grup de specialiști a dezvoltat un Ingres similar, dar nu s-a răspândit niciodată. Înainte de 1980, existau mai multe variante de SQL care erau doar puțin diferite unele de altele. Pentru a preveni confuzia, în 1983 a fost creată o versiune standard, care este încă populară și astăzi. Cursurile SQL „pentru manechin” vă permit să aflați mult mai multe despre serviciu și să îl studiați complet în câteva săptămâni.

Limbajul de interogare structurat sau SQL este un limbaj de programare declarativ pentru utilizarea în baze de date cvasi-relaționale. Multe dintre caracteristicile originale ale SQL au fost preluate din calculul tuplilor, dar extensiile recente la SQL includ din ce în ce mai multă algebră relațională.
SQL a fost creat inițial de IBM, dar mulți furnizori și-au dezvoltat propriile dialecte. A fost adoptat ca standard de Institutul Național American de Standarde (ANSI) în 1986 și ISO în 1987. În standardul limbajului de programare SQL, ANSI a declarat că pronunția oficială a SQL este „es q el”. Cu toate acestea, mulți specialiști în baze de date au folosit pronunția „slang” „Sequel”, care reflectă numele inițial al limbii, Sequel, care a fost schimbat ulterior din cauza unui conflict de mărci comerciale și de nume cu IBM. Programare pentru incepatori.
Limbajul de programare SQL a fost revizuită în 1992 și această versiune este cunoscută ca SQL-92. 1999 a fost apoi revizuit din nou pentru a deveni SQL:1999 (AKA SQL3). Programare pentru manechini. SQL 1999 acceptă obiecte care nu erau acceptate anterior în alte versiuni, dar de la sfârșitul anului 2001, doar câteva sisteme de gestionare a bazelor de date acceptau implementări SQL: SQL 1999.
SQL, deși este definit ca ANSI și ISO, are multe variații și extensii, dintre care majoritatea au propriile caracteristici, cum ar fi implementarea „PL/SQL” a Oracle Corporation sau implementarea Sybase și Microsoft numită „Transact-SQL”, care poate fi confuză pentru cei familiarizați cu elementele de bază ale programării. De asemenea, nu este neobișnuit ca implementările comerciale să omite suportul pentru principalele caracteristici ale standardului, cum ar fi tipuri de date precum data și ora, preferând unele dintre propriile variante. Ca rezultat, spre deosebire de ANSI C sau ANSI Fortran care pot fi portate de obicei de la platformă la platformă fără modificări structurale majore, interogările limbajului de programare SQL pot fi portate rareori între diferite sisteme de baze de date fără modificări semnificative. Majoritatea oamenilor din industria bazelor de date consideră că această lipsă de compatibilitate este intenționată, pentru a oferi fiecărui dezvoltator propriul sistem de gestionare a bazelor de date și a lega cumpărătorul de o anumită bază de date.
După cum sugerează și numele, limbajul de programare SQL este conceput pentru scopuri specifice, limitate - interogarea datelor conținute într-o bază de date relațională. Ca atare, este un set de instrucțiuni de limbaj de programare pentru crearea mostrelor de date, mai degrabă decât un limbaj procedural precum C sau BASIC, care sunt concepute pentru a rezolva o gamă mult mai largă de probleme. Extensiile de limbaj precum „PL/SQL” sunt concepute pentru a rezolva această limitare prin adăugarea de elemente procedurale la SQL, păstrând în același timp beneficiile SQL. O altă abordare este de a încorpora comenzile limbajului de programare procedural în interogările SQL și de a interacționa cu baza de date. De exemplu, Oracle și alții acceptă Java în baza de date, în timp ce PostgreSQL permite ca funcțiile să fie scrise în Perl, Tcl sau C.
O glumă despre SQL: „SQL nu este nici structurat, nici limbaj”. Ideea glumei este că SQL nu este un limbaj Turing. .

Selectați * din T
C1 C2
1 A
2 b
C1 C2
1 A
2 b
Selectați C1 din T
C1
1
2
C1 C2
1 A
2 b
Selectați * din T unde C1=1
C1 C2
1 A

Având în vedere un tabel T, interogarea Select * din T va afișa toate elementele tuturor rândurilor din tabel.
Din același tabel, interogarea Select C1 din T va afișa elementele din coloana C1 a tuturor rândurilor din tabel.
Din același tabel, interogarea Select * din T unde C1=1 va afișa toate elementele tuturor rândurilor în care valoarea coloanei C1 este „1”.

Cuvinte cheie SQL

Cuvintele SQL sunt împărțite într-un număr de grupuri.

Primul este Limbajul de manipulare a datelor sau DML(limbaj de gestionare a datelor). DML este un subset al limbajului folosit pentru a interoga bazele de date și pentru a adăuga, actualiza și șterge date.

  • SELECT este una dintre cele mai frecvent utilizate comenzi DML și permite utilizatorului să specifice o interogare ca o descriere set a rezultatului dorit. Interogarea nu specifică modul în care trebuie aranjate rezultatele - traducerea interogării într-o formă care poate fi executată în baza de date este sarcina sistemului de baze de date, mai precis a optimizatorului de interogări.
  • INSERT este folosit pentru a adăuga rânduri (set formal) la un tabel existent.
  • UPDATE este folosit pentru a modifica valorile datelor dintr-un rând de tabel existent.
  • DELETE specifică rândurile existente care vor fi șterse din tabel.

Se poate spune că alte trei cuvinte cheie se încadrează în grupul DML:

  • BEGIN WORK (sau START TRANZACȚIA, în funcție de dialectul SQL) poate fi folosit pentru a marca începutul unei tranzacții de bază de date care fie va finaliza totul, fie nu se va executa deloc.
  • COMMIT afirmă că toate modificările de date făcute după efectuarea operațiunilor sunt salvate.
  • ROLLBACK specifică faptul că toate modificările datelor după ultima comitere sau rollback trebuie distruse, până la punctul în care a fost înregistrat în baza de date ca „rollback”.

COMMIT și ROLLBACK sunt utilizate în domenii precum controlul tranzacțiilor și blocarea. Ambele instrucțiuni completează toate tranzacțiile curente (seturile de operațiuni din baza de date) și elimină toate blocările la modificarea datelor din tabele. Prezența sau absența unei instrucțiuni BEGIN WORK sau similare depinde de implementarea SQL particulară.

Al doilea grup de cuvinte cheie aparține grupului Data Definition Language sau DDL (Data Definition Language). DDL permite utilizatorului să definească noi tabele și elementele asociate acestora. Majoritatea bazelor de date SQL comerciale au propriile extensii DDL care permit controlul asupra elementelor non-standard, dar de obicei vitale, ale unui anumit sistem.
Principalele puncte ale DDL sunt comenzile de creare și ștergere.

  • CREATE specifică obiectele (cum ar fi tabelele) care vor fi create în baza de date.
  • DROP specifică ce obiecte existente în baza de date vor fi șterse, de obicei definitiv.
  • Unele sisteme de baze de date acceptă și comanda ALTER, care permite utilizatorului să modifice un obiect existent în diferite moduri, cum ar fi adăugarea de coloane la un tabel existent.

Al treilea grup de cuvinte cheie SQL este Limbajul de control al datelor sau DCL (Limbajul de control al datelor). DCL este responsabil pentru drepturile de acces la date și permite utilizatorului să controleze cine are acces pentru a vizualiza sau manipula datele din baza de date. Există două cuvinte cheie principale aici:

  • GRANT - permite utilizatorului să efectueze operațiuni
  • REVOKE - Îndepărtează sau restricționează capacitatea utilizatorului de a efectua operațiuni.

Sisteme de baze de date folosind SQL

  • InterBase
  • MySQL
  • Oracol
  • PostgreSQL
  • SQL Server

Cum să devii un profesionist în dezvoltarea de site-uri web și să începi să câștigi bani? Cursuri video ieftine cu o introducere introductivă.