Scrigroup - Documente si articole

     

HomeDocumenteUploadResurseAlte limbi doc
AccessAdobe photoshopAlgoritmiAutocadBaze de dateCC sharp
CalculatoareCorel drawDot netExcelFox proFrontpageHardware
HtmlInternetJavaLinuxMatlabMs dosPascal
PhpPower pointRetele calculatoareSqlTutorialsWebdesignWindows
WordXml


Limbajul SQL (recapitulare)

sql



+ Font mai mare | - Font mai mic



Limbajul SQL (recapitulare)

Sa se creeze urmatoarele tabele pentru baza de date Gestiune.mdb



PRODUCATORI(CODPROD INTEGER, NUME CHAR(30), ORAS CHAR(20), DATAINF DATE)

PRODUSE (CODP INTEGER, DENUMIRE CHAR(25), CANT INTEGER, PRET INTEGER, CODPROD INTEGER, CODDISTRIB INTEGER)

DISTRIBUITORI (CODDISTRIB INTEGER, NUME CHAR(30), ORAS CHAR(20))

CREATE TABLE PRODUCATORI (CODPROD INTEGER PRIMARY KEY, NUME CHAR(30), ORAS CHAR(30), DATAINF DATE);

CREATE TABLE PRODUSE (CODP INTEGER PRIMARY KEY, DENUMIRE CHAR(25), CANT INTEGER, PRET INTEGER, CODPROD INTEGER, CODDISTRIB INTEGER);

CREATE TABLE DISTRIBUITORI (CODDISTRIB INTEGER PRIMARY KEY, NUME CHAR(30), ORAS CHAR(20));

Sa se adauge in structura tabelei PRODUCATORI campurile BANCA CHAR(20), CONT_BANCAR TEXT, NRTEL INTEGER.

ALTER TABLE PRODUCATORI ADD BANCA CHAR(20), CONT_BANCAR TEXT, NRTEL INTEGER;

Sa se adauge in tabela PRODUSE campurile Data_p Date si Data_d Date.

ALTER TABLE PRODUSE ADD DATA_P DATE, DATA_D DATE;

Sa se modifice tipul campului NRTEL din table PRODUCATORI din INTEGER in CHAR(10).

ALTER TABLE PRODUCATORI ALTER NRTEL CHAR(10);

Sa se completeze cele trei tabele cu minim 4 inregistrari.

Sa se afiseze toti producatorii cu sediul in Ploiesti.

SELECT *

FROM PRODUCATORI

WHERE oras='Ploiesti';

Sa se afiseze toate produsele fabricate intr-o anumita perioada si al caror nume incepe cu o anumita litera.

SELECT denumire, cant, pret, data_p

FROM produse

WHERE data_p BETWEEN [d1] and [d2]

and denumire like 'M*';

Sa se sorteze descendent distribuitorii cu sediul in Ploiesti sau in Bucuresti.

SELECT nume, oras

FROM distribuitori

WHERE oras in('Ploiesti', 'Bucuresti')

ORDER BY nume desc;

Sa se calculeze valoarea produselor fabricate, afisandu-se in ordine ascendenta produsele al caror pret este mai mare decat o anumita valoare.

SELECT denumire, cant, pret, cant*pret as Valoare

FROM produse

WHERE pret>[Pret specificat]

ORDER BY denumire;

Sa se calculeze numarul de producatori din provincie.

SELECT count(*) as Numar_prod

FROM producatori

WHERE oras <>'Bucuresti';

Sa se calculeze valoarea totala a produselor obtinute intr-o anumita luna.

SELECT sum(cant*pret) as Valoare_totala

FROM produse

WHERE month(data_p)=4;

Sa se afiseze produsele realizate de producatorii infiintati intr-un anumit an.

SELECT producatori.nume, produse.denumire, produse.cant*produse.pret as [Valoare]

FROM produse,producatori

WHERE produse.codprod=producatori.codprod

AND year(producatori.datainf)=1998;

Sa se calculeze valoarea totala si valoarea minima a produselor realizate de fiecare producator in parte.

SELECT producatori.nume,sum(produse.cant*produse.pret) as VT,

min(produse.cant*produse.pret) as MINIM

FROM producatori,produse

WHERE producatori.codprod=produse.codprod

GROUP BY producatori.nume;

Sa se calculeze valoarea medie si valoarea maxima a produselor distribuite in fiecare oras de fiecare distribuitor in parte. Distribuitorii trebuie sa aiba in nume o anumita litera.

SELECT distribuitori.oras,distribuitori.nume,avg(produse.cant*produse.pret) as medie, max(produse.cant*produse.pret) as maxim

FROM distribuitori,produse

WHERE distribuitori.coddistrib=produse.coddistrib

GROUP BY distribuitori.oras,distribuitori.nume

HAVING distribuitori.nume LIKE '*n*';

Sa se afiseze produsele realizate in ultimele doua luni de producatorii cu cont la o anumita banca (INNER JOIN).

SELECT producatori.nume,produse.denumire, produse.cant*produse.pret as Valoare

FROM producatori INNER JOIN produse ON producatori.codprod=produse.codprod

WHERE date()-produse.data_p<60 AND producatori.banca='BRD';

Sa se insereze in tabela PRODUCATORI un nou producator.

INSERT INTO PRODUCATORI ( CODPROD, NUME, ORAS, DATAINF, BANCA, CONT_BANCAR, NRTEL )

VALUES (5, 'ATLAS', 'BRASOV', #2/1/2007#, 'BCR', 'BCR4444444444444444', '0248111111');

Sa se stearga distribuitorii din orasele a caror denumire incepe cu o anumita litera.

DELETE *

FROM distribuitori

WHERE oras like 'P*';

Sa se creeze o tabela care sa contina produsele fabricate intr-o anumita perioada.

CREATE TABLE PRODUSELUNA (CODP INTEGER PRIMARY KEY, DENUMIRE CHAR(25), CANT INTEGER, PRET INTEGER, CODPROD INTEGER, CODDISTRIB INTEGER, DATA_P DATE, DATA_D DATE);

INSERT INTO PRODUSELUNA

SELECT *

FROM PRODUSE WHERE month(data_p)=12;

Sa se micsoreze cu 30% pretul produselor care depasesc o anumita cantitate.

UPDATE produse

SET pret=pret*0.7 WHERE cant>[Cantitate propusa];

Sa se majoreze cu 10% pretul produselor fabricate de un anumit producator.

UPDATE producatori INNER JOIN produse ON producatori.codprod=produse.codprod

SET produse.pret=produse.pret*1.1

WHERE producatori.nume Nume:];

Sa se creeze o tabela care sa contina distribuitorii care au distribuit produse in ultima luna.

CREATE TABLE DISTRIBUITORI1(CODDISTRIB INTEGER, NUME CHAR(30), ORAS CHAR(20));

INSERT INTO DISTRIBUITORI1

SELECT DISTRIBUITORI.CODDISTRIB AS CODDISTRIB,

DISTRIBUITORI.NUME AS NUME, DISTRIBUITORI.ORAS AS ORAS

FROM DISTRIBUITORI INNER JOIN PRODUSE

ON DISTRIBUITORI.CODDISTRIB=PRODUSE.CODDISTRIB

WHERE DATE()-PRODUSE.DATA_D<30;



Politica de confidentialitate | Termeni si conditii de utilizare



DISTRIBUIE DOCUMENTUL

Comentarii


Vizualizari: 1299
Importanta: rank

Comenteaza documentul:

Te rugam sa te autentifici sau sa iti faci cont pentru a putea comenta

Creaza cont nou

Termeni si conditii de utilizare | Contact
© SCRIGROUP 2024 . All rights reserved