Anda di halaman 1dari 3

CREATE DATABASE 50302A;

DROP DATABASE nume_bd;


CREATE TABLE nume_tabela
(camp1 tip 1[restrictie_camp1];
camp2 tip2[restrictie_ca2];
[,restrictive_tabela]);
EX::::CREATE TABLE clienti (codc INT PRIMARY KEY,nume CHAR(30),adresa VARCHAR(50));
CREATE TABLE achizitie(codc INT REFERENCES (client(codc),nrtitlu INT REFERENCES
titluri(nrtitlu),val_achiz INT,data_achiz DATE);
ALTER TABLE-->permite realizarea urlatoarelor activitati:
1) Adaugarea de campuri in tabela:
ALTER TABLE nume_tabela ADD camp TIP;
2) Stergerea de campuri din tabela:
ALTER TABLE nume_tabela DROP camp;
3) Modificarea tipului de data al unui camp:
ALTER TABLE nume_tabela MODIFY camp TIPDATANOU;
4) Redenumirea din baza de date :
ALTER TABLE nume_tabela CHANGE denumirea_veche den_noua TIP;
5) Adaugarea unei restrictii intr-o tabela:
ALTER TABLE nume_tabela ADD CONSTRAINT nume_restrictie tip_restrictie (camp);

1. Sa se afiseze numele,prenumele,salariul si sediul pt angajatii care locuiesc in acelasi oras cu un anumit


angajat:
SELECT nume,prenume,sediu,salariu
FROM angajat
WHERE sediu=(SELECT sediu
FROM departament
WHERE nume=Ionescu);
2. Sa se afiseze angajatii care lucreaza intr-un anumit departament.
SELECT *
FROM angajat
WHERE cod_dep=(SELECT cod_dep
FROM departament
WHERE denumire_d=proiectare);
3. Sa se afiseze numele,prenumele,salariul si data angajarii pentru angajatii care au un salariu mai mare
decat un anumit angajat si care s-au angajat dupa alt angajat.
SELECT nume,prenume,salariu,data_angajare
FROM angajat
WHERE salariu>(SELECT salariu
FROM angajat
WHERE nume=Popescu)
AND data_angajare>(SELECT data_angajare
FROM angajat
WHERE nume=Ionescu);
4. Sa se afiseze angajatii al carui salariu este mai mare decat minimum.
SELECT *
FROM angajat
WHERE salariu>(SELECT MIN(salariu)
FROM angajat);
5. Sa se afiseze angajatii a caror functie contine in denumire o anumita litera.
SELECT *
FROM angajat
WHERE cod_functie in(SELECT cod_functie
FROM functie
WHERE denumire_f LIKE %g%);
6. Sa se afiseze numele,prenumele,data nasterii,salariul si denumirea departamentului pt angajatii nascuti
intr-o anumita perioada.
SELECT nume,prenume,data_nastere,salariu,denumire_d
FROM angajat,departament
WHERE angajat.cod_dep=departament.cod_dep
AND data_nastere BETWEEN 1990-01-01 AND 1990-12-31;
7. Sa se afiseze numele,prenumele,data angajarii,vechimea,sediul si denumirea functiei pt angajatii cu
sediul in Ploiesti sau Bucuresti.
SELECT nume,prenume,data_nastere,DATEDIFF(NOW(),data_angajare)/365 AS
vechime,sediu,denumire_f
FROM angajat,functie
WHERE angajat.cod_functie=functie.cod_functie
AND sediu IN(Ploiesti,Bucuresti);
8.Sa se calculeze salariul total pe fiecare departament in parte.
SELECT denumire_d,SUM(salariu)AS SALTOTAL
FROM angajat,departament
WHERE angajat.cod_dep=departament.cod_dep
GROUP BY denumire_d;
9. Sa se restrictioneze gruparea inregistrarilor a.i. sa afiseze informatiile doar pt.departamentele care
contin in denumire o litera.
SELECT denumire_d,SUM(salariu)AS SALTOTAL
FROM angajat,departament
WHERE angajat.cod_dep=departament.cod_dep
GROUP BY denumire_d
HAVING denumire_d LIKE &i&;
10. Sa se calculeze salariul minim si salariul maxim pe fiecare functie in parte.
SELECT denumire_f (salariu),MAX(salariu)
FROM angajat,functie
WHERE angajat.cod_functie=functie.cod_functie
GROUP BY denumire_f;
11. Sa se modifice ex anterion a.i. sa se afiseze salariul minim si salariul maxim pt functiile al cariui
salariu total depaseste o anumita valoare
+ HAVING SUM(salariu)>2000;