Salutare tuturor! Astăzi voi încerca să vă povestesc cât mai simplu, mai ales pentru începători, despre ce este SQL, și pentru ce este nevoie. Din acest material veți afla, de asemenea, ce sunt o bază de date și un sistem de gestionare a bazelor de date, precum și ce este un dialect al limbajului SQL, deoarece întregul articol va fi construit fără probleme, conducându-vă la înțelegerea a ceea ce este SQL.
Cred că deja vă imaginați că SQL este un fel de limbaj asociat cu un fel de baze de date, dar pentru a înțelege mai bine ce este SQL, trebuie să înțelegeți pentru ce este SQL, pentru ce este acest limbaj, adică. scopul acesteia.
Prin urmare, mai întâi vă voi oferi câteva informații introductive, din care va fi clar scopul limbajului SQL și de ce este necesar în general.
Ce este o bază de date
Și voi începe cu faptul că o bază de date este de obicei înțeleasă ca orice set de informații care sunt stocate într-un anumit mod și care pot fi utilizate. Dar dacă vorbim despre niște baze de date automatizate, atunci, desigur, vorbim despre așa-numitele baze de date relaționale.
Baza de date relațională– aceasta este informație ordonată interconectată prin anumite relații. Este prezentat sub formă de tabele în care se află toate aceste informații. Și acest lucru este foarte important, deoarece acum ar trebui să vă imaginați o bază de date modernă pur și simplu sub formă de tabele ( vorbind în contextul SQL), adică În sens general, o bază de date este o colecție de tabele. Desigur, aceasta este o definiție foarte simplificată, dar oferă o înțelegere practică a bazei de date.
Ce este SQL
Datorită faptului că informațiile din baza de date sunt organizate, împărțite în anumite entități și prezentate sub formă de tabele, este ușor să accesăm și să găsim informațiile de care avem nevoie.
Și aici apare întrebarea principală: Cum o putem contacta și obține informațiile de care avem nevoie?
Trebuie să existe un instrument special pentru asta și aici ne vine în ajutor SQL, care este instrumentul cu care sunt manipulate datele ( crearea, preluarea, ștergerea etc.) în baza de date.
SQL (Limbajul de interogare structurat) este un limbaj de interogare structurat folosit pentru a scrie interogări speciale ( așa-numitele instrucțiuni SQL) la o bază de date în scopul obținerii de date din baza de date sau manipulării datelor respective.
De asemenea, este de remarcat faptul că baza de date, și în special modelul relațional, se bazează pe teoria mulțimilor, care implică combinarea diferitelor obiecte într-un întreg; prin un întreg în baza de date înțelegem un tabel. Acest lucru este important, deoarece limbajul SQL funcționează în mod specific cu un set, cu un set de date, de ex. cu mese.
Materiale utile pe această temă:
- Crearea unei baze de date în Microsoft SQL Server - instrucțiuni pentru începători;
- Adăugarea de date la tabele în Microsoft SQL Server - instrucțiunea INSERT INTO.
Ce este un DBMS
Este posibil să aveți o întrebare, dacă o bază de date este un fel de informații care sunt stocate în tabele, atunci cum arată fizic? Cum să-l privim ca un întreg?
Pe scurt, acesta este doar un fișier creat într-un format special, exact așa arată o bază de date ( în majoritatea cazurilor baza de date include mai multe fișiere, dar acum la acest nivel nu este atât de important).
Să mergem mai departe, dacă o bază de date este un fișier într-un format special, atunci cum se creează sau se deschide? Și aici apare dificultatea, pentru că tocmai așa, fără niciun instrument, creați un astfel de fișier, adică. o bază de date relațională nu este posibilă; pentru aceasta aveți nevoie de un instrument special care ar putea crea și gestiona baza de date, cu alte cuvinte, să lucrați cu aceste fișiere.
Acesta este tocmai instrumentul DBMS este un sistem de gestionare a bazelor de date, abreviat ca DBMS.
Ce fel de SGBD există?
De fapt, există destul de multe SGBD-uri diferite, unele dintre ele sunt plătite și costă mulți bani dacă vorbim despre versiuni complete, dar chiar și cele mai multe, ca să spunem așa, „cool” au ediții gratuite, care , apropo, sunt grozave pentru învățare.
Printre toate, în ceea ce privește capacitățile și popularitatea lor, se pot distinge următoarele sisteme:
- Microsoft SQL Server este un sistem de gestionare a bazelor de date de la Microsoft. Este foarte popular în sectorul corporativ, în special în companiile mari. Și acesta nu este doar un DBMS - este un întreg set de aplicații care vă permite să stocați și să modificați date, să le analizați, să asigurați securitatea acestor date și multe altele;
- Baza de date Oracle este un sistem de gestionare a bazelor de date de la Oracle. Este, de asemenea, un SGBD foarte popular, inclusiv printre companiile mari. În ceea ce privește capabilitățile și funcționalitatea lor, Oracle Database și Microsoft SQL Server sunt comparabile, prin urmare sunt concurenți serioși unul față de celălalt, iar costul versiunilor lor complete este foarte mare;
- MySQL este un sistem de gestionare a bazelor de date tot de la Oracle, dar numai el este distribuit gratuit. MySQL a câștigat o popularitate foarte largă în segmentul de Internet, adică. Aproape toate site-urile de pe Internet rulează pe MySQL, cu alte cuvinte, majoritatea site-urilor de pe Internet folosesc acest SGBD ca mijloc de stocare a datelor;
- PostgreSQL– Acest sistem de gestionare a bazelor de date este, de asemenea, gratuit și este foarte popular și funcțional.
Materiale utile pe această temă:
- Instalarea Microsoft SQL Server 2016 Express - un exemplu de instalare a ediției gratuite a Microsoft SQL Server pe Windows;
- Instalarea Microsoft SQL Server 2017 Express pe Ubuntu Server - un exemplu de instalare a ediției gratuite a Microsoft SQL Server pe Linux;
- Instalarea PostgreSQL 11 pe Windows - exemplu de instalare PostgreSQL pe Windows;
- Instalarea MySQL pe Windows - exemplu de instalare MySQL pe Windows;
- Instalarea și configurarea MySQL pe Linux Mint - un exemplu de instalare MySQL pe Linux;
- Instalarea Oracle Database Express Edition 11g - un exemplu de instalare a ediției gratuite a Oracle pe Windows ( Articolul a fost scris cu mult timp în urmă, dar tot va fi util).
Dialecte SQL (extensii SQL)
Limbajul SQL este un standard, este implementat în toate bazele de date relaționale, dar fiecare SGBD are o extensie a acestui standard, are propriul limbaj de lucru cu datele, de obicei se numește dialectul SQL, care, desigur, se bazează pe SQL, dar oferă mai multe oportunități de programare cu drepturi depline; în plus, un astfel de limbaj intern face posibilă obținerea de informații despre sistem și simplificarea interogărilor SQL.
Iată câteva dialecte SQL:
- Transact-SQL(abreviat T-SQL) – folosit în Microsoft SQL Server;
- PL/SQL(Limbajul procedural / Limbajul de interogare structurat) – utilizat în baza de date Oracle;
- PL/pgSQL(Limbaj procedural/Limbajul de interogare structurat PostGres) – utilizat în PostgreSQL.
Astfel, depinde de SGBD ce extensie vei folosi pentru a scrie instrucțiuni SQL. Dacă vorbim despre interogări SQL simple, de exemplu,
SELECTează ProductId, ProductName FROM Bunuri
atunci, desigur, astfel de interogări vor funcționa în toate SGBD-urile, deoarece SQL este un standard.
Notă! Aceasta este o interogare SQL simplă pentru a prelua date dintr-un tabel, afișând două coloane.
Cu toate acestea, dacă urmează să programați, utilizați toate capacitățile interne ale SGBD ( dezvolta proceduri, folosește funcții încorporate, obține informații despre sistem etc.), atunci trebuie să înveți un anumit dialect al SQL și să exersezi în consecință în DBMS care utilizează acest dialect. Acest lucru este important deoarece sintaxa multor constructe diferă, la fel ca și capabilitățile și multe altele. Și dacă, de exemplu, rulați o instrucțiune SQL, care folosește capacitățile unei anumite extensii SQL, pe un alt DBMS, atunci o astfel de instrucțiune, desigur, nu va fi executată.
De exemplu, eu personal sunt specializat în limbajul T-SQL și, în consecință, lucrez cu Microsoft SQL Server de mai bine de 8 ani!
Deși, desigur, am lucrat și cu alte SGBD-uri; la un moment dat am susținut două aplicații, dintre care una funcționa cu PostgreSQL, iar a doua, probabil deja clară, cu Microsoft SQL Server.
Am lucrat cu MySQL, ca probabil mulți alții, ca parte a întreținerii site-urilor și serviciilor. Ei bine, a trebuit să lucrez cu Oracle Database ca parte a altor proiecte.
Am grupat toată experiența mea acumulată în limbajul T-SQL într-un singur loc și am pus-o sub formă de cărți, așa că dacă doriți să învățați limbajul Transact-SQL (T-SQL), vă recomand să citiți cărțile mele:
- Calea programatorului T-SQL - un tutorial despre limbajul Transact-SQL pentru începători. În ea vorbesc în detaliu despre toate construcțiile limbajului și trec constant de la simplu la complex. Potrivit pentru învățarea cuprinzătoare a limbajului T-SQL;
- Stilul de programare T-SQL - elementele de bază ale codificării corecte. O carte care vizează îmbunătățirea calității codului T-SQL ( pentru cei care sunt deja familiarizați cu limbajul T-SQL, adică cunoaște cel puțin elementele de bază).
Sper că acum înțelegeți ce este SQL și pentru ce este necesar. În materialele următoare vă voi spune cum să creați interogări SQL, vă voi spune ce instrumente trebuie să utilizați pentru aceasta și pentru ce SGBD, deoarece fiecare SGBD are propriul său instrumente, așa că urmăriți pentru lansarea de noi articole în grupurile mele de pe rețelele sociale.
Comenzi SQL de bază pe care fiecare programator ar trebui să le cunoască
SQL sau Structured Query Language este un limbaj utilizat pentru gestionarea datelor într-un sistem de baze de date relaționale (RDBMS). Acest articol va acoperi comenzile SQL utilizate în mod obișnuit cu care fiecare programator ar trebui să fie familiarizat. Acest material este ideal pentru cei care doresc să-și perfecționeze cunoștințele de SQL înainte de un interviu de angajare. Pentru a face acest lucru, uitați-vă la exemplele date în articol și amintiți-vă că ați studiat bazele de date în perechi.
Rețineți că unele sisteme de baze de date necesită un punct și virgulă la sfârșitul fiecărei instrucțiuni. Punctul și virgulă este indicatorul standard către sfârșitul fiecărei instrucțiuni din SQL. Exemplele folosesc MySQL, deci este necesar un punct și virgulă.
Configurarea unei baze de date pentru exemple
Creați o bază de date pentru a demonstra cum funcționează echipele. Pentru a funcționa, va trebui să descărcați două fișiere: DLL.sql și InsertStatements.sql. După aceea, deschideți un terminal și conectați-vă la consola MySQL folosind următoarea comandă (articolul presupune că MySQL este deja instalat pe sistem):
Mysql -u root -p
Apoi introduceți parola.
Rulați următoarea comandă. Să numim baza de date „universitate”:
CREAȚI BAZĂ DE DATE universitate; USE universitate; SURSĂ Poate fi necesar să creați restricții pentru anumite coloane dintr-un tabel. Când creați un tabel, puteți seta următoarele restricții: Puteți specifica mai multe chei primare. În acest caz, veți obține o cheie primară compusă. Creați un tabel „instructor”: CREATE TABLE instructor (ID CHAR(5), nume VARCHAR(20) NOT NULL, dept_name VARCHAR(20), salariu NUMERIC(8,2), PRIMARY KEY (ID), FOREIGN KEY (dept_name) REFERENCE departament (dept_name)); Puteți vizualiza diverse informații (tip de valoare, cheie sau nu) despre coloanele din tabel cu următoarea comandă: DESCRIE Când adăugați date în fiecare coloană dintr-un tabel, nu este necesar să specificați numele coloanelor. INTRODU IN SELECT este folosit pentru a prelua date dintr-un anumit tabel: SELECTAȚI Următoarea comandă poate afișa toate datele din tabel: ALEGE DIN Coloanele din tabel pot conține date duplicat. Utilizați SELECT DISTINCT pentru a prelua numai date neduplicate. SELECTARE DISTINCT Puteți utiliza cuvântul cheie WHERE din SELECT pentru a specifica condiții într-o interogare: SELECTAȚI Următoarele condiții pot fi specificate în cerere: Încercați următoarele comenzi. Acordați atenție condițiilor specificate în UNDE: SELECT * FROM curs WHERE dept_name=’Comp. Sci.'; SELECT * FROM curs WHERE credite>3; SELECT * FROM curs WHERE dept_name="Comp. Sci." SI credite>3; Operatorul GROUP BY este adesea folosit cu funcții agregate, cum ar fi COUNT, MAX, MIN, SUM și AVG pentru a grupa valorile de ieșire. SELECTAȚI Să afișăm numărul de cursuri pentru fiecare facultate: SELECT COUNT(course_id), dept_name FROM curs GROUP BY dept_name; Cuvântul cheie HAVING a fost adăugat la SQL deoarece WHERE nu poate fi utilizat cu funcții agregate. SELECTAȚI Să afișăm o listă de facultăți care au mai multe cursuri: SELECTAȚI COUNT(codul_curs), nume_dept FROM GRUPUL cursului BY numele_departament HAVING COUNT(id_curs)>1; ORDER BY este folosit pentru a sorta rezultatele interogărilor în ordine descrescătoare sau crescătoare. ORDER BY va sorta în ordine crescătoare, dacă nu este specificat ASC sau DESC. SELECTAȚI Să afișăm o listă de cursuri în ordinea crescătoare și descrescătoare a creditelor: SELECTAȚI * DIN curs ORDENAȚI PENTRU credite; SELECTAȚI * DIN curs ORDENAȚI PE credite DESC; BETWEEN este utilizat pentru a selecta valorile datelor dintr-un interval specific. Pot fi utilizate valori numerice și text, precum și datele. SELECTAȚI Să afișăm o listă de instructori al căror salariu este mai mare de 50.000, dar mai mic de 100.000: SELECT * FROM instructor WHERE salariu INTRE 50000 SI 100000; Operatorul LIKE este folosit în WHERE pentru a specifica un model de căutare pentru o valoare similară. Există doi operatori gratuiti care sunt utilizați în LIKE: Să afișăm o listă de cursuri ale căror nume conțin „către” și o listă de cursuri ale căror nume încep cu „CS-”: SELECTAȚI * FROM curs WHERE titlul LIKE ‘%to%’; SELECT * FROM curs WHERE curs_id LIKE „CS-___”; Folosind IN puteți specifica mai multe valori pentru clauza WHERE: SELECTAȚI Să afișăm o listă de studenți de la Comp major. Sci., Fizică și Elec. ing.: SELECT * FROM student WHERE nume_dept IN ('Comp. Sci.', 'Physics', 'Elec. Eng.'); JOIN este folosit pentru a lega două sau mai multe tabele folosind atribute comune în cadrul acestora. Imaginea de mai jos arată diferitele moduri de a vă alătura în SQL. Observați diferența dintre o îmbinare exterioară stângă și o îmbinare exterioară dreaptă: SELECTAȚI Vom afișa o listă cu toate cursurile și informații relevante despre facultăți: SELECT * FROM curs JOIN departament ON curs.dept_name=department.dept_name; Vom afișa o listă cu toate cursurile necesare și detalii despre acestea: SELECT prereq.course_id, titlu, dept_name, credite, prereq_id FROM prereq LEFT OUTER JOIN curs ON prereq.course_id=course.course_id; Vom afișa o listă cu toate cursurile, indiferent dacă sunt obligatorii sau nu: SELECTează curs.course_id, titlu, dept_name, credite, prereq_id FROM prereq RIGHT OUTER JOIN curs ON prereq.course_id=course.course_id; View este un tabel SQL virtual creat ca rezultat al executării unei expresii. Conține rânduri și coloane și este foarte asemănător cu un tabel SQL obișnuit. Vizualizare afișează întotdeauna cele mai recente informații din baza de date. Să creăm o vizualizare formată din cursuri cu 3 credite: Aceste funcții sunt folosite pentru a obține un rezultat agregat legat de datele în cauză. Următoarele sunt funcții agregate utilizate în mod obișnuit: Subinterogările imbricate sunt interogări SQL care includ clauze SELECT , FROM și WHERE imbricate într-o altă interogare. Să găsim cursuri care au fost predate în toamna lui 2009 și primăvara lui 2010: SELECT DISTINCT curs_id FROM secțiunea WHERE semestru = „Toamnă” ȘI anul= 2009 ȘI curs_id IN (SELECTARE curs_id FROM secțiunea WHERE semestru = „Primăvara” ȘI anul= 2010); Pentru a începe să studiez SQL trebuie să înțelegem mai întâi ce este o bază de date. Baza de date (DB)- un set ordonat de date legate logic, utilizate împreună și stocate într-un singur loc. Pe scurt, cel mai simplu DB acesta este un tabel obișnuit cu rânduri și coloane în care sunt stocate diferite tipuri de informații (un exemplu ar fi un tabel în excela). Deci, adesea, cu DB se leagă inseparabil Sisteme de management al bazelor de date (DBMS), care oferă funcționalitate pentru a lucra cu DB. Limba SQL este doar o parte SGBD, care gestionează informații în DB. Vom număra DB un set de tabele obișnuite care sunt stocate în fișiere separate. Deci să trecem la SQL. SQL este un limbaj de programare simplu care are puține comenzi și poate fi învățat de oricine. Reprezintă Limbajul de interogare structurat este un limbaj de interogare structurat cu care a fost conceput DB, și anume, pentru a primi/adăuga/modifica date, pentru a putea prelucra cantități mari de informații și a obține rapid informații structurate și grupate. Există multe opțiuni de limbă SQL, dar toate au aceleași comenzi de bază. Sunt și multe SGBD, dar principalele sunt: Microsoft Access, Microsoft SQL Server, MySQL, Oracle SQL, IBM DB2 SQL, PostgreSQL și Sybase Adaptive Server SQL. A lucra cu SQL cod, vom avea nevoie de unul dintre cele de mai sus SGBD. Pentru antrenament vom folosi Microsoft Access DBMS. SQL ca și alte limbaje de programare, are propriile comenzi (operatori), cu ajutorul cărora se dau instrucțiuni pentru preluarea datelor. Pentru a vedea cum lucrează operatorii SQL, vom folosi imaginar DB cu informații despre produsele vândute. Bun venit la dezvoltarea bazelor de date folosind limbajul standard de interogare SQL. Sistemele de gestionare a bazelor de date (DBMS) au multe instrumente care rulează pe o mare varietate de platforme hardware. În acest capitol... | Organizarea informațiilor | Ce este o bază de date | Ce este un SGBD | Compararea modelelor de baze de date | Ce este o bază de date relațională În acest capitol... | Ce este SQL | Concepții greșite SQL | O privire asupra diferitelor standarde SQL | Introducere în comenzile SQL standard și cuvintele rezervate | Reprezentând numere, simboluri, date, ore și alte tipuri de date | Valori și restricții nedefinite În acest capitol... | Crearea bazelor de date | Prelucrarea datelor | Protecția bazei de date | SQL este un limbaj special conceput pentru a crea și menține date în baze de date relaționale. Și deși companiile care furnizează sisteme pentru gestionarea unor astfel de baze de date oferă propriile implementări de SQL, dezvoltarea limbajului în sine este determinată și controlată de standardul ISO/ANSI. În acest capitol... | Creați, modificați și ștergeți un tabel dintr-o bază de date folosind instrumentul RAD. | Creați, modificați și ștergeți un tabel dintr-o bază de date folosind SQL. | Transferarea unei baze de date într-un alt SGBD. În acest capitol... | Ce ar trebui să fie în baza de date | Definirea relatiilor intre elementele bazei de date | Conectarea tabelelor folosind cheile | Design de integritate a datelor | Normalizare baze de date | Acest capitol va prezenta un exemplu de creare a unei baze de date cu mai multe tabele. În acest capitol... | Lucrul cu date | Obținerea datelor necesare din tabel | Afișarea informațiilor selectate dintr-unul sau mai multe tabele | Actualizarea informațiilor din tabele și vizualizări | Adăugarea unui nou rând la un tabel În acest capitol... | Utilizarea variabilelor pentru a reduce codificarea redundantă | Preluarea informațiilor solicitate frecvent aflate într-un câmp de tabel al bazei de date | Combinarea valorilor simple pentru a crea expresii compuse | Această carte subliniază continuu cât de importantă este structura unei baze de date pentru menținerea integrității unei baze de date. În acest capitol... | Folosind instrucțiuni condiționale | Conversia unui element de date dintr-un tip de date în altul | Salvați timpul de introducere a datelor cu expresii cu valoare de înregistrare | În capitolul 2, SQL a fost numit un sublimbaj de date. În acest capitol... | Specificarea tabelelor necesare | Separarea liniilor necesare de toate celelalte | Crearea de clauze unde eficiente | Cum se lucrează cu valori nule | Crearea expresiilor compuse cu conexiuni logice | Rezultatul interogării de grupare a rezultatelor după coloană În acest capitol... | Unirea tabelelor care au o structură similară | Îmbinarea tabelelor care au structuri diferite | Obținerea datelor de care aveți nevoie din mai multe tabele | SQL este un limbaj de interogare folosit în bazele de date relaționale. În acest capitol... | Preluarea datelor din mai multe tabele cu o singură instrucțiune SQL | Găsirea elementelor de date comparând o valoare dintr-un tabel cu un set de valori dintr-un altul | Găsirea elementelor de date prin compararea unei valori dintr-un tabel cu o singură valoare selectată folosind o instrucțiune select din altul În acest capitol... | Controlul accesului la tabelele bazei de date | Decizia dacă se acordă acces | Acordarea permisiunilor de acces | Revocarea autorității de acces | Prevenirea încercărilor de acces neautorizat În acest capitol... | Cum să evitați coruperea bazei de date | Probleme cauzate de operațiuni simultane | Rezolvarea acestor probleme folosind motoarele SQL | Setarea nivelului de securitate necesar folosind comanda set transaction În acest capitol... | SQL în aplicație | Partajarea SQL cu limbaje procedurale | Cum să evitați incompatibilitățile | Cod SQL încorporat în codul de procedură | Apelarea modulelor SQL din Codul de procedură | Apelarea SQL dintr-un instrument RAD | În capitolele anterioare, ne-am uitat în principal la comenzile SQL individual, adică. Sarcina de prelucrare a datelor a fost formulată și a fost creată o interogare SQL pentru aceasta. În acest capitol... | Definiție ODBC | Descrierea pieselor ODBC | Utilizarea ODBC într-un mediu client/server | Utilizarea ODBC pe Internet | Utilizarea ODBC în rețelele locale | Folosind JDBC | În fiecare an, computerele unei organizații sau mai multor organizații diferite sunt din ce în ce mai conectate între ele. Prin urmare, este necesar să se stabilească acces partajat la bazele de date prin rețea. În acest capitol... | Utilizarea SQL cu XML | XML, baze de date și Internet | Una dintre cele mai semnificative caracteristici noi ale SQL:2003 este suportul pentru fișierele XML (Extensible Markup Language), care devin din ce în ce mai mult un standard universal pentru schimbul de date între platforme disparate. În acest capitol... | Definirea domeniului de aplicare al cursorului în instrucțiunea declare | Deschiderea cursorului | Eșantionarea datelor rând cu rând | Închiderea cursorului | SQL diferă de majoritatea celor mai populare limbaje de programare prin faptul că efectuează operații asupra datelor tuturor rândurilor unui tabel simultan, în timp ce limbajele procedurale procesează datele rând cu rând. În cele două articole anterioare din această serie, publicate în numerele 6 și 7 ale revistei noastre, am analizat diferite mecanisme de acces la date, inclusiv ADO, BDE și alternativele acestora. Acum știm cum să alegem o tehnologie de acces la date pentru o anumită pereche „DBMS - instrument de dezvoltare”. Cu tehnologia de acces la date, ne putem gândi în sfârșit la modul în care datele și metadatele în sine ar trebui manipulate. Metodele de manipulare pot fi specifice unui anumit SGBD (de exemplu, utilizarea obiectelor din partea client a acestui SGBD pentru a accesa obiectele bazei de date) sau unui anumit mecanism de acces la date. Cu toate acestea, există o modalitate mai mult sau mai puțin universală de manipulare a datelor, susținută de aproape toate SGBD-urile relaționale cu server și de majoritatea mecanismelor universale de acces la date (inclusiv atunci când sunt utilizate împreună cu SGBD-urile desktop). Această metodă este de a utiliza limbajul SQL (Structured Query Language). Mai jos vom analiza scopul și caracteristicile acestui limbaj și, de asemenea, vom învăța cum să îl folosim pentru a extrage și a rezuma date, a adăuga, șterge și modifica înregistrări, a proteja datele de accesul neautorizat și a crea baze de date. Pentru un studiu mai detaliat al SQL, vă putem recomanda cărțile lui Martin Graber „Introduction to SQL” (M., Laurie, 1996) și „SQL. Ghid de referință” (M., Lori, 1997). Structured Query Language este un limbaj non-procedural utilizat pentru gestionarea datelor în SGBD-urile relaționale. Termenul „non-procedural” înseamnă că o anumită limbă poate formula ceea ce trebuie făcut cu datele, dar nu poate instrui cum exact ar trebui făcut. Cu alte cuvinte, acest limbaj nu are constructe algoritmice precum etichete, operatori de buclă, salturi condiționate etc. Limbajul SQL a fost creat la începutul anilor 70 ca urmare a unui proiect de cercetare IBM al cărui scop a fost să creeze un limbaj pentru manipularea datelor relaționale. Inițial a fost numit SEQUEL (Structured English Query Language), apoi SEQUEL/2 și apoi pur și simplu SQL. Standardul oficial SQL a fost publicat de ANSI (American National Standards Institute, SUA) în 1986 (aceasta este cea mai utilizată implementare a SQL în prezent). Acest standard a fost extins în 1989 și 1992, așa că cel mai recent standard SQL se numește SQL92. În prezent se lucrează la standardul SQL3, care conține unele extensii orientate pe obiecte. Există trei niveluri de conformitate ANSI - Începător, Intermediar și Complet. Mulți furnizori de SGBD de server, precum IBM, Informix, Microsoft, Oracle și Sybase, folosesc propriile implementări SQL bazate pe standardul ANSI (întâlnind cel puțin nivelul inițial de conformitate cu standardul) și care conțin unele extensii specifice SGBD. Informații mai detaliate despre conformitatea versiunii de SQL utilizate într-un anumit SGBD pot fi găsite în documentația furnizată cu acel SGBD. Să vedem cum funcționează SQL. Să presupunem că există o bază de date gestionată folosind un fel de SGBD. Pentru a extrage date din acesta, se folosește o interogare formulată în SQL. SGBD procesează această solicitare, preia datele solicitate și le returnează. Acest proces este reprezentat schematic în Fig. 1 . După cum vom vedea mai târziu, SQL vă permite nu numai să preluați date, ci și să definiți structura datelor, să adăugați și să ștergeți date, să restricționați sau să acordați acces la date și să mențineți integritatea referențială. Vă rugăm să rețineți că SQL în sine nu este nici un DBMS, nici un produs separat. Acesta este un limbaj folosit pentru a interacționa cu SGBD și, într-un anumit sens, este parte integrantă a acestuia. Limbajul de definire a datelor conține operatori care vă permit să creați, să modificați și să distrugeți baze de date și obiecte din ele (tabele, vizualizări etc.). Acești operatori sunt enumerați în tabel. 1. tabelul 1 Operator Descriere Folosit pentru a adăuga un nou tabel la baza de date Folosit pentru a elimina un tabel dintr-o bază de date Folosit pentru a modifica structura unui tabel existent Folosit pentru a adăuga o nouă vizualizare la baza de date Folosit pentru a elimina o vizualizare din baza de date Folosit pentru a crea un index pentru un anumit câmp Folosit pentru a șterge un index existent Folosit pentru a crea o nouă schemă în baza de date Folosit pentru a elimina o schemă din baza de date Folosit pentru a crea un domeniu nou Folosit pentru a redefini un domeniu Folosit pentru a elimina un domeniu din baza de date Limbajul de manipulare a datelor conține operatori care vă permit să selectați, să adăugați, să ștergeți și să modificați date. Rețineți că aceste declarații nu sunt necesare pentru a finaliza tranzacția în cadrul căreia sunt apelate. Declarațiile DML sunt prezentate în tabel. 2. masa 2 Instrucțiunea SELECT este uneori clasificată într-o categorie separată numită Data Query Language (DQL). Instrucțiunile limbajului de control al cursorului sunt folosite pentru a defini un cursor, pentru a pregăti instrucțiuni SQL pentru execuție și alte câteva instrucțiuni. Declarațiile CCL sunt prezentate în tabel. 5. Tabelul 5 Operator Descriere Folosit pentru a determina cursorul pentru cerere Folosit pentru a descrie un plan de interogare. Această declarație este o extensie SQL pentru Microsoft SQL Server 7.0. Nu este necesar să ruleze în alte SGBD. De exemplu, în cazul Oracle, trebuie folosită instrucțiunea EXPLAIN PLAN Folosit pentru a deschide cursorul la primirea rezultatelor interogării Folosit pentru a obține un șir din rezultatele interogării Folosit pentru a închide cursorul Folosit pentru a pregăti o instrucțiune SQL pentru execuție Folosit pentru a executa instrucțiuni SQL Folosit pentru a descrie o cerere pregătită Toate instrucțiunile SQL au forma prezentată în Fig. 2. Fiecare instrucțiune SQL începe cu un verb, care este un cuvânt cheie care specifică ce face instrucțiunea (SELECT, INSERT, DELETE...). Declarația conține și propoziții care conțin informații despre ce date sunt efectuate operațiunile. Fiecare clauză începe cu un cuvânt cheie, cum ar fi FROM, WHERE etc. Structura clauzei depinde de tipul acesteia - unele clauze conțin nume de tabel sau câmpuri, altele pot conține cuvinte cheie, constante sau expresii suplimentare. Toate SGBD-urile server moderne (precum și multe SGBD-uri desktop populare) conțin utilitare care vă permit să executați o instrucțiune SQL și să vizualizați rezultatul acesteia. În special, partea client Oracle conține utilitarul SQL Plus, iar Microsoft SQL Server conține utilitarul SQL Query Analyzer. Este acest utilitar pe care îl vom folosi pentru a demonstra capabilitățile SQL și, ca bază de date pe care vom „experimenta”, vom lua baza de date NorthWind inclusă în pachetul Microsoft SQL Server 7.0. În principiu, puteți utiliza o altă bază de date și orice alt utilitar care poate executa instrucțiuni SQL în această bază de date și poate afișa rezultatele (sau chiar scrieți propriile dvs. folosind orice instrument de dezvoltare - Visual Basic, Delphi, C++Builder etc.). Cu toate acestea, se recomandă să faceți o copie de rezervă a acestei baze de date pentru orice eventualitate.Comenzi pentru lucrul cu baze de date
1. Vizualizați bazele de date disponibile
AFIȘAȚI BAZELE DE DATE; 2. Creați o nouă bază de date
CREAȚI BAZĂ DE DATE; 3. Selectarea unei baze de date de utilizat
UTILIZARE 4. Importați comenzi SQL dintr-un fișier .sql
SURSĂ 5. Ștergeți baza de date
DROP BAZA DE DATE Lucrul cu tabele
6. Vizualizați tabelele disponibile în baza de date
Arata tabele; 7. Creați un tabel nou
CREAȚI TABEL Constrângeri de integritate atunci când utilizați CREATE TABLE
Exemplu
8. Informații din tabel
9. Adăugarea datelor la tabel
INTRODU IN 10. Actualizarea datelor tabelului
ACTUALIZAȚI 11. Eliminarea tuturor datelor din tabel
ȘTERGERE DIN 12. Ștergeți un tabel
DROP TABLE Comenzi pentru crearea de interogări
13. SELECT
14. SELECTAȚI DISTINCT
15. UNDE
Exemplu
16. GROUP BY
Exemplu
17. AVÂND
Exemplu
18. COMANDA PENTRU
Exemplu
19. ÎNTRE
Exemplu
20. LIKE
SELECTAȚI Exemplu
21. IN
Exemplu
22. ÎNSCRIEȚI-VĂ
Exemplul 1
Exemplul 2
Exemplul 3
23. Vedere
Creare
CREATE VIEW Îndepărtarea
DROP VIEW Exemplu
24. Funcții agregate
25. Subinterogări imbricate
Exemplu
1. Ce este o bază de date
2. Ce este SQL
Baze de date relaționale
Bazele SQL
Componente SQL
Crearea și întreținerea unei baze de date simple
Crearea unei baze de date relaționale cu mai multe tabele
Manipularea datelor din baza de date
Definirea Valorilor
Expresii complexe cu sens
„Direcționarea” către datele necesare
Operatori Relaționali
Folosind interogări imbricate
Interogări recursive
Securizarea bazei de date
Protejarea datelor
Utilizarea SQL în aplicații
ODBC și JDBC
SQL:2003 și XML
Cursore
Introducere
Cum funcționează SQL
Limbajul de definire a datelor (DDL)
Limbajul de manipulare a datelor (DML)
Limbajul de control al cursorului (CCL)
Cum puteți executa instrucțiuni SQL?