Sunteți pe pagina 1din 4

Limbajul SQL

Este un limbaj standardizat pentru interogarea bazelor de date relationale => este suportat de
majoritatea bazelor de date relationale importante (Oracle, Informix, Sybase, SQL
Server, Access, FOX PRO).

Caracteristici:
 Nu este „case sensitive” - Frazele SQL pot fi scrise cu litere mari sau cu litere mici;
 Frazele SQL pot fi scrise pe un singur rand sau pe mai multe; Totusi, din motive de
„frumusete”, se prefera ca fiecare clauza sa fie pe un rand separat;
 Orice fraza SQL se va termina cu „ ; ” – are rolul de „terminator”;

 Sirurile de caractere vor fi separate prin „ , ” (virgula);


 Datele calendaristice vor fi incadrate intre „#” si vor fi separate prin „ / ”;
 Numerele vor fi scrise ca atare;

Sintaxa limbajului SQL:


SELECT [domeniu] <lista de campuri>
FROM <lista de tabele>
WHERE <lista de conditii>
GROUP BY <lista de campuri>
HAVING <lista de conditii>
ORDER BY <lista de campuri> [DESC | ASC] ;

Functii pt. date calendaristice:

Date() – returneaza data curenta; Sunt singurele functii care nu au argumente.


Now() - returneaza data si ora curente; Chiar si asa, parantezele rotunde sunt obligatorii.
Year( ... ) – extrage anul din data trecuta intre paranteze
Month( ... ) – extrage numarul lunii din data trecuta intre paranteze
Day( ... ) – extrage numarul zilei din data trecuta intre paranteze
Functii agregat:
Sum( ... ) – returneaza suma argumentelor trecute in paranteza;
Min( ... ) – returneaza valoarea minima a argumentelor trecute in paranteza;
Max( ... ) – returneaza valoarea maxima a argumentelor trecute in paranteza;
Avg( ... ) – returneaza valoarea medie a argumentelor trecute in paranteza;
Count( ... ) – returneaza numarul argumentelor (inregistrarilor) trecute in paranteza;

Sintaxa INNER JOIN

a) Pentru 2 tabele:

TABELA1 INNER JOIN TABELA2 ON Camp_Legatura1=Camp_Legatura2


b) P
e
ntru 3 (TABELA1 INNER JOIN TABELA2 ON Camp_Legatura1=Camp_Legatura2)
tabele:
INNER JOIN Tabela3 ON Camp_Legatura2=Camp_Legatura3

Interogări acţiune

1. Make Table Query

SELECT [domeniu] <lista de campuri>


INTO <Nume tabela noua>
FROM <lista de tabele>
WHERE <lista de conditii>
GROUP BY <lista de campuri>
HAVING <lista de conditii>
ORDER BY <lista de campuri> [DESC | ASC] ;
2. Append Query:

INSERT INTO <Nume tabela existenta>


SELECT [domeniu] <lista de campuri>
FROM <lista de tabele>
WHERE <lista de conditii>
GROUP BY <lista de campuri>
HAVING <lista de conditii>
ORDER BY <lista de campuri> [DESC | ASC] ;

3. Update Query:

UPDATE <Nume tabela>


SET <Nume camp1> = <Expr1>, <Nume camp2> =
<Expr2>…

4. Delete Query:

DELETE *
FROM <Nume tabela>
WHERE <lista de conditii>;

Interogari UNION

SELECT [domeniu] <lista de campuri>


FROM <lista de tabele>
WHERE <lista de conditii>
GROUP BY <lista de campuri>
HAVING <lista de conditii>
ORDER BY <lista de campuri> [DESC | ASC]
UNION
SELECT [domeniu] <lista de campuri>
FROM <lista de tabele>
WHERE <lista de conditii>
GROUP BY <lista de campuri>
HAVING <lista de conditii>
ORDER BY <lista de campuri> [DESC | ASC]
[UNION …]
Interogari cu SubInterogari

SELECT [domeniu] <lista de campuri>


FROM <lista de tabele>
WHERE <camp1> <operator> (SELECT [domeniu] <lista de campuri>
FROM <lista de tabele>
WHERE <lista de conditii>
GROUP BY <lista de campuri>
HAVING <lista de conditii>
ORDER BY <lista de campuri> [DESC | ASC] )

GROUP BY <lista de campuri>


HAVING <lista de conditii>
ORDER BY <lista de campuri> [DESC | ASC]

<operator>  =,<, >, >=, <=, IN, Not IN