Baze de date
Descrierea limbajului SQLDescrierea limbajului SQLINSTRUCTIUNEA SELECT SELECT este cea mai folosita instructiune, corespunzand interogarii Selection din Access. Permite extragerea campurilor unui ansamblu de inregistrari ce corespund unor criterii.
SELECT [ALL |DISTINCT <lista de campuri> FROM <lista de tabele> [WHERE ] [GROUP BY] [HAVING] [ORDER BY]
CLAUZA FROM Aceasta specifica tabelele sau interogarile din care sunt extrase datele. Sintaxa: FROM table 1 [LEFT|RIGHT|INNER JOIN table2 ON TABLE1.camp1 <operator de comparare> TABLE2.camp2
Select Clients.Cli_societate, Commandes.Cde_DateCde From Clients INNER JOIN Commandes ON Clients.Cli_CodeCli =Commandes.Cde_CodeCli Lista de comenzi lansate de societate. In primul exemplu, sunt selectati doar clientii care au facut deja comenzi. Select Clients.Cli_societate, Commandes.Cde_DateCde From Clients LEFT JOIN Commandes ON Clients.Cli_CodeCli =Commandes.Cde_CodeCli In al doilea exemplu, sunt selectati toti clientii. CLAUZA WHERE Permite filtrarea inregistrarilor dupa anumite criterii. Conditiile clauzei WHERE se exprima cu ajutorul operatorilor urmatori: operatori de comparare: <, >, < =, > =, Is [Not] Null, [Not] In, Between. operatori logici: And, Or, Not. Exemplu: SELECT * From Produse WHERE [Prod_Pret] = 500000
SELECT * From Produse WHERE [Prod_Pret] BETWEEN 100000 AND 200000 SELECT * FROM Clienti WHERE [Cli_plata] In (`France, `Italia, `Spania) CLAUZA GROUP BY Clauza GROUP BY corespunde „Totalului” interogarilor Access (numite Regrupari in versiunile anterioare). Permite regruparea datelor intr-unul sau mai multe campuri. In principal, clauza este folosita pentru executarea functiilor de agregare SQL, ca si Sum (suma), Count (calcul), Avg (medie).
Aceasta interogare returneaza numarul comenzilor lansate de client. SELECT Clienti.Cli_Societate, Count(Comenzi.Cde_DateCde AS NbComenzi FROM Clienti LEFT JOIN Comenzi ON Clienti.Cli_CodeCli = Comenzi.Cde_CodeCli GROUP BY Clienti.Cli_Societate Aceasta interogare returneaza totalul fiecarei comenzi. SELECT Comenzi.Cde_NumCde, Sum([Cde_Pret]*[Cde_Buc] AS TotalCde FROM Comenzi INNER JOIN [Detalii Comenzi] ON Comenzi.Cde_NumCde = [Detalii Comenzi].Cde_NumCde GROUP BY Comenzi.Cde_NumCde CLAUZA HAVING Specifica inregistrarile regrupate ce trebuie afisate intr-o instructiune SELECT dotata cu o clauza GROUP BY. Odata ce regruparea este efectuata se afiseaza lista de campuri a clauzei GROUP BY si sunt selectate doar inregistrarile care respecta conditia specificata in clauza HAVING.
Aceasta interogare extrage comenzile ale caror total este mai mare de SELECT Comenzi.Cde_NumCde, Sum([Cde_Pret]*[Cde_Buc] AS TotalCde, Commandes.Cde_DateCde FROM Comenzi INNER JOIN [Detalii Comenzi] ON Comenzi.Cde_NumCde = [Detalii Comenzi].Cde_NumCde GROUP BY Comenzi.Cde_NumCde, Comenzi.Cde_DateCde HAVING (Sum(Cde_Pret*Cde_Buc)> 2 000 000) CLAUZA ORDER BY Aceasta clauza determina sortarea (aranjarea in ordine crescatoare sau descrescatoare), inregistrarile rezulta dintr-o interogare in functie de campul/campurile specificat(e). Sintaxa: [ORDER BY camp1 [ASC|DESC][, camp2 [ASC|DESC]][,. . . ]]
SELECT Clienti.Cli_Soc, Count(Comenzi.Cde_DateCde) AS NbComenzi FROM Clienti LEFT JOIN Comenzi ON Clienti.Cli_CodeCli =Comenzi.Cde_CodeCli GROUP BY Clienti.Cli_Soc ORDER BY Count (Comenzi.Cde_DateCde) DESC Instructiunea UPDATE Corespunde unei interogari de actualizare care modifica valorile campurilor intr-un tabel specificat, pentru inregistrarile ce corespund criteriului dat (facultativ).
Observatie: Daca nu se specifica nici o clauza WHERE, toate inregistrarile sunt actualizate.
Aceasta interogare modifica codul tarii din toate inregistrarile tabelului Clienti. UPDATE Clients SET Clients.Cli_Pays = „RO” Aceasta interogare modifica in tabelul Clienti codul de tara al inregistrarilor clientilor al caror oras este „Timisoara”. UPDATE Clients SET Clients.Cli_Pays = „RO” Where Clienti.Cli_oras =”Timisoara INSTRUCTIUNEA DELETE Corespunde unei interogari DELETE ce sterge inregistrarile din tabelul mentionat in clauza FROM, dupa criteriile date (facultativ). Sintaxa: DELETE FROM tabel [Where criteriu] Observatie: Daca nu este specificata nici o caluza WHERE, toate inregistrarile sunt sterse. Exemplu: Aceasta interogare sterge comezile de dinainte de 1997. DELETE Comenzi.Cde_DateCde FROM Comenzi WHERE (( Comenzi.Cde_DateCde) < #1/1/1997#) INSTRUCTIUNEA INSERT INTO Instructiunea SQL INSERT INTO corespunde unei interogari Add care adauga inregistrari intr-un tabel. Sintaxa Interogare Add de adaugare a unei singure inregistrari INSERT INTO <TabelDestinatie>[( camp1 [, camp2 VALUES ( valoare1 [, valoare2 [, ]]) Observatie: Trebuie sa existe tot atatea valori cate coloane de valorificat, de acelasi tip si in aceeasi ordine. Interogare Add cu una sau mai multe inregistrari: INSERT INTO <TabelDestinatie>[( camp1 [, camp2 SELECT [<TabelSursa>.]camp1 [, camp2 [, FROM <lista de tabele> Observatie: Instructiunea SELECT trebuie sa returneze atatea valori in aceeasi ordine si de acelasi tip catre coloanele de valorificat (campul instructiunii INSERT). Exemple: Adaugarea unei inregistrari in tabelul Clienti INSERT INTO Clienti (Cli_CodCli, Cli_societate, Cli_oras, Cli_plata) VALUES( `Mirton`, `Editura Mirton`, `Timisoara~, `RO`) Adaugarea unei inregistrari din tabelul Prospecte in tabelul Clienti. INSERT INTO Clienti SELECT Prospecte.* FROM Prospecte ALTE INSTRUCTIUNI Interogare
Crearea si gestiunea de tabele
Crearea si gestiunea utilizatorilor si a grupurilor
|