Baze de Date Exemple Interogari SQL

9
EXEMPLE DE INTEROGARI IN SQL COMPUNERE CU WHERE - 2 tabele. Sa se afiseze informatii privind facturile emise inclusiv valoarea facturata pe fiecare CODISBN. SELECT FACTURI.NRFACT, FACTURI.DATAFACT, FACTURI.CODFISCAL, [CONTINUT FACTURA].CODISBN, [CONTINUT FACTURA].CANTITATE, [CONTINUT FACTURA].PRETF, [CONTINUT FACTURA].CANTITATE *[CONTINUT FACTURA].PRETF AS VALOARE FROM FACTURI, [CONTINUT FACTURA] WHERE FACTURI.NRFACT=[CONTINUT FACTURA].NRFACT; 3 tabele Sa se afiseze informatii privind facturile emise inclusiv valoarea facturata pe fiecare CODISBN si pentru fiecare client. SELECT FACTURI.NRFACT, FACTURI.DATAFACT, FACTURI.CODFISCAL, [CONTINUT FACTURA].CODISBN, [CONTINUT FACTURA].CANTITATE, [CONTINUT FACTURA].PRETF, [CONTINUT FACTURA].CANTITATE *[CONTINUT FACTURA].PRETF AS VALOARE, CLIENTI.CODFISCAL, CLIENTI.DENUMIRECL FROM FACTURI, [CONTINUT FACTURA], CLIENTI WHERE FACTURI.NRFACT=[CONTINUT FACTURA].NRFACT AND CLIENTI.CODFISCAL=FACTURI.CODFISCAL; COMPUNERE CU JOIN

description

De ajutor pentru mteria baze de date. Interogari SQL

Transcript of Baze de Date Exemple Interogari SQL

Page 1: Baze de Date Exemple Interogari SQL

EXEMPLE DE INTEROGARI IN SQL

COMPUNERE CU WHERE - 2 tabele.Sa se afiseze informatii privind facturile emise inclusiv valoarea facturata pe fiecare CODISBN.

SELECT FACTURI.NRFACT, FACTURI.DATAFACT, FACTURI.CODFISCAL, [CONTINUT

FACTURA].CODISBN, [CONTINUT FACTURA].CANTITATE, [CONTINUT FACTURA].PRETF, [CONTINUT FACTURA].CANTITATE*[CONTINUT FACTURA].PRETF AS VALOAREFROM FACTURI, [CONTINUT FACTURA]WHERE FACTURI.NRFACT=[CONTINUT FACTURA].NRFACT;

3 tabele Sa se afiseze informatii privind facturile emise inclusiv valoarea facturata pe fiecare CODISBN si pentru fiecare client.SELECT FACTURI.NRFACT, FACTURI.DATAFACT, FACTURI.CODFISCAL, [CONTINUT FACTURA].CODISBN, [CONTINUT FACTURA].CANTITATE, [CONTINUT FACTURA].PRETF, [CONTINUT FACTURA].CANTITATE*[CONTINUT FACTURA].PRETF AS VALOARE, CLIENTI.CODFISCAL, CLIENTI.DENUMIRECLFROM FACTURI, [CONTINUT FACTURA], CLIENTIWHERE FACTURI.NRFACT=[CONTINUT FACTURA].NRFACT AND CLIENTI.CODFISCAL=FACTURI.CODFISCAL;

COMPUNERE CU JOINa) Cu INNER JOIN

SELECT FACTURI.NRFACT, FACTURI.DATAFACT, FACTURI.CODFISCAL, [CONTINUT FACTURA].CODISBN, [CONTINUT FACTURA].CANTITATE, [CONTINUT FACTURA].PRETF, [CONTINUT FACTURA].CANTITATE*[CONTINUT FACTURA].PRETF AS VALOARE

Page 2: Baze de Date Exemple Interogari SQL

