tema bd nicol

33

Upload: ciobi-dragos

Post on 15-Apr-2016

264 views

Category:

Documents


2 download

DESCRIPTION

temabd

TRANSCRIPT

Page 1: Tema Bd Nicol
Page 2: Tema Bd Nicol

1

Cuprins:

1. Enunțarea temei proiectului…………………..pag. 3

2. Entități. 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 grupa…………………………pag.12

3.6 Tabelul mat_specializare……………..pag.13

4. Interogări……………………………………...pag.14-19

4.1 Select.………………………………...pag.14-17

4.2 Update………………………………..pag. 18-19

4.3 Delete………………………………...pag. 19

5. Vederi…………………………………………pag. 20

6. Indecși……………….......................................pag. 23

7. Declanșatori……………………………….......pag. 24

8. Join…………………………………………….pag.24-25

9. Concluzii………………………………………pag. 26

Page 3: Tema Bd Nicol

2

1. Enunțarea temei proiectului

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 relaționalcare va conține 7 tabele. În fiecare tabel sunt inserate cel puțin 9înregistrări.Sunt utilizare următoarele tipuri de date:· modelul relațional al bazei de date;· tabele;· vederi;· funcții utilizator;· secvențe;· declanșatori;· date utilizator.

Page 4: Tema Bd Nicol

3

2. Modelul conceptual al bazei de date. Entități.2.1 Entități

Page 5: Tema Bd Nicol

4

2.2 Modelul conceptual

3. Crearea tabelelorPentru baza de date, am creat următoarele tabele :Furnizor;Produs;Comanda;Factura; Stoc; Cumparator; Angajat.

Page 6: Tema Bd Nicol

5

3.1 Tabelul Angajat

Tabelul Angajati deține 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,dataangajare,studii,salariu)values(1,'VASILE','ION','01-22-1956','1560122658723','STR A.I.CUZA NR 54','0764917428','[email protected]','LACATUS MECANIC','12-12-1999','MEDII', '2000.00' );insert into angajat(codang,nume,prenume,datanasterii,CNP,adresa,telefon,email,functie,dataangajare,studii,salariu)values(2,'ANDREI', 'LAVINIA', '07-13-1975', '2560713100245', 'STR. AL. MARGHILOMAN, NR. 43', '0752313334', '[email protected]', 'INGINER PROIECTANT', '07-24-2002', 'SUPERIOARE', '4500.00');insert into angajat(codang,nume,prenume,datanasterii,CNP,adresa,telefon,email,functie,dataangajare,studii,salariu)

Page 7: Tema Bd Nicol

6

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

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

Page 8: Tema Bd Nicol

7

3.2 Tabelul Cumparator

Tabelul Cumparator deține 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)

Page 9: Tema Bd Nicol

8

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','BLVD 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 deține 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,

Page 10: Tema Bd Nicol

9

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);

Page 11: Tema Bd Nicol

10

3.4 Tabelul ProdusTabelul produs deține informații 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');

Page 12: Tema Bd Nicol

11

ALTER TABLE produs ADD CONSTRAINT prod1 UNIQUE(codprod);

3.5 Tabelul FurnizorTabelul Furnizor deține informații 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', '[email protected]', '0762548213', 'Buzau,strada1Decembrie,nr.17'); insert into Furnizor(codfurnizor,codfact,CUI,persoanacontact,IBAN,email,telefon,adresa)

Page 13: Tema Bd Nicol

12

