CATEGORII DOCUMENTE |
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 |
Vizualizari: 1299
Importanta:
Termeni si conditii de utilizare | Contact
© SCRIGROUP 2024 . All rights reserved