FROM FACTURI INNER JOIN [CONTINUT FACTURA] ON FACTURI.NRFACT=[CONTINUT FACTURA].NRFACT;

b) Cu LEFT JOINSELECT FACTURI.NRFACT, FACTURI.DATAFACT, FACTURI.CODFISCAL, [CONTINUT FACTURA].CODISBN, [CONTINUT FACTURA].CANTITATE, [CONTINUT FACTURA].PRETF, [CONTINUT FACTURA].CANTITATE*[CONTINUT FACTURA].PRETF AS VALOAREFROM FACTURI LEFT JOIN [CONTINUT FACTURA] ON FACTURI.NRFACT=[CONTINUT FACTURA].NRFACT;

c) Cu RIGHT JOINSELECT FACTURI.NRFACT, FACTURI.DATAFACT, FACTURI.CODFISCAL, [CONTINUT FACTURA].CODISBN, [CONTINUT FACTURA].CANTITATE, [CONTINUT FACTURA].PRETF, [CONTINUT FACTURA].CANTITATE*[CONTINUT FACTURA].PRETF AS VALOAREFROM FACTURI RIGHT JOIN [CONTINUT FACTURA] ON FACTURI.NRFACT=[CONTINUT FACTURA].NRFACT;d. Cu 3 tabeleSa se calculeze valoarea facturilor pe fiecare client cu specificarea continutului facturilor.SELECT Facturi.[Numar Factura], Facturi.[Data Facturii], [Continut Factura].Cantitate, [Continut Factura].[Pret f], [Cantitate]*[Pret f] AS Valoare, Clienti.[Cod Fiscal], Clienti.[Denumire Client]FROM Clienti INNER JOIN Facturi

Page 3: Baze de Date Exemple Interogari SQL

(INNER JOIN [Continut Factura] ON Facturi.[Numar Factura] = [Continut Factura].[Numar Factura])ON Clienti.[Cod Fiscal] = Facturi.[Cod Fiscal];

Functii agregatSELECT DISTINCT Max(a5) AS [a5_Maxim], Min(a5) AS [a5_Minim], Avg(a5) AS [a5_Medie] FROM A; SELECT COUNT(*) AS [Număr de tupluri]FROM A; Afișarea valorii pe fiecare carte facturată în luna martie 2013SELECT Facturi.[Numar Factura],

[Continut Factura].[Cod ISBN], Month([Data Facturii]) AS Luna, Year([Data Facturii]) AS Anul, [Cantitate]*[Pret f] AS Valoare

FROM Facturi INNER JOIN [Continut Factura] ON Facturi.[Numar Factura] = [Continut Factura].[Numar Factura]WHERE Month([Data Facturii])=3 AND Year([Data Facturii])=2013; Adaugarea de inregistrari in tabelul CLIENTI-NOI din tabelul CLIENTIINSERT INTO [CLIENTI-NOI] ( [COD-CL], [DEN-CL] )SELECT CLIENTI.[COD-CL], CLIENTI.[DEN-CL]FROM CLIENTI WHERE [COD-CL]=1 OR [COD-CL]=5;

Adaugarea de inregistrari in tabelul FACTURI-NOI din tabelul FACTURIINSERT INTO FACTURI ( [NR-FACTURA], [COD-CL], [COD-MARFA], CANTITATE, PRET, DATA )SELECT [FACTURI-NOI].[NR-FACTURA], [FACTURI-NOI].[COD-CL], [FACTURI-NOI].[COD-MARFA], [FACTURI-NOI].CANTITATE, [FACTURI-NOI].PRET, [FACTURI-NOI].DATA FROM [FACTURI-NOI]WHERE ([facturi-noi].[COD-MARFA]=2) AND ([FACTURI-NOI].DATA>#3/3/2012#);

Afișarea totalului cantităților facturate pe fiecare marfă și pentru fiecare client.TRANSFORM Sum([CLIENTI-MARFURI-FACTURI].CANTITATE) AS SumaCANTITATESELECT [CLIENTI-MARFURI-FACTURI].[DEN-MARFA]FROM [CLIENTI-MARFURI-FACTURI]GROUP BY [CLIENTI-MARFURI-FACTURI].[DEN-MARFA]PIVOT [CLIENTI-MARFURI-FACTURI].[DEN-CL];

Să se șteargă din tabelul Facturi înregistrarile care au nr-factura=2.

Page 4: Baze de Date Exemple Interogari SQL

DELETE *FROM FACTURIWHERE ((FACTURI.[NR-FACTURA])=2);Sinteza pe client- afișarea totalului valoric pentru mărfurile facturate pe fiecare clientSELECT [CLIENTI-MARFURI-FACTURI].[COD-CL], [CLIENTI-MARFURI-FACTURI].[DEN-CL], Sum([CLIENTI-MARFURI-FACTURI].VALOARE) AS SumOfVALOAREFROM [CLIENTI-MARFURI-FACTURI]GROUP BY [CLIENTI-MARFURI-FACTURI].[COD-CL], [CLIENTI-MARFURI-FACTURI].[DEN-CL];Compunere cu joinSELECT CLIENTI.[COD-CL], CLIENTI.[DEN-CL], LIVRARI.[COD-MARFA], LIVRARI.CANTITATEFROM CLIENTI INNER JOIN LIVRARI ON CLIENTI.[COD-CL] = LIVRARI.[COD-CLIENT];

Majorarea cu 20% a pretului în facturile clientilor având codul>20.UPDATE [facturi-noi] SET PRET = pret*1.2WHERE ([cod-cl]>20);

Afișarea informațiilor despre un client pentru care localitatea se va introduce ca parametru de la tastatura calculatorului.SELECT CLIENTI.[COD-CL], CLIENTI.[DEN-CL], CLIENTI.LOCALITATEFROM CLIENTIWHERE ((CLIENTI.LOCALITATE)=[INTRODUCETI LOCALITATE=]);

Reuniunea tabelului CLIENTI cu Tabelul CLIENTI ARAD

SELECT [CodFiscal],[DenumireCL],Localitate,Telefon FROM ClientiUNION SELECT [CodFiscal],[DenumireCl],Localitate,Telefon FROM [Clienti Arad]ORDER BY Localitate, [DenumireCl];

Din ce localitate sunt clienții ce au în factură codfiscal=555555555. SELECT CLIENTI.[CODFISCAL], CLIENTI.LOCALITATEFROM CLIENTIWHERE CLIENTI.[CODFISCAL] IN (SELECT FACTURI.[CODFISCAL]FROM FACTURI

Page 5: Baze de Date Exemple Interogari SQL

WHERE FACTURI.[CODFISCAL]="555555555");

Din ce localități sunt clienții ce nu au în factură codfiscal=555555555.

SELECT CLIENTI.[CODFISCAL], CLIENTI.LOCALITATEFROM CLIENTIWHERE CLIENTI.[CODFISCAL] NOT IN (SELECT FACTURI.[CODFISCAL]FROM FACTURIWHERE FACTURI.[CODFISCAL]="555555555");

Se dă structura tabelelor:

FURNIZORI(CODFZ, DENFZ, LOCALITATE)CONTRACTE(NUMAR CONTRACT, DATA, VALOARE CONTRACT, CODFZ)

Se cere să scrieţi frazele SQL pentru următoarele cerinţe:

1. Afișarea codului furnizorilor și numărului de contract pentru cei care au data contractului 17 aprilie 2012

SELECT DISTINCT [Nrcontract], codfz, DATAFROM CONTRACTEWHERE CODFZ IN (SELECT CODFZ FROM CONTRACTE WHERE([DATA]= #4/17/2012#));

2. Furnizorii din Bucuresti care au contract in anul curent si au valoare contract >10000

SELECT FURNIZORI.codfz, FURNIZORI.denfz, FURNIZORI.localitate, CONTRACTE.NRCONTRACT, CONTRACTE.DATA, CONTRACTE.VALOAREFROM FURNIZORI RIGHT JOIN CONTRACTE ON FURNIZORI.codfz=CONTRACTE.CODFZWHERE (((FURNIZORI.localitate)="bucuresti") And (year(CONTRACTE.DATA)=year(now())) And ((CONTRACTE.VALOARE)>10000));

3. Numărul contractelor încheiate pe zile și totalul valorii contractate pe fiecae zi

SELECT Count(CONTRACTE.NRCONTRACT) AS nrcontracte, CONTRACTE.DATA, Sum(CONTRACTE.VALOARE) AS TOTAL FROM CONTRACTEGROUP BY CONTRACTE.DATA;

Page 6: Baze de Date Exemple Interogari SQL

4. Lista furnizorilor din Iasi, Cluj si Deva care au data contractului în intervalul (1.01.2012-31.12.2013)

SELECT FURNIZORI.codfz, FURNIZORI.denfz, FURNIZORI.localitate, CONTRACTE.NRCONTRACT, CONTRACTE.DATA, CONTRACTE.VALOARE FROM FURNIZORI RIGHT JOIN CONTRACTE ON FURNIZORI.codfz = CONTRACTE.CODFZWHERE (((FURNIZORI.localitate)="iasi" Or (FURNIZORI.localitate)="cluj" Or (FURNIZORI.localitate)="deva") AND ((CONTRACTE.DATA) Between (#1/1/2012#) And (#12/31/2013#)));

5. Informatii despre toate contractele în afară de contractual 111.

SELECT [Nrcontract], codfz, DATAFROM CONTRACTEWHERE CODFZ NOT IN (SELECT CODFZ FROM CONTRACTE WHERE (NRCONTRACT=111));

6. Informatii numai despre contractual 111.

SELECT [Nrcontract], codfz, DATAFROM CONTRACTEWHERE CODFZ IN (SELECT CODFZ FROM CONTRACTE WHERE (NRCONTRACT=111));

7. Numărul contractelor încheiate cu furnizorii pe fiecare data calendaristica.

SELECT Count(CONTRACTE.NRCONTRACT) AS nrcontracte, CONTRACTE.DATAFROM CONTRACTE GROUP BY CONTRACTE.DATA;

8. Valoarea totală a contractelor pe fiecare data calendaristică.SELECT CONTRACTE.DATA, Sum(CONTRACTE.VALOARE) AS TOTALFROM CONTRACTEGROUP BY CONTRACTE.DATA;

9. Afișarea numelui furnizorilor care nu au contracteSELECT FURNIZORI.codfz, FURNIZORI.denfz, FURNIZORI.localitateFROM FURNIZORI LEFT JOIN CONTRACTE ON FURNIZORI.[codfz] = CONTRACTE.[CODFZ]

Page 7: Baze de Date Exemple Interogari SQL

WHERE (((CONTRACTE.CODFZ) Is Null));

10.Actualizarea valorii contractelor prin adaugarea valorii 2 pentru furnizorii din CLUJ.

UPDATE CONTRACTE INNER JOIN FURNIZORI ON CONTRACTE.CODFZ = FURNIZORI.codfz SET CONTRACTE.VALOARE = CONTRACTE.VALOARE+2WHERE (((FURNIZORI.localitate)="cluj"));

Se dă structura tabelului: PERSONAL(CNP,NUME,DATAN,SALARIU)

Să se afișeze:Numele care încep cu litera P.SELECT numeFROM personalWHERE ( left(nume,1)="P");

Numele care au pe ultimele trei pozitii SRL SELECT nume from personalWHERE (Right(nume,3)="SRL");

Numele care au în conținut terminația SRL

SELECT personal.numeFROM personalWHERE (nume Like "*SRL");