Sunteți pe pagina 1din 29

Cuprins:

1. Enunarea temei proiectului..pag. 3


2. Entiti. Modelul conceptual.....pag.4-5
3. Crearea tabelelor:..............pag. 6-13
3.1 Tabelul facultate...pag. 7
3.2 Tabelul specializare..pag. 8
3.3 Tabelul student.pag. 9
3.4 Tabelul materie.pag.10
3.5 Tabelul grupapag.12
3.6 Tabelul mat_specializare..pag.13
4. Interogri...pag.14-19
4.1 Select....pag.14-17
4.2 Update..pag. 18-19
4.3 Delete...pag. 19
5. Vederipag. 20
6. Indeci.......................................pag. 23
7. Declanatori.......pag. 24
8. Join.pag.24-25
9. Concluziipag. 26

1. Enunarea temei proiectului


1

TEMA PROIECT
S se proiecteze i s se modeleze o baz de date pentru:Fabrica
masini unelte achizitii/vanzari.
Aceast baz de date va fi conceput pe un model relaional
care va conine 7 tabele. n fiecare tabel sunt inserate cel puin 9
nregistrri.
Sunt utilizare urmtoarele tipuri de date:
modelul relaional al bazei de date;
tabele;
vederi;
funcii utilizator;
secvene;
declanatori;
date utilizator.

2. Modelul conceptual al bazei de date. Entiti.


2.1 Entiti

2.2 Modelul conceptual

3. Crearea tabelelor
Pentru baza de date, am creat urmtoarele tabele :
Furnizor;
Produs;
Comanda;
Factura;
Stoc;
Cumparator;
Angajat.

3.1 Tabelul Angajat


Tabelul Angajati deine date despre angajatii firmei cu
urmatoarea comand:
create table Angajat (
codang integer not null,
Nume varchar(25) not null,
prenume varchar (25)not null,
datanasterii date not null,
CNP varchar(13) not null,
adresa varchar(50) not null,
telefon varchar(15) not null,
email varchar(35) not null,
functie varchar(20) not null,
dataangajare date not null,
studii varchar(20) not null,
salariu decimal(8,2) not null)
in userspace1;

Pentru popularea tabelului, s-a folosit comanda Insert (tab. 2):


