SQL pentru simpli muritori. Interogări SQL pentru simpli muritori Michael J
Citeste si
SQL FOR MERE MORTALS este o introducere completă a unui limbaj de interogare structurat, scris special pentru începători. Dacă nu aveți experiență în gestionarea bazelor de date, această carte vă va învăța cum să lucrați cu SQL ușor și fluent, folosind interogări simple și operații complexe. Pentru a stăpâni SQL:
- Înțelegeți conceptele asociate cu gestionarea bazelor de date cu o scurtă și simplă introducere în bazele de date relaționale.
- Urmați aceste instrucțiuni pentru a utiliza comenzile SQL de bază pentru a găsi și manipula informații în tabelele de date. Învățați să selectați, să rezumați și să gestionați datele cu pricepere.
- Lucrați eficient cu tabele de date compuse aplicând tehnici avansate de interogare la mai mult de un tabel simultan, construind interogări complexeși subinterogări.
- Creați noi tabele de date pentru tranzacționarea aplicațiilor de afaceri. Aflați principiile importante ale proiectării eficiente a bazelor de date și tehnici pentru asigurarea integrității și securității datelor.
- Învață să folosești SQL cu limbaje de programare folosind un capitol special pentru programatori.
SQL FOR MERE MORTALS este un ghid esențial pentru orice implementare a limbajului interogări structurate, care include un ghid rapid de referință pentru SQL standard și o descriere a proprietăților comune ale SQL non-standard.
1. Introducere în bazele de date relaționale
2. Introducere în SQL
3. Utilizarea SQL pentru a prelua date din tabele
4. Utilizarea operatorilor relaționali și booleeni pentru a crea predicate mai complexe
5. Utilizarea operatorilor speciali în „condiții”
6. Rezumarea datelor folosind funcții de agregare
7. Formatarea rezultatelor interogării
8. Utilizarea mai multor tabele într-o singură interogare
9. Operație de îmbinare, ai cărei operanzi sunt reprezentați printr-un singur tabel
10. Interogări de imbricare
11. Subinterogări aferente
12. Utilizarea operatorului EXISTS
13. Utilizarea operatorilor ANY, ALL și SOME
14. Folosirea clauzei UNION
15. Introducerea, ștergerea și modificarea valorilor câmpului
16. Utilizarea subinterogărilor cu comenzi de actualizare
17. Crearea tabelelor
18. Restricții asupra setului de valori de date valide
19. Mențineți integritatea datelor
20. Introducere în Vizualizări
21. Modificarea valorilor folosind vizualizări
22. Determinarea drepturilor de acces la date
23. Aspecte globale ale SQL
24. Cum se menține ordinea în baza de date date SQL
25. Utilizarea SQL cu alte limbaje de programare (SQL încorporat)
Aplicații
A. Răspunsuri la exerciții
B. Tipuri de date SQL
C. Câteva abateri comune de la standardul SQL
D. Ajutor pentru sintaxă și comandă
E. Tabele folosite în exemple
F. SQL Astăzi
Introducere în bazele de date relaționale
... Vom folosi, de asemenea, ambii termeni ca sinonime atunci când discutăm despre SQL. Sunteți deja familiarizat cu tabelele simple. Cu toată concizia și simplitatea lor, ele sunt destul de potrivite pentru a demonstra cele mai importante caracteristici ale limbii, așa cum veți vedea mai târziu. Uneori vom introduce alte tabele sau vom analiza alte date într-unul dintre aceste tabele pentru a arăta unele caracteristici suplimentare aplicatiile lor. Acum suntem gata să pătrundem direct în SQL. Următorul capitol, la
la care va trebui să revii din când în când, oferă o idee generală despre limbaj și te orientează în materialul prezentat în carte.
Introducere în SQL
Acest capitol acoperă număr mare informații de bază care oferă o înțelegere generală a SQL. Ați învățat cum este structurat, cum este utilizat, cum exprimă datele, cum și de către cine este definit (și tensiunile care apar) și unele dintre convențiile și terminologia folosită pentru a o descrie. Următorul capitol explică în detaliu formarea și funcționarea comenzilor. Veți afla despre o comandă care vă permite să preluați informații din tabele și este una dintre cele mai frecvent utilizate comenzi în SQL. Veți putea prelua singur anumite informații din baza de date.
Aspecte globale ale SQL
- Sinonime (cum se creează nume noi pentru obiectele de date)
- Spațiu baze de date (dbspace) (cum se particționează spațiul disponibil într-o bază de date)
- Procesarea tranzacțiilor (cum să salvezi sau să renunți la modificările din baza de date)
- Controlul concurenței (cum SQL vă permite să împiedicați comenzile să interfereze între ele)
Sinonimele sunt obiecte, au nume și (uneori) proprietari, dar nu există independent de tabelul al cărui nume îl înlocuiesc. Acestea pot fi partajate și, prin urmare, accesibile tuturor celor care au acces la obiect sau pot fi deținute numai de un anumit utilizator. Dbspaces sunt subsecțiuni ale bazei de date alocate utilizatorilor. Tabelele înrudite care suferă frecvent o operație de îmbinare sunt cel mai bine stocate în același spațiu de bază de date. COMMIT și ROLLBACK sunt comenzi folosite pentru a salva ca grup toate modificările aduse bazei de date de la comanda anterioară COMMIT sau ROLLBACK sau de la începutul unei sesiuni, sau pentru a le abandona. Controlul concurenței determină măsura în care comenzile simultane se afectează reciproc. Aici apar diferențele operaționale în modul în care funcționează bazele de date și cum sunt izolate comenzile.
Cum să mențineți ordinea într-o bază de date SQL
Deci, sistemele SQL folosesc un set de tabele numit directorul de sistem al structurii bazei de date. Aceste tabele pot fi interogate, dar nu pot fi actualizate. De asemenea, puteți adăuga (sau șterge) coloane de comentarii în tabelele SYSTEMCATALOG și SYSTEMCOLUMNS. Crearea vizualizărilor pe aceste tabele este o modalitate excelentă de a defini exact ce informații sunt autorizați să acceseze utilizatorii. Aceasta încheie discuția noastră despre SQL în modul interactiv. Următorul capitol va aborda probleme aplicații SQL direct în programe scrise în limbaje de programare; Această utilizare vă permite să profitați de interacțiunea programului cu baza de date.
Utilizarea SQL cu alte limbaje de programare (embedded SQL)
Comenzile SQL sunt incluse în limbaje de programare procedurală pentru a combina punctele forte ale celor două abordări. Implementarea acestei caracteristici necesită unele extensii SQL. Comenzile Embedded SQL sunt traduse de un program numit precompilator (preprocesor) pentru a produce un program care poate fi înțeles de un compilator de limbaj de nivel înalt. Comenzile Embedded SQL sunt înlocuite cu apeluri la rutine care sunt create folosind preprocesorul încorporat; aceste rutine se numesc module de acces. Folosind această abordare, ANSI acceptă SQL încorporat pentru limbi Programare Pascal, FORTRAN, COBOL, PL/1. Alte limbi sunt, de asemenea, folosite de dezvoltatori. Cel mai important dintre acestea este C. Când descrieți SQL încorporat, trebuie acordată o atenție deosebită următoarelor:
- Toate comenzile SQL încorporate încep și se termină cu EXEC SQL, în funcție de limbajul de nivel înalt folosit.
- Toate variabilele de limbaj de nivel înalt utilizate în comenzile SQL trebuie incluse în secțiunea declarații SQL înainte de a fi utilizate.
- Dacă în comenzile SQL sunt folosite variabile de limbaj de nivel înalt, numele acestora trebuie să fie precedate de două puncte.
- Ieșirea interogărilor poate fi stocată direct în variabile de limbaj de nivel înalt folosind INTO dacă și numai dacă interogarea selectează un singur rând.
- Cursoarele pot fi folosite pentru a stoca rezultatul interogării și pentru a le accesa rând pe rând. Cursoarele sunt declarate (împreună cu o definiție a interogării a cărei ieșire o conține cursorul), deschise (care corespunde execuției interogării) și închise (care corespunde cu eliminarea ieșirii de pe cursor, rupând legătura dintre ieșire și cursorul). În timp ce cursorul este deschis, puteți utiliza comanda FETCH pentru a accesa rezultatul interogării: un rând pentru fiecare execuție a comenzii FETCH.
- Cursoarele pot fi actualizate sau numai pentru citire. Pentru a putea fi actualizat, un cursor trebuie să îndeplinească aceleași criterii ca și o vizualizare. El nu ar trebui să folosească clauze ORDINE VU și UNION, cărora li se interzice utilizarea în reprezentare. Un cursor care nu este actualizat este un cursor numai pentru citire.
- Dacă cursorul este actualizabil, poate fi folosit pentru a manipula rândurile care sunt utilizate de comenzile SQL încorporate UPDATE și DELETE din clauza WHERE CURRENT OF. DELETE sau UPDATE trebuie să aparțină tabelului accesat prin cursorul de interogare.
- SQLCODE poate fi declarat ca o variabilă numerică pentru fiecare program care utilizează SQL încorporat. Valorile acestei variabile sunt setate automat după ce fiecare comandă SQL este executată.
- Dacă comanda SQL rulează normal, dar nu produce rezultate sau nu face modificările așteptate în baza de date, SQLCODE este setat la 100. Dacă comanda eșuează, SQLCODE este setat la o valoare negativă care descrie cauza erorii, în funcție de sistemul SQL specific. În caz contrar, SQLCODE este zero.
- Clauza WHENEVER poate fi folosită pentru a determina ce acțiune trebuie întreprinsă dacă SQLCODE este 100 (NOT FOUND) sau negativ (SQLERROR). Această acțiune constă în a merge la un anumit punct al programului (GOTO<метка>) sau pentru a efectua o „acțiune goală” (CONTINUA, echivalent cu conceptul de „a nu face nimic”). Valoarea implicită este „acțiune goală”.
- Numai variabilele numerice pot fi folosite ca indicatori. Variabilele indicator urmează alte nume de variabile în comanda SQL fără caractere de separare, cu excepția cuvântului INDICATOR.
- De obicei, valoarea unei variabile indicator este O. Dacă o comandă SQL încearcă să plaseze o valoare NULL într-o variabilă de limbaj de nivel înalt care utilizează acest indicator, aceasta ia o valoare negativă. Această proprietate poate fi folosită pentru protecția împotriva erorilor și ca flag pentru a marca valorile NULL în SQL care vor fi interpretate special în programul principal.
- Variabilele indicatoare pot fi utilizate pentru a insera valori NULL în comenzile SQL INSERT sau UPDATE. Ele iau valori pozitive atunci când apare o situație de trunchiere a șirurilor.