1 / 22

LIMBAJUL SQL

LIMBAJUL SQL. Introducere. Limbajul SQL (Structured Query Language) reprezintă, în prezent, unul dintre cele mai puternice limbaje structurate pentru interogarea bazelor de date relaţionale.

Télécharger la présentation

LIMBAJUL SQL

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. LIMBAJUL SQL

  2. Introducere Limbajul SQL (Structured Query Language) reprezintă, în prezent, unul dintre cele mai puternice limbaje structurate pentru interogarea bazelor de date relaţionale. Există un anumit grad de standardizare a limbajului SQL, mai multe sisteme de gestiune a bazelor de date recunoscând principalele instrucţiuni ale acestuia (de exemplu: Oracle, Access, Sybase etc.). Pe plan mondial, standardul în domeniu este considerat American National Standards Institute (ANSI) SQL care are în vedere atât aspectele de definire, interogare, manipulare a datelor, procesare a tranzacţiilor, cât şi caracteristicile complexe privind integritatea informaţiilor, cursoarele derulante sau joncţiunile externe.

  3. SQL în Access Sistemul de gestiune a bazelor de date ACCESS 2000 acceptă utilizarea limbajului de interogare SQL. Existenţa tehnicii grafice QBE (Query by Example-interogare prin exemplu) permite proiectarea facilă a unor interogări complexe, informaţia definită pe grila QBE fiind automat transformată într-o instrucţiune SQL. Dialectul ACCESS conţine unele particularităţi în raport de standardul ANSI SQL, fiind conceput mai mult pentru crearea interogărilor de selecţie.

  4. Reguli de sintaxă Pentru a putea scrie corect o instructiune SQL în Access trebuie să se respecte următoarele reguli de sintaxă: • orice comandă se va încheia cu “;” • într-o interogare unde se folosesc câmpuri din mai multe tabele, pentru a separa numele tabelului de numele câmpului, se va utiliza “.” după modelul tabel.câmp; • parantezele drepte încadrează numele de câmpuri doar când acestea conţin spaţii sau simboluri neacceptate de SQL;

  5. pentru a delimita parametrii dintr-o listă, se utilizează virgulele • valorile de tip şir se marchează prin apostrof sau ghilimele • inegalităţile din cadrul clauzelor se vor specifica prin “<>” • simbolurile ? şi * sunt folosite pentru a desemna unul sau mai multe caractere de înlocuire • pentru a evidenţia valorile de tip data / timp se apelează la caracterul #

  6. Etapele creării unei interogări • din fereastra Database (Baza de date) se va selecta butonul Queries (Interogări) ; • pentru a crea interogarea SQL dorită va fi necesară, fie activarea butonului New (Nou), fie alegerea opţiunii Create query in Design view (Creare interogare în vizualizare proiect); • pentru a scrie interogarea SQL Access este necesar ca din meniul View utilizatorul să opteze pentru modul de vizualizare SQL View. În fereastra care apare se vor tasta instrucţiunile SQL specifice, respectând sintaxa corespunzătoare; • interogarea SQL Access creată se poate lansa în execuţie în două moduri: prin utilizarea butonului din bara Query Design sau prin opţiunea Run, din meniul Query.

  7. Comenzile pentru definirea datelor (LDD) Principalele comenzi SQL pentru definire a datelor sunt următoarele: CREATE DATABASE DROP DATABASE CREATE TABLE ALTER TABLE DROP TABLE

  8. Comanda CREATE DATABASE are următoarea sintaxă: CREATE DATABASE nume_baza_de_date fiind utilizată pentru crearea unei noi baze de date. Access SQL nu acceptă o astfel de comandă. Comanda DROP DATABASE cu sintaxa: DROP DATABASE nume_baza_de_date este utilizată pentru ştergerea bazei de date. Access SQL nu acceptă o astfel de comandă.

  9. Pentru crearea unei tabele se utilizează comanda: CREATE TABLE nume_tabela (câmp1 tip_data [NOT NULL], câmp2 tip_data [NOT NULL], câmp3 tip_data [NOT NULL]...); Printre cele mai importante tipuri de date folosite amintim: Character, Memo, Number, Integer, Decimal, Logical, Date, OLE Object etc. Pentru modificarea structurii unui tabel se utilizează comanda ALTER TABLE cu sintaxă : ALTER TABLE nume_tabela ADD nume_câmp tip_data; Comanda DROP TABLE nume_tabela este folosită pentru a şterge complet o tabelă dintr-o baza de date (structura şi valorile asociate).

  10. Comenzi pentru selecţia datelor Pentru definirea interogărilor de selecţie simple se utilizează următoarea sintaxă a instrucţiunii SELECT: SELECT [domeniu] lista_selectie FROM nume_tabela1, nume_tabela2,... [WHERE criteriul_de_selectie] [ORDER BY câmpuri_criteriu [ASC|DESC]]; Domeniu permite stabilirea modalităţii de manipulare a înregistrărilor din baza de date şi poate fi: • ALL : permite includerea tuturor înregistrărilor ce îndeplinesc condiţiile impuse. • DISTINCT : are ca efect eliminarea înregistrărilor care conţin duplicate în câmpurile selectate astfel, se va afişa doar o apariţie a datei multiple; • DISTINCTROW are în vedere înregistrările duplicate în ansamblul lor, nu numai pe cele care au câmpuri duplicate.

  11. Lista_selectiecuprinde toate câmpurile care vor apărea în tabela cu rezultatele interogării. Clauza FROM specifică numele tabelei sau tabelelor care vor forma suportul interogării. Clauza WHERE face interogările mai selective, specificând faptul că vor fi afişate numai înregistrările care îndeplinesc criteriul descris. Clauza WHERE este opţională şi nu operează cu funcţii totalizatoare. În cadrul condiţiei din clauza WHERE pot fi utilizaţi operatorii : AND, OR, NOT, IN, BETWEEN, LIKE. Clauza ORDER BY utilizată atunci când se doreşte ca rezultatele interogării să fie ordonate în mod crescător (ASC) sau descrescător (DESC).

  12. În cadrul interogărilor de selecţie simple SQL ACCESS se pot folosi şi funcţii totalizatoare. Cele mai importante funcţii din această categorie sunt: COUNT : returnează numărul de înregistrări care respectă condiţiile stabilite prin clauza WHERE, SUM : redă suma tuturor valorilor dintr-un câmp; operează numai cu valori numerice, AVG : calculează valoarea medie a unui câmp numeric, MAX : permite determinarea celei mai mari valori dintr-un câmp,nu operează în cadrul clauzei WHERE; MIN : duce la obţinerea celei mai mici valori a unui câmp, rămâne valabilă şi aici restricţia privind clauza WHERE.

  13. Pentru definirea interogărilor de selecţie agregate se utilizează următoarea sintaxă a instrucţiunii SELECT: SELECT [domeniu] f_agreg(nume_camp) as alias [,lista_selectie] FROM nume_tabela1, nume_tabela2,... GROUP BY camp_grupare [HAVING criteriu_grupare] [ORDER BY campuri_criteriu [ASC|DESC]]; În cadrul listei de selecţie se pot defini şi alias-uri. Acestea reprezintă un pseudonim (nume) asociat unui câmp care este argument al funcţiei agregat, astfel : câmp AS alias. Clauza GROUP BY precizează câmpul sau câmpurile pe baza cărora se va efectua gruparea înregistrărilor. Clauza HAVING se referă la criteriul care va fi aplicat câmpului-definit ca argument al funcţiei agregat. Altfel spus, când se foloseşte clauza GROUP BY şi este necesară şi o condiţie, se va utiliza clauza HAVING.

  14. Asocieri Limbajul SQL oferă posibilitatea de a grupa şi folosi date din tabele diferite. Joncţiunile se pot clasifica în: - joncţiuni CROSS mai puţin utilizată, cu rol în ilustrarea elementelor specifice proprietăţilor combinatorii ale asocierilor; - joncţiuni de ECHIVALENŢĂ, cea mai folosită, presupune folosirea clauzei WHERE asociată cu o egalitate dorită; - joncţiuni de NEECHIVALENŢĂ, care face apel în clauza WHERE la oricare operator de comparare în afară de semnul egal.

  15. Sintaxa generală pentru joncţiunile echivalente şi neechivalente este: SELECT [domeniu] lista_selectie FROM nume_tabela1, nume_tabela2 WHERE criteriul_asociere [ORDER BY câmpuri_criteriu [ASC|DESC]]; Deoarece în aceste instrucţiunile SQL se utilizează câmpuri ce fac parte din tabele diferite, este necesară întotdeauna specificarea tabelei de care aparţin. Forma generală de descriere a unui astfel de câmp va fi următoarea: nume_tabelă.nume_câmp.

  16. O altă abordare priveşte joncţiunile ca fiind: interne (INNER JOIN) şi externe (OUTER JOIN). Joncţiunile tip INNER JOIN determină o asociere a înregistrărilor din tabele, astfel încât să rezulte un număr total de înregistrări egal cu produsul numărului de înregistrări din fiecare tabelă. Joncţiunile externe (OUTER) sunt de două tipuri: de stânga (LEFT OUTER JOIN) şi de dreapta (RIGHT OUTER JOIN), fiind destul de puţin utilizate.

  17. Joncţiunile au următoarea sintaxă: SELECT [domeniu] lista_selectie FROM nume_tab1 {INNER|LEFT OUTER|RIGHT OUTER} JOIN nume_tab2 ON criteriul_de_asociere [{INNER|LEFT OUTER|RIGHT OUTER} JOIN nume_tab3 ON criteriul_de_asociere]... [WHERE criteriul_de_selectie] [ORDER BY câmpuri_criteriu [ASC|DESC]]; • INNER, LEFT OUTER, RIGHT, OUTERse refera latipurile de joncţiuni; • JOINspecifică tabela care va fi asociată (nume_tab2, nume_tab3...) tabelei precizată în clauza FROM; • ONcriteriul de asocierearată relaţia dintre câmpurile pe care se bazează joncţiunea.

  18. Combinările Când utilizatorul doreşte să vadă rezultatele mai multor interogări SELECT în acelaşi timp, prin combinarea ieşirilor lor, poate utiliza facilitatea UNION a limbajului de interogare SQL. Sintaxă generală: SELECT lista_câmpuri FROM tabela1 UNION SELECT lista_campuri FROM tabela2 [GROUP BY camp_de_grupare] [HAVING criteriul_de_agregare] [UNION…] [ORDER BY camp_criteriu_de_sortare];

  19. Instrucţiunile care generează interogări UNION se caracterizează prin următoarele restricţii: • numărul de câmpuri din lista de câmpuri asociată fiecărei instrucţiuni SELECT şi UNION SELECT trebuie să fie acelaşi; • este permisă doar o dată utilizarea clauzei ORDER BY, după ultima instrucţiune UNION SELECT; • secvenţa de nume din fiecare listă de câmpuri trebuie să corespundă unor intrări identice.

  20. Comenzi pentru manipularea datelor INSERT Sintaxa comenzii prezintă două forme: INSERT…VALUES şi INSERT… SELECT. INSERT INTO tab (câmp1, câmp2...) VALUES (valoare1,valoare2...); Trebuie să se respecte următoarele reguli: • valorile menţionate în clauza VALUES vor avea acelaşi tip cu câmpurile specificate în clauza INTO, • mărimea valorii corespunzătoare fiecărui câmp va fi mai mica decât dimensiunea câmpului, • daca un câmp are definiţia NOT NULL, va fi obligatorie introducerea unei valori pentru acesta.

  21. INSERT INTO nume_tab1 (câmp1, câmp2...) SELECT [domeniu] [lista selectie] from nume_tab2 [WHERE criteriu]; Reguli suplimentare: • fraza SELECT nu poate extrage înregistrări din tabela destinaţie; • numărul şi natura câmpurilor menţionate în clauza INTO trebuie să fie aceleaşi cu numărul şi natura câmpurilor returnate de instrucţiunea SELECT.

  22. Comanda DELETE are următoarea sintaxă: DELETE FROM tabela [WHERE criteriu]; Şterge parţial sau total înregistrările din tabele. Comanda UPDATE are următoarea sintaxă: UPDATE tabela SET câmp1 = valoare1 [,câmp2 = valoare2]... [WHERE criteriul_de_actualizare]; Aceasta are atât scopul de a insera noi înregistrări, cât si de a modifica valorile câmpurilor din înregistrările existente.

More Related