values(2,5,'4738902','Ioan Elena','RO76BRDESV78567283353531','[email protected]','0768931343','Libertatii,nr4');insert into Furnizor(codfurnizor,codfact,CUI,persoanacontact,IBAN,email,telefon,adresa)values(3,1,'234135','Zamfir Didina','RO34BRDESV98765678923334','[email protected]','0764224323', 'Constanta, Cartier Golgota, Nr. 54');insert into Furnizor(codfurnizor,codfact,CUI,persoanacontact,IBAN,email,telefon,adresa)values(4,7,'5776547','Luca Diana','RO80WBAN2511000036603741','[email protected]','0742253555','Bulevardul Republicii, nr 17');insert into Furnizor(codfurnizor,codfact,CUI,persoanacontact,IBAN,email,telefon,adresa)values(5,8,'3732354','Iovan Mirela','RO05RZBR0000060012238696','[email protected]','0723537583','Aleea Maracinilor ,nr56');insert into Furnizor(codfurnizor,codfact,CUI,persoanacontact,IBAN,email,telefon,adresa)values(6,2,'6724933','Mirica Gabriel','RO93BTRL0410120579132422','[email protected]','0248763821','Blvd Mantuirii nr8');insert into Furnizor(codfurnizor,codfact,CUI,persoanacontact,IBAN,email,telefon,adresa)values(7,4,'764927','Oprea Teodor','RO42BTRL0410120579132433','[email protected]','0452836284','Alee Mocanita nr6');insert into Furnizor(codfurnizor,codfact,CUI,persoanacontact,IBAN,email,telefon,adresa)values(8,9,'729414','Andrei Mirel','RO49RNCB0080005303200001','[email protected]','0351739299','Str Victoriei nr 32');insert into Furnizor(codfurnizor,codfact,CUI,persoanacontact,IBAN,email,telefon,adresa)values(9,6,'125729','Cozma Roxana','RO22RNCB0080005630200002','[email protected]','0745729321','Str Margaritarului nr 78');

Page 14: Tema Bd Nicol

13

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

3.6 Tabelul FacturaTabelul Factura deține informații 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,datafacturarii,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,datafacturarii,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,datafacturarii,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,datafacturarii,cantitate,cotatva,CUI)

Page 15: Tema Bd Nicol

14

VALUES(4,124,5,4,2,8,'100002.00','11-24-2014',4,24,'472961');INSERT INTO FACTURA(codfact,nrinregistrare,codang,codcomanda,codcump,codfurnizor,pret,datafacturarii,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,datafacturarii,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,datafacturarii,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,datafacturarii,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,datafacturarii,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 StocTabelul Stoc deține informații privind stocul actualizat dupa fiecare vanzare aflate cu ajutorul comenzii: create table stoc( codstoc integer not null,

Page 16: Tema Bd Nicol

15

codprod integer not null, cantitate integer not null, datastoc date not null) in userspace1;

Pentru popularea tabelului, s-a folosit comanda INSERT:

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

ALTER TABLE stoc ADD CONSTRAINT stoc1 UNIQUE(codstoc);

Page 17: Tema Bd Nicol

16

Creeare de chei primare.alter table cumparator drop constraint pk_cumparator;alter table cumparator add constraint pk_cumparatorprimary 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_stocprimary key(codstoc);

alter table furnizor drop constraint pk_furnizor;alter table furnizor add constraint pk_furnizorprimary key(codfurnizor);

alter table factura drop constraint pk_factura;alter table factura add constraint pk_facturaprimary key(codfact);

alter table produs drop constraint pk_produs;alter table produs add constraint pk_produsprimary key(codprod);

alter table comanda drop constraint pk_comanda;alter table comanda add constraint pk_comandaprimary key (codcomanda);

Creeare de chei straine.alter table comanda drop constraint comanda_produs_fk;alter table comanda add constraint comanda_produs_fkforeign key(codprod)references produs (codprod);

alter table comanda drop constraint comanda_factura_fk;alter table comanda add constraint comanda_factura_fkforeign key(codfact)references factura(codfact);

alter table factura drop constraint factura_furnizor_fk;alter table factura add constraint factura_furnizor_fkforeign key (codfurnizor) references furnizor(codfurnizor);

alter table factura drop constraint factura_cump_fk;alter table factura add constraint factura_cump_fk

Page 18: Tema Bd Nicol

17

foreign key (codcump) references cumparator(codcump);

alter table factura drop constraint factura_ang_fk;alter table factura add constraint factura_ang_fkforeign key(codang)references angajat(codang);

alter table comanda drop constraint comanda_fact_fk;alter table comanda add constraint comanda_fact_fkforeign key(codcomanda) references comanda(codcomanda);

alter table produs drop constraint produs_furnizor_fk;alter table produs add constraint produs_furnizor_fkforeign key(codfurnizor)references furnizor(codfurnizor);

alter table stoc drop constraint stoc_produs_fk;alter table stoc add constraint stoc_produs_fkforeign key(codprod) references produs(codprodus);

4.INTEROGARI

4.1. Select

1. Să se afișeze PRETURILE >=72000 din tabelul FACTURA

select pret

from FACTURA

where pret>= 72000;

Page 19: Tema Bd Nicol

18

2. Să se afișeze cnp, numele, și prenumele din tabelul angajat doar

pentru persoanele”DOBRE” și ”VASILE”.

select CNP,NUME, PRENUME from angajatwhere nume in ('DOBRE', 'VASILE');

3. Să se afișeze numarul comenzile pentru fiecare data pentru care data comenzi este < '02-06-2010' , cu mențiunea ca afișarea să se facă într-un singur camp, denumit “Numar COMENZI”

select dataCOMANDA, COUNT (DATACOMANDA) AS "NUMAR COMENZI"from comandaGROUP BY DATACOMANDA HAVING DATACOMANDA < '02-06-2010'

4..Să se afișeze data facturarii în ordine cronologică din tabelul factura

Page 20: Tema Bd Nicol

19

select distinct datafacturariifrom factura;

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

SELECT *FROM CUMPARATORORDER BY PRENUME asc;

4.2 Update1. Să se actualizeze data comenzi cu ”01-01-2015” din tabelul comanda pentru codul comenzii”3”

update comandaset datacomanda = '01-01-2015'where codcomanda= '3';

Page 21: Tema Bd Nicol

20

2.Să se actualizeze numele clientului cu ”Toma Daniel” din tabelul angajat pentru care cod_client=”4”

update angajatset nume = 'Toma' , prenume = ' Daniel'where codang= '4';

3.Să se actualizeze adresa cu ”Italia” din tabelul cumparator pentru care numărul de telefon începe cu ”07”.

update cumparatorset adresa = 'Italia'where telefon like '07%';

Page 22: Tema Bd Nicol

21

4.3. Delete1.Să se stearga angajatii cu studii medii.

delete from angajat where studii = 'MEDII';

Page 23: Tema Bd Nicol

22

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

delete from cumparator

where CNP like '18%';

Page 24: Tema Bd Nicol

23

5.Vederi

1.Sa se creeze vederea detaliu care sa contina nume, prenume si cnp din tabelul comparator.

create view detaliu asselect nume, prenume, cnpfrom cumparator;

SELECT * FROM detaliu;

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

create view detaliu1

Page 25: Tema Bd Nicol

24

as select nume, prenume, adresa, telefonfrom angajatwhere datanasterii > '1980-06-02';

3. Să se creeze vederea detaliu2 care să conțină numele, prenumele adresa, cnp -ul,telefonul, clientului care face parte din cumparator pentru persoanele care au cod client =4.

create view detaliu2as select nume, prenume, adresa , telefon, cnpfrom cumparatorwhere codcump =4;select * from detaliu2;

Vederile create mai sus sunt:

6.Indecși Să se creeze indecșii client, personal, comanda pe baza tebelelor client, angajati,comanda.

connect to magscule;

create index client

on client (nume, prenume,adresa);

connect to magscule;

Page 26: Tema Bd Nicol

25

create index angajati

on angajati (cnp, nume, prenume, adresa );

connect to magscule;

create index comanda

on comanda (cod_com, cantitate, cod_prod, achitat);

7.Declanșatori1. Să se creeze declanșatorul 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;

Page 27: Tema Bd Nicol

26

8. Join

1. Să se afișeze din tabelele client și angajati toate datele din

firma, utilizându-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 interogări :

o client

o comanda

o angajati

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;

-funcții agregat: MIN, MAX, COUNT;

-funcții calendaristice: DATE, YEAR;

Page 28: Tema Bd Nicol

27

-funcții scalare: CONCAT, CHAR;

-expresia – CASE;

-obiecte: vederi, indecși, declanșatori;

-operatori: BETWEEN, ON, IN, LIKE

Page 29: Tema Bd Nicol

28