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. 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: exemplu: Oracle, Access, Sybase etc.). 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. externe.

SQL în Access
Sistemul de gestiune a bazelor de date ACCESS 2000 accept utilizarea limbajului de interogare SQL. SQL. Existen a tehnicii grafice QBE (Query by ExampleExampleinterogare prin exemplu) permite proiectarea facil a unor interog ri complexe, informa ia definit pe grila QBE fiind automat transformat într-o instruc iune întrSQL. 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. ie.

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 punct ³;´ întrî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; tabel.câmp; parantezele drepte încadreaz numele de câmpuri doar când acestea con in spa ii sau simboluri neacceptate de SQL; SQL;

‡ pentru a delimita parametrii dintr-o list , se utilizeaz dintr‡ ‡ ‡ ‡
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 #

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); 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 View. instruc iunile SQL specifice, respectând sintaxa corespunz toare; toare; interogarea SQL Access creat se poate lansa în execu ie în dou moduri: prin utilizarea butonului din bara Query moduri: Design sau prin op iunea Run, din meniul Query. Query.

‡

‡

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

Comanda CREATE DATABASE are urm toarea sintax : CREATE DATABASE nume_baza_de_date fiind utilizat pentru crearea unei noi baze de date. Access SQL date. nu accept o astfel de comand .

Comanda DROP DATABASE cu sintaxa: sintaxa: DROP DATABASE nume_baza_de_date este utilizat pentru tergerea bazei de date. Access SQL nu accept o date. astfel de comand .

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

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]]; [ASC|DESC]]; Domeniu permite stabilirea modalit ii de manipulare a înregistr rilor din baza de date i poate fi: fi: ALL : permite includerea tuturor înregistr rilor ce îndeplinesc condi iile impuse. 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; multiple; DISTINCTROW are în vedere înregistr rile duplicate în ansamblul lor, nu numai pe cele care au câmpuri duplicate. duplicate.

Lista_selectie cuprinde toate câmpurile care vor ap rea în tabela cu rezultatele interog rii. rii. Clauza FROM specific numele tabelei sau tabelelor care vor forma suportul interog rii. 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 descris. i nu opereaz cu func ii totalizatoare. În cadrul condi iei din totalizatoare. clauza WHERE pot fi utiliza i operatorii : AND, OR, NOT, IN, BETWEEN, LIKE. 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). (DESC).

În cadrul interog rilor de selec ie simple SQL ACCESS se pot folosi i func ii totalizatoare. Cele mai totalizatoare. importante func ii din aceast categorie sunt: 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; dintr- câmp; opereaz numai cu valori numerice, AVG : calculeaz valoarea medie a unui câmp numeric, MAX : permite determinarea celei mai mari valori dintrdintr-un câmp, nu opereaz în cadrul clauzei WHERE; 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. WHERE.

Pentru definirea interog rilor de selec ie agregate se utilizeaz urm toarea sintax a instruc iunii SELECT: 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 alias-uri. reprezint un pseudonim (nume) asociat unui câmp care este argument al func iei agregat, astfel : câmp AS alias. alias. Clauza GROUP BY precizeaz câmpul sau câmpurile pe baza c rora se va efectua gruparea înregistr rilor. rilor. Clauza HAVING se refer la criteriul care va fi aplicat câmpuluicâmpului-definit ca argument al func iei agregat. Altfel spus, când agregat. se folose te clauza GROUP BY i este necesar i o condi ie, se va utiliza clauza HAVING. HAVING.

Asocieri
Limbajul SQL ofer posibilitatea de a grupa i folosi date din tabele diferite. 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; 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. egal.

Sintaxa general pentru jonc iunile echivalente i neechivalente este: este:
SELECT [domeniu] lista_selectie FROM nume_tabela1, nume_tabela2 nume_tabela1 nume_tabela2 WHERE criteriul_asociere [ORDER BY câmpuri_criteriu [ASC|DESC]]; [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. in. Forma general de descriere a unui astfel de câmp va fi urm toarea: toarea: nume_tabel .nume_câmp. nume_câmp.

O alt abordare prive te jonc iunile ca fiind: interne fiind: (INNER JOIN) i externe (OUTER JOIN). 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: tipuri: de stânga (LEFT OUTER JOIN) i de dreapta (RIGHT OUTER JOIN), fiind destul de pu in utilizate. utilizate.

Jonc iunile au urm toarea sintax : SELECT [domeniu] lista_selectie FROM nume_tab1 {INNER|LEFT OUTER|RIGHT OUTER} JOIN nume_tabe2 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, OUTER se refera la tipurile de jonc iuni; JOIN specific tabela care va fi asociat (nume_tab2, nume_tab3...) tabelei precizat în clauza FROM; ON criteriul de asociere arat rela ia dintre câmpurile pe care se bazeaz jonc iunea.

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. 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];

Instruc iunile care genereaz interog ri UNION se caracterizeaz prin urm toarele restric ii: 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; i; ‡ este permis doar o dat utilizarea clauzei ORDER BY, dup ultima instruc iune UNION SELECT; SELECT; ‡ secven a de nume din fiecare list de câmpuri trebuie s corespund unor intr ri identice. identice.

Comenzi pentru manipularea datelor
INSERT Sintaxa comenzii prezint dou forme: INSERT«VALUES i INSERT« SELECT. SELECT. INSERT INTO tab (câmp1, câmp2...) VALUES (valoare1,valoare2...);
Trebuie s se respecte urm toarele reguli: 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. acesta.

INSERT INTO nume_tab1 (câmp1, câmp2...) SELECT [domeniu] [lista selectie] from nume_tab2 [WHERE criteriu]; Reguli suplimentare: suplimentare: ‡ fraza SELECT nu poate extrage înregistr ri din tabela destina ie; 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. SELECT.

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]; 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. existente.

Sign up to vote on this title
UsefulNot useful