insert into
angajat(codang,nume,prenume,datanasterii,CNP,adresa,telefon,email,functie,data
angajare,studii,salariu)
values(1,'VASILE','ION','01-22-1956','1560122658723','STR A.I.CUZA NR
54','0764917428','i.vasile@yahoo.com','LACATUS MECANIC','12-12-1999','MEDII',
'2000.00' );
insert into
angajat(codang,nume,prenume,datanasterii,CNP,adresa,telefon,email,functie,data
angajare,studii,salariu)
values(2,'ANDREI', 'LAVINIA', '07-13-1975', '2560713100245', 'STR. AL.
MARGHILOMAN, NR. 43', '0752313334', 'LAVINIA_LVN@YAHOO.COM', 'INGINER
PROIECTANT', '07-24-2002', 'SUPERIOARE', '4500.00');

insert into
angajat(codang,nume,prenume,datanasterii,CNP,adresa,telefon,email,functie,data
angajare,studii,salariu)
VALUES(3, 'DOBRE', 'LUIZA', '12-02-1967', '2671202203078', 'DOROBANTI, NR.22',
'0755456733', 'LUIZADOBRE@GMAIL.COM', 'DIRECTOR VANZARI', '12-08-2001',
'SUPERIOARE','3700.00');
insert into
angajat(codang,nume,prenume,datanasterii,CNP,adresa,telefon,email,functie,data
angajare,studii,salariu)
VALUES(4, 'NEGOITA', 'GABRIEL', '07-02-1983', '1830207100573', 'STR. RACHITEI,
NR. 17', '0749646768', 'NEGOITAGABRIEL@YAHOO.COM','SUPERVIZOR', '09-13-2009',
'MEDII', '2300.00');
insert into
angajat(codang,nume,prenume,datanasterii,CNP,adresa,telefon,email,functie,data
angajare,studii,salariu)
VALUES(5, 'DUMITRU', 'IUSTIN', '10-22-1965', '1651022443521', 'DOROBANTI,
NR.17', '0772314353', 'DUMITRUIUS@YAHOO.COM', 'OPERATOR VANZARI', '04-041998', 'MEDII', '1800.00');
insert into
angajat(codang,nume,prenume,datanasterii,CNP,adresa,telefon,email,functie,data
angajare,studii,salariu)
VALUES(6,'BORCEA','MIHAI','12-29-1989', ' 189122968754','STR CRIZANTEMEI NR
25','0249875699','BORCEA1229@YAHOO.COM',' OPERATOR VANZARI' ,'06-05-2014',
'SUPERIOARE','2560.00');
insert into
angajat(codang,nume,prenume,datanasterii,CNP,adresa,telefon,email,functie,data
angajare,studii,salariu)
VALUES(7,'CALIN','MARCEL','11-14-1981','1811114587624','ALEA GAROFITEI
NR5A','0795825556','BORCEA_1@GMAIL.CO.UK','ING PROGRAMARE CNC','03-112010','SUPERIOARE','8450.00');
insert into
angajat(codang,nume,prenume,datanasterii,CNP,adresa,telefon,email,functie,data
angajare,studii,salariu)
VALUES(8,'CHIRITA','SIMONA','06-30-1972','2720630726489','SPLAIUL
INDEPENDENTEI NR 102','0215877964','CHIRITA_SIMO@GMAIL.COM','TEHNICIAN MU','07-10-1998','SUPERIOARE','6700.00');
insert into
angajat(codang,nume,prenume,datanasterii,CNP,adresa,telefon,email,functie,data
angajare,studii,salariu)
VALUES(9,'POPESCU','MIRUNA','02-06-1978','2780206562497','STR IZVORULUI
NR90','0725846975','POPUNA@YAHOO.COM','GRAPHIC DESIGNER','12-121999','SUPERIOARE','7500.00');

ALTER TABLE angajat ADD CONSTRAINT ang1 UNIQUE(codang,cnp);

3.2 Tabelul Cumparator


Tabelul Cumparator deine date despre cumparatori cu urmatoarea comand:
create table cumparator(
codcump integer not null,
nume varchar(25) not null,
prenume varchar(25) not null,
CNP varchar(13) not null ,
nrCI varchar(2) not null ,
SerieCI varchar(6) not null ,
telefon varchar(15) not null,
adresa varchar(50) not null)
in userspace1;

Pentru popularea tabelului, s-a folosit comanda Insert :


INSERT INTO CUMPARATOR(CODCUMP,NUME,PRENUME,CNP,NRCI,SERIECI,TELEFON,ADRESA)
VALUES(1,'DRAGHICI','COSTIN','1760204789123','OT','837543','0219876542','STR
CAZARMII NR65');
INSERT INTO CUMPARATOR(CODCUMP,NUME,PRENUME,CNP,NRCI,SERIECI,TELEFON,ADRESA)
VALUES(2,'MARIAN','IONEL','1680608124568','XZ','267822','0249876283','STR
UNIRII,NR35');
INSERT INTO CUMPARATOR(CODCUMP,NUME,PRENUME,CNP,NRCI,SERIECI,TELEFON,ADRESA)
VALUES(3,'DOGARU','MARIUS','1891223439264','BT','786573','0751837233','ALEEA
ROZELOR,NR 67');
INSERT INTO CUMPARATOR(CODCUMP,NUME,PRENUME,CNP,NRCI,SERIECI,TELEFON,ADRESA)
VALUES(4,'IVAN','CRISTINEL','1831131852623','VX','342793','0768402742','BLVD
IOAN MIHALACHE NR 2');
INSERT INTO CUMPARATOR(CODCUMP,NUME,PRENUME,CNP,NRCI,SERIECI,TELEFON,ADRESA)
VALUES(5,'STANCIU','GEORGE','1671027762934','IT','871234','0345867128','BLVD
INDEPENDENTEI NR 3');
INSERT INTO CUMPARATOR(CODCUMP,NUME,PRENUME,CNP,NRCI,SERIECI,TELEFON,ADRESA)

VALUES(6,'GHEORGHE','COSMIN','1891212697482','GL','900829','0725896566','STR
MIHAI BRAVU NR56');
INSERT INTO CUMPARATOR(CODCUMP,NUME,PRENUME,CNP,NRCI,SERIECI,TELEFON,ADRESA)
VALUES(7,'PARASCHIVESCU','MATEI','1691104679534','ZL','786618','0786349563','B
LVD IULIU MANIU NR 78');
INSERT INTO CUMPARATOR(CODCUMP,NUME,PRENUME,CNP,NRCI,SERIECI,TELEFON,ADRESA)
VALUES(8,'COMANESCU','IULIAN','1851209354486','KX','448556','0146587236','SOS
PATRIOTILOR NR 12');
INSERT INTO CUMPARATOR(CODCUMP,NUME,PRENUME,CNP,NRCI,SERIECI,TELEFON,ADRESA)
VALUES(9,'JIPESCU','CRISTIAN','1780108329966','CJ','887641','0458792956','SOS
OPORTUNITATII');

ALTER TABLE CUMPARATOR ADD CONSTRAINT cump1


UNIQUE(CODCUMP,CNP,NRCI,SERIECI);

3.3 Tabelul Comanda


Tabelul Comanda deine date despre comenzile firmei cu urmatoarea comand:
create table comanda(
codcomanda integer not null,
codfurnizor integer not null,
codcump integer not null,
codfact integer not null,
codprod integer not null,

pret decimal(10,2) not null,


datacomanda date not null)
in userspace1;

Pentru popularea tabelului, s-a folosit comanda Insert


INSERT INTO COMANDA(CODCOMANDA, CODFURNIZOR,
CODCUMP,CODFACT,CODPROD,PRET,DATACOMANDA)
VALUES(1,2,4,6,6,'72000.00','02-06-2010');
INSERT INTO COMANDA(CODCOMANDA, CODFURNIZOR,
CODCUMP,CODFACT,CODPROD,PRET,DATACOMANDA)
VALUES(2,3,5,3,9,'32000.00','02-28-2011');
INSERT INTO COMANDA(CODCOMANDA, CODFURNIZOR,
CODCUMP,CODFACT,CODPROD,PRET,DATACOMANDA)
VALUES(3,6,1,8,3,'57000.00','12-12-2009');
INSERT INTO COMANDA(CODCOMANDA, CODFURNIZOR,
CODCUMP,CODFACT,CODPROD,PRET,DATACOMANDA)
VALUES(4,8,2,4,2,' 25000.50','10-13-2008');
INSERT INTO COMANDA(CODCOMANDA, CODFURNIZOR,
CODCUMP,CODFACT,CODPROD,PRET,DATACOMANDA)
VALUES(5,5,3,9,7,'11100.00','06-26-2005');
INSERT INTO COMANDA(CODCOMANDA, CODFURNIZOR,
CODCUMP,CODFACT,CODPROD,PRET,DATACOMANDA)
VALUES(6,7,9,1,4,'120000.00','07-25-2010');
INSERT INTO COMANDA(CODCOMANDA, CODFURNIZOR,
CODCUMP,CODFACT,CODPROD,PRET,DATACOMANDA)
VALUES(7,9,7,2,8,'5700.00','03-01-2013');
INSERT INTO COMANDA(CODCOMANDA, CODFURNIZOR,
CODCUMP,CODFACT,CODPROD,PRET,DATACOMANDA)
VALUES(8,4,6,5,5,'4000.00','05-09-2012');
INSERT INTO COMANDA(CODCOMANDA, CODFURNIZOR,
CODCUMP,CODFACT,CODPROD,PRET,DATACOMANDA)
VALUES(9,1,8,7,1,'4860.00','04-09-2011');

ALTER TABLE comanda ADD CONSTRAINT com1 UNIQUE(codcomanda);

3.4 Tabelul Produs


Tabelul produs deine informaii privind produse aflate in firma cu ajutorul comenzii:
create table produs(
codprod integer not null,
codfurnizor integer not null,
denumire varchar(40),

Pentru popularea tabelului, s-a folosit comanda INSERT:


INSERT INTO PRODUS(CODPROD,CODFURNIZOR,DENUMIRE,GARANTIE,CATEGORIE)
VALUES(1,1,'STRUNG PARALEL','2 ANI','STRUNG');
INSERT INTO PRODUS(CODPROD,CODFURNIZOR,DENUMIRE,GARANTIE,CATEGORIE)
VALUES(2,8,'MASINA DE FREZAT SI GAURIT','2 ANI','FREZA');
INSERT INTO PRODUS(CODPROD,CODFURNIZOR,DENUMIRE,GARANTIE,CATEGORIE)
VALUES(3,6,'CIRCULAR','2 ANI','CIRCULARE');
INSERT INTO PRODUS(CODPROD,CODFURNIZOR,DENUMIRE,GARANTIE,CATEGORIE)
VALUES(4,7,'STRUNG CNC','4 ANI','STRUNG');
INSERT INTO PRODUS(CODPROD,CODFURNIZOR,DENUMIRE,GARANTIE,CATEGORIE)
VALUES(5,4,'FORJA','3 ANI','FORJA');
INSERT INTO PRODUS(CODPROD,CODFURNIZOR,DENUMIRE,GARANTIE,CATEGORIE)
VALUES(6,2,'MASINA DE ASCUTIT BURGHIE','2 ANI','MASINA');
INSERT INTO PRODUS(CODPROD,CODFURNIZOR,DENUMIRE,GARANTIE,CATEGORIE)
VALUES(7,5,'MASINA DE MORTEZAT','2 ANI','MASINA');
INSERT INTO PRODUS(CODPROD,CODFURNIZOR,DENUMIRE,GARANTIE,CATEGORIE)
VALUES(8,9,'MASINA DE INDOIT','2 ANI','MASINA');
INSERT INTO PRODUS(CODPROD,CODFURNIZOR,DENUMIRE,GARANTIE,CATEGORIE)
VALUES(9,3,'MINI STRUNG','2 ANI','STRUNG');

10

ALTER TABLE produs ADD CONSTRAINT prod1 UNIQUE(codprod);

3.5 Tabelul Furnizor


Tabelul Furnizor deine informaii privind datele frunizorului aflate cu ajutorul comenzii:
create table Furnizor (
codfurnizor integer not null,
codfact integer not null,
CUI varchar(20)not null ,
persoanacontact varchar(50)not null,
IBAN varchar(24) not null,
email varchar(50)not null,
telefon varchar(12)not null,
adresa varchar (50) not null )
in USERSPACE1;

Pentru popularea tabelului, s-a folosit comanda INSERT:


insert into
Furnizor(codfurnizor,codfact,CUI,persoanacontact,IBAN,email,telefon,adresa)
values(1,3,'112374','Silviu Marinescu','RO17RNCB1001253695100121',
'marinescu_silviu@gmail.com', '0762548213', 'Buzau,strada1Decembrie,nr.17');
insert into
Furnizor(codfurnizor,codfact,CUI,persoanacontact,IBAN,email,telefon,adresa)

11

values(2,5,'4738902','Ioan
Elena','RO76BRDESV78567283353531','ioanelena@yahoo.co.uk','0768931343','Libert
atii,nr4');
insert into
Furnizor(codfurnizor,codfact,CUI,persoanacontact,IBAN,email,telefon,adresa)
values(3,1,'234135','Zamfir
Didina','RO34BRDESV98765678923334','zamfiradelina@yahoo.com','0764224323',
'Constanta, Cartier Golgota, Nr. 54');
insert into
Furnizor(codfurnizor,codfact,CUI,persoanacontact,IBAN,email,telefon,adresa)
values(4,7,'5776547','Luca
Diana','RO80WBAN2511000036603741','didi_luca86@yahoo.com','0742253555','Buleva
rdul Republicii, nr 17');
insert into
Furnizor(codfurnizor,codfact,CUI,persoanacontact,IBAN,email,telefon,adresa)
values(5,8,'3732354','Iovan
Mirela','RO05RZBR0000060012238696','mirelaiov@gmail.com','0723537583','Aleea
Maracinilor ,nr56');
insert into
Furnizor(codfurnizor,codfact,CUI,persoanacontact,IBAN,email,telefon,adresa)
values(6,2,'6724933','Mirica
Gabriel','RO93BTRL0410120579132422','mirica_gab@yahoo.com','0248763821','Blvd
Mantuirii nr8');
insert into
Furnizor(codfurnizor,codfact,CUI,persoanacontact,IBAN,email,telefon,adresa)
values(7,4,'764927','Oprea
Teodor','RO42BTRL0410120579132433','o.teo@gmail.com','0452836284','Alee
Mocanita nr6');
insert into
Furnizor(codfurnizor,codfact,CUI,persoanacontact,IBAN,email,telefon,adresa)
values(8,9,'729414','Andrei
Mirel','RO49RNCB0080005303200001','andrei_m@gmail.com','0351739299','Str
Victoriei nr 32');
insert into
Furnizor(codfurnizor,codfact,CUI,persoanacontact,IBAN,email,telefon,adresa)
values(9,6,'125729','Cozma
Roxana','RO22RNCB0080005630200002','rox_coz@yahoo.com','0745729321','Str
Margaritarului nr 78');

12

ALTER TABLE furnizor ADD CONSTRAINT fur1 UNIQUE(codfurnizor,cui);

3.6 Tabelul Factura


Tabelul Factura deine informaii privind datele de facturare aflate cu ajutorul comenzii:
create table factura(
codfact integer not null,
nrinregistrare integer not null,
codang integer not null,
codcomanda integer not null,
codcump integer not null,
codfurnizor integer not null,
pret decimal(10,2) not null,
datafacturarii date not null,
cantitate integer not null,
cotatva smallint not null,
CUI varchar(20) not null )
in userspace1;

Pentru popularea tabelului, s-a folosit comanda INSERT:


INSERT INTO
FACTURA(codfact,nrinregistrare,codang,codcomanda,codcump,codfurnizor,pret,data
facturarii,cantitate,cotatva,CUI)
VALUES(1,121,5,6,9,7,'240000.00','03-08-2014',2,24,'124122');
INSERT INTO
FACTURA(codfact,nrinregistrare,codang,codcomanda,codcump,codfurnizor,pret,data
facturarii,cantitate,cotatva,CUI)
values(2,122,6,7,7,9,'11400.00','09-07-2012',2,24,'411244');
INSERT INTO
FACTURA(codfact,nrinregistrare,codang,codcomanda,codcump,codfurnizor,pret,data
facturarii,cantitate,cotatva,CUI)
VALUES(3,123,6,2,5,3,'96300.00','12-19-2015',3,24,'873223');
INSERT INTO
FACTURA(codfact,nrinregistrare,codang,codcomanda,codcump,codfurnizor,pret,data
facturarii,cantitate,cotatva,CUI)
VALUES(4,124,5,4,2,8,'100002.00','11-24-2014',4,24,'472961');

13

INSERT INTO
FACTURA(codfact,nrinregistrare,codang,codcomanda,codcump,codfurnizor,pret,data
facturarii,cantitate,cotatva,CUI)
VALUES(5,125,5,8,6,4,'4000.00','06-24-2005',1,19,'345673');
INSERT INTO
FACTURA(codfact,nrinregistrare,codang,codcomanda,codcump,codfurnizor,pret,data
facturarii,cantitate,cotatva,CUI)
VALUES(6,126,5,1,4,2,'72000.00','02-02-2014',1,24,'743824');
INSERT INTO
FACTURA(codfact,nrinregistrare,codang,codcomanda,codcump,codfurnizor,pret,data
facturarii,cantitate,cotatva,CUI)
VALUES(7,127,5,9,8,1,'29160.00','08-18-2012',6,24,'987632');
INSERT INTO
FACTURA(codfact,nrinregistrare,codang,codcomanda,codcump,codfurnizor,pret,data
facturarii,cantitate,cotatva,CUI)
VALUES(8,128,6,3,1,6,'57000.00','04-03-2010',1,24,'843567');
INSERT INTO
FACTURA(codfact,nrinregistrare,codang,codcomanda,codcump,codfurnizor,pret,data
facturarii,cantitate,cotatva,CUI)
VALUES(9,129,6,5,3,5,'99900.00','07-06-2006',9,19,'486384');

ALTER TABLE factura ADD CONSTRAINT fact1 UNIQUE(codfact,nrinregistrare,cui);

3.7 Tabelul Stoc


Tabelul Stoc deine informaii privind stocul actualizat dupa fiecare vanzare aflate cu
ajutorul comenzii:
create table stoc(
codstoc integer not null,
codprod integer not null,

14

cantitate integer not null,


datastoc date not null)
in userspace1;

Pentru popularea tabelului, s-a folosit comanda INSERT:


INSERT INTO STOC(CODSTOC, CODPROD,
VALUES(1,1,6,'12-14-2015');
INSERT INTO STOC(CODSTOC, CODPROD,
VALUES(2,2,4,'12-19-2014');
INSERT INTO STOC(CODSTOC, CODPROD,
VALUES(3,3,7,'05-19-2013');
INSERT INTO STOC(CODSTOC, CODPROD,
VALUES(4,4,19,'07-14-2014');
INSERT INTO STOC(CODSTOC, CODPROD,
VALUES(5,5,14,'01-10-2010');
INSERT INTO STOC(CODSTOC, CODPROD,
VALUES(6,6,21,'03-05-2013');
INSERT INTO STOC(CODSTOC, CODPROD,
VALUES(7,7,43,'09-05-2012');
INSERT INTO STOC(CODSTOC, CODPROD,
VALUES(8,8,12,'08-06-2015');
INSERT INTO STOC(CODSTOC, CODPROD,
VALUES(9,9,32,'10-29-2014');

CANTITATE, DATASTOC)
CANTITATE, DATASTOC)
CANTITATE, DATASTOC)
CANTITATE, DATASTOC)
CANTITATE, DATASTOC)
CANTITATE, DATASTOC)
CANTITATE, DATASTOC)
CANTITATE, DATASTOC)
CANTITATE, DATASTOC)

ALTER TABLE stoc ADD CONSTRAINT stoc1 UNIQUE(codstoc);

15

Creeare de chei primare.


alter table cumparator drop constraint pk_cumparator;
alter table cumparator add constraint pk_cumparator
primary key(codcump);
alter table angajat drop constraint pk_angajat;
alter table angajat add constraint pk_angajat
primary key(codang);
alter table stoc drop constraint pk_stoc;
alter table stoc add constraint pk_stoc
primary key(codstoc);
alter table furnizor drop constraint pk_furnizor;
alter table furnizor add constraint pk_furnizor
primary key(codfurnizor);
alter table factura drop constraint pk_factura;
alter table factura add constraint pk_factura
primary key(codfact);
alter table produs drop constraint pk_produs;
alter table produs add constraint pk_produs
primary key(codprod);
alter table comanda drop constraint pk_comanda;
alter table comanda add constraint pk_comanda
primary key (codcomanda);

Creeare de chei straine.


alter table comanda drop constraint comanda_produs_fk;
alter table comanda add constraint comanda_produs_fk
foreign key(codprod)references produs (codprod);
alter table comanda drop constraint comanda_factura_fk;
alter table comanda add constraint comanda_factura_fk
foreign key(codfact)references factura(codfact);
alter table factura drop constraint factura_furnizor_fk;
alter table factura add constraint factura_furnizor_fk
foreign key (codfurnizor) references furnizor(codfurnizor);
alter table factura drop constraint factura_cump_fk;
alter table factura add constraint factura_cump_fk
foreign key (codcump) references cumparator(codcump);

16

alter table factura drop constraint factura_ang_fk;


alter table factura add constraint factura_ang_fk
foreign key(codang)references angajat(codang);
alter table comanda drop constraint comanda_fact_fk;
alter table comanda add constraint comanda_fact_fk
foreign key(codcomanda) references comanda(codcomanda);
alter table produs drop constraint produs_furnizor_fk;
alter table produs add constraint produs_furnizor_fk
foreign key(codfurnizor)references furnizor(codfurnizor);
alter table stoc drop constraint stoc_produs_fk;
alter table stoc add constraint stoc_produs_fk
foreign key(codprod) references produs(codprodus);

4.INTEROGARI
4.1. Select
1. S se afieze PRETURILE >=72000 din tabelul FACTURA
select pret
from FACTURA
where pret>= 72000;

2. S se afieze cnp, numele, i prenumele din tabelul angajat doar


pentru persoaneleDOBRE i VASILE.

17

select CNP,NUME, PRENUME from angajat


where nume in ('DOBRE', 'VASILE');

3. S se afieze numarul comenzile pentru fiecare data pentru care data


comenzi este < '02-06-2010' , cu meniunea ca afiarea s se fac ntr-un
singur camp, denumit Numar COMENZI
select dataCOMANDA, COUNT (DATACOMANDA) AS "NUMAR COMENZI"
from comanda
GROUP BY DATACOMANDA HAVING DATACOMANDA < '02-06-2010'

4..S se afieze data facturarii n ordine cronologic din tabelul factura


select distinct datafacturarii
from factura;

18

5. Sa se ordoneze in ordinea alfabetica cumparatorii in functie de prenume


SELECT *FROM CUMPARATOR
ORDER BY PRENUME asc;

4.2 Update
1. S se actualizeze data comenzi cu 01-01-2015 din tabelul comanda
pentru codul comenzii3
update comanda
set datacomanda = '01-01-2015'
where codcomanda= '3';

19

2.S se actualizeze numele clientului cu Toma Daniel din tabelul angajat


pentru care cod_client=4
update angajat
set nume = 'Toma' , prenume = ' Daniel'
where codang= '4';

3.S se actualizeze adresa cu Italia din tabelul cumparator pentru care


numrul de telefon ncepe cu 07.
update cumparator

20

set adresa = 'Italia'


where telefon like '07%';

4.3. Delete
1.S se stearga angajatii cu studii medii.
delete from angajat
where studii = 'MEDII';

21

2.S se tearg datele pentru care CNP-ul incepe cu 19 din tabelul


cumparator
delete from cumparator
where CNP like '18%';

22

5.Vederi
1.Sa se creeze vederea detaliu care sa contina nume, prenume si cnp din tabelul
comparator.
create view detaliu as
select nume, prenume, cnp
from cumparator;

SELECT * FROM detaliu;

2.S se creeze vederea detaliu 1 care s conin numele, prenume, adresa, telefon
din tabelul angajat pentru persoanele care sunt nascute dupa 02-06-1982.

23

create view detaliu1


as select nume, prenume, adresa, telefon
from angajat
where datanasterii > '1980-06-02';

3. S se creeze vederea detaliu2 care s conin numele, prenumele adresa, cnp


-ul,telefonul, clientului care face parte din cumparator pentru persoanele care au
cod client =4.
create view detaliu2
as select nume, prenume, adresa , telefon, cnp
from cumparator
where codcump =4;
select * from detaliu2;

Vederile create mai sus sunt:

6.Indeci
S se creeze indecii client, personal, comanda pe baza tebelelor client,
angajati,comanda.
connect to magscule;
create index client
on client (nume, prenume,adresa);
24

connect to magscule;
create index angajati
on angajati (cnp, nume, prenume, adresa );
connect to magscule;
create index comanda
on comanda (cod_com, cantitate, cod_prod, achitat);

7.Declanatori
1. S se creeze declanatorul tr1 care sa adauge automat electrocasnice si stocul
=1.
Connect to magscule;
CREATE TRIGGER tr1 AFTER INSERT ON
comanda REFERENCING NEW ROW AS n FOR EACH ROW MODE DB2SQL
UPDATE electrocasnice SET electrocasnice.stoc=electrocasnice.stoc-1
WHERE cod_el=n.cod_prod;
select * from electrocasnice;

25

8. Join
1. S se afieze din tabelele client i angajati toate datele din
firma, utilizndu-se clauza join.
connect to magscule;
select *
from "DORINIK".client as client left outer join "DORINIK".angajati as angajati
on client.cod_client =angajati.cnp;

Concluzii
S-a creat o baz de date pe baza unei firme de vanzarii scule baze cu 4 tabele.
Pe baza acestor tabele s-au realizat interogri :
o client
o comanda
o angajati

26

o electrocasnice
Pentru realizarea aceste baze, s-au folosit:
-comenzi SQL: CREATE, ALTER, UPDATE, DELETE, DROP,
INSERT;
-clauze: GROUP BY, ORDER BY, JOIN, CASCADE, HAVING;
-funcii agregat: MIN, MAX, COUNT;
-funcii calendaristice: DATE, YEAR;
-funcii scalare: CONCAT, CHAR;
-expresia CASE;
-obiecte: vederi, indeci, declanatori;
-operatori: BETWEEN, ON, IN, LIKE

27

28

S-ar putea să vă placă și