Ce este posibil folosind limbajul sql. SQL: un limbaj universal pentru lucrul cu baze de date

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Ă ; SURSĂ

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 ( , , CHEIA PRINCIPALA ( ), CHEIE EXTERNĂ ( ) REFERINȚE ());

Constrângeri de integritate atunci când utilizați CREATE TABLE

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:

  • o celulă de tabel nu poate avea o valoare NULL;
  • cheie primară - CHEIE PRIMARĂ (nume_coloană1, nume_col_2, ...) ;
  • cheie străină - FOREIGN KEY (col_namex1, …, col_namexn) REFERINȚE table_name(col_namex1, …, col_namexn) .

Puteți specifica mai multe chei primare. În acest caz, veți obține o cheie primară compusă.

Exemplu

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));

8. Informații din tabel

Puteți vizualiza diverse informații (tip de valoare, cheie sau nu) despre coloanele din tabel cu următoarea comandă:

DESCRIE ;

9. Adăugarea datelor la tabel

INTRODU IN (, , , ...) VALORI ( , , , …);

Când adăugați date în fiecare coloană dintr-un tabel, nu este necesar să specificați numele coloanelor.

INTRODU IN VALORI ( , , , …);

10. Actualizarea datelor tabelului

ACTUALIZAȚI A STABILIT = , = , ... UNDE ;

11. Eliminarea tuturor datelor din tabel

ȘTERGERE DIN ;

12. Ștergeți un tabel

DROP TABLE ;

Comenzi pentru crearea de interogări

13. SELECT

SELECT este folosit pentru a prelua date dintr-un anumit tabel:

SELECTAȚI , , … DE LA ;

Următoarea comandă poate afișa toate datele din tabel:

ALEGE DIN ;

14. SELECTAȚI DISTINCT

Coloanele din tabel pot conține date duplicat. Utilizați SELECT DISTINCT pentru a prelua numai date neduplicate.

SELECTARE DISTINCT , , … DE LA ;

15. UNDE

Puteți utiliza cuvântul cheie WHERE din SELECT pentru a specifica condiții într-o interogare:

SELECTAȚI , , … DE LA UNDE ;

Următoarele condiții pot fi specificate în cerere:

  • compararea textului;
  • compararea valorilor numerice;
  • operatori logici ȘI (și), SAU (sau) și NU (negație).

Exemplu

Î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;

16. GROUP BY

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 , , … DE LA A SE GRUPA CU ;

Exemplu

Să afișăm numărul de cursuri pentru fiecare facultate:

SELECT COUNT(course_id), dept_name FROM curs GROUP BY dept_name;

17. AVÂND

Cuvântul cheie HAVING a fost adăugat la SQL deoarece WHERE nu poate fi utilizat cu funcții agregate.

SELECTAȚI , , ... DIN A SE GRUPA CU AVÂND

Exemplu

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;

18. COMANDA PENTRU

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 , , … DE LA COMANDA PENTRU , , …ASC|DESC;

Exemplu

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;

19. ÎNTRE

BETWEEN este utilizat pentru a selecta valorile datelor dintr-un interval specific. Pot fi utilizate valori numerice și text, precum și datele.

SELECTAȚI , , … DE LA UNDE ÎNTRE ȘI ;

Exemplu

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;

20. LIKE

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:

  • % (niciunul, unul sau mai multe caractere);
  • _ (un caracter).
SELECTAȚI , , … DE LA UNDE CA ;

Exemplu

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-___”;

21. IN

Folosind IN puteți specifica mai multe valori pentru clauza WHERE:

SELECTAȚI , , … DE LA UNDE IN ( , , …);

Exemplu

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.');

22. ÎNSCRIEȚI-VĂ

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 , , … DE LA A TE ALATURA PE = ;

Exemplul 1

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;

Exemplul 2

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;

Exemplul 3

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;

23. Vedere

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.

Creare

CREATE VIEW AS SELECT , , … DE LA UNDE ;

Îndepărtarea

DROP VIEW ;

Exemplu

Să creăm o vizualizare formată din cursuri cu 3 credite:

24. Funcții agregate

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:

  • COUNT (nume_col) - returnează numărul de rânduri;
  • SUM (nume_col) - returnează suma valorilor din această coloană;
  • AVG (col_name) - returnează valoarea medie a unei anumite coloane;
  • MIN (col_name) - returnează cea mai mică valoare a unei anumite coloane;
  • MAX (nume_col) - Returnează cea mai mare valoare a unei anumite coloane.

25. Subinterogări imbricate

Subinterogările imbricate sunt interogări SQL care includ clauze SELECT , FROM și WHERE imbricate într-o altă interogare.

Exemplu

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.

1. 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.

2. Ce este SQL

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.

  • Baze de date relaționale

    Î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ă

  • Bazele SQL

    Î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

  • Componente SQL

    Î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.

  • Crearea și întreținerea unei baze de date simple

    Î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.

  • Crearea unei baze de date relaționale cu mai multe tabele

    Î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.

  • Manipularea datelor din baza de date

    Î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

  • Definirea Valorilor

    Î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.

  • Expresii complexe cu sens

    Î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.

  • „Direcționarea” către datele necesare

    Î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ă

  • Operatori Relaționali

    Î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.

  • Folosind interogări imbricate

    Î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

  • Interogări recursive

  • Securizarea bazei de date

    Î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

  • Protejarea datelor

    Î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

  • Utilizarea SQL în aplicații

    Î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.

  • ODBC și JDBC

    Î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.

  • SQL:2003 și XML

    Î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.

  • Cursore

    Î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).

    Introducere

    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.

    Cum funcționează SQL

    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 (DDL)

    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 (DML)

    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).

    Limbajul de control al cursorului (CCL)

    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.

    Cum puteți executa instrucțiuni SQL?

    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.

  • Acțiune