Proiect Baze de Date

download Proiect Baze de Date

of 39

Transcript of Proiect Baze de Date

Academia de Studii Economice, Facultatea de Cibernetica, Statistica si Informatica Economica

BAZE DE DATE 2012Proiect

Suciu Adina, grupa 1036, seria D

Adpost pentru animale

Descriere Am ales s creez o baz de date cu informaii referitoare la un adpost pentru animale. Acest adpost este locuina mai multor tipuri de animale: cini, pisici, psri, porcuori de guineea, hamsteri, pn i reptile. Am stocat date n 6 tabele care sunt conectate prin relaii. Datele stocate n aceast baz de date sunt referitoare la animalele aflate in adpost (tabela animale), la modul de hrnire al fiecrui tip de animal (tabela hran), la persoanele care aduc animalele la adpost prin donaii (tabela donatori), la persoanele care adopt animalele (tabela adoptani), la veterinarii ce se ocup de animalele bolnave din adpost (tabela veterinari) si la consultaiile pe care acetia le realizeaz n momentul n care un animal se mbolnvete (tabela consultaii) Reguli i structura tabelelor La nceput, ntre tabela animale i tabela veterinari exista o relaie de tip M:M. Pentru a asigura integritatea bazei de date, am creat o tabela nou numit consultaii, care se leag de cele dou tabele prin dou relaii de tip 1:M. n acest adpost: Un donator poate dona unul sau mai multe animale, un animal trebuie sa fie donat de catre un singur donator. Un adoptant poate adopta unul sau mai multe animale, un animal poate fi adoptat de catre un singur adoptant. Un animal trebuie sa consume un singur tip de hrana, un tip de hrana poate fi consumat de mai multe animale. La o consultatie trebuie sa participe un singur animal, un animal poate fi consultat de mai multe ori. Un veterinar poate sa realizeze mai multe consultatii, la o consultatie poate participa un singur veterinar. Animalele pot fi adoptate sau nu la un moment dat; acest lucru se verifica prin campul cod_adoptant. Daca acesta este Null, inseamna ca animalul nu este adoptat. Emailul trebuie intotdeauna sa fie de forma: %@%.% Pe tot parcursul timpului in care animalele traiesc in adapostul pentru animale, din motive nutritionale, fiecare animal va consuma un singur tip de hrana si nu mai multe. TABELA ANIMALE

Cmp cod_animal tip_animal greutate sex descriere data_nasterii cod_donator

Tip NUMBER(5) VARCHAR2( 10) NUMBER(6, 2) VARCHAR2( 1) VARCHAR2( 50) DATE NUMBER(5)

Restricii Primary Key Not Null

Comentarii

Foreign Key, Not Null Foreign Key

Cheie externa catre tabela DONATORI; fiecare animal trebuie sa aiba un donator Cheie externa catre tabela ADOPTANTI; daca e Null, inseamna ca animalul nu a fost adoptat Cheie externa catre tabela HRANA

cod_adoptan t

NUMBER(5)

cod_hrana

NUMBER(5)

Foreign Key

TABELA DONATORI Cmp cod_donator nume_d prenume_d adresa_d email_d telefon_d Tip NUMBER(5) VARCHAR2( 15) VARCHAR2( 20) VARCHAR2( 50) VARCHAR2( 30) VARCHAR2( 15) Check Not Null TABELA ADOPTANTI Cmp Tip Restricii Comentarii Trebuie sa aiba forma: %@%.% Restricii Primary Key Not Null Not Null Comentarii

cod_adoptan t nume_a prenume_a adresa_a email_a telefon_a

NUMBER(5) VARCHAR2( 15) VARCHAR2( 20) VARCHAR2( 50) VARCHAR2( 30) VARCHAR2( 15)

Primary Key Not Null Not Null

Check Not Null

Trebuie sa aiba forma: %@%.%

TABELA HRANA Cmp cod_hrana tip_hrana pret brand Tip NUMBER(5) VARCHAR2( 20) NUMBER(6, 2) VARCHAR2( 15) TABELA VETERINARI Cmp cod_veterina r nume_v prenume_v adresa_v email_v Tip NUMBER(5) VARCHAR2( 15) VARCHAR2( 20) VARCHAR2( 50) VARCHAR2( 30) Check Trebuie sa aiba forma: %@%.% Restricii Primary Key Not Null Not Null Comentarii Not Null Restricii Primary Key Comentarii

telefon_v

VARCHAR2( 15) TABELA CONSULTATII

Cmp cod_consultat ie data_consulta tie diagnostic cod_animal cod_veterinar

Tip NUMBER(5) DATE VARCHAR2( 30) NUMBER(5) NUMBER(5)

Restricii Primary Key Not Null

Comentarii

Foreign Key, Not Null Foreign Key, Not Null

Cheie externa catre tabela ANIMALE Cheie externa catre tabela VETERINARI

CREAREA TABELELOR

Cerina: S se creeze tabelele DONATORI, ADOPTANTI, HRANA, VETERINARI, ANIMALE SI CONSULTATII pe baza structurii si tipurilor de date prezentate mai sus. 1. CREATE TABLE DONATORI ( cod_donator NUMBER(5) PRIMARY KEY, nume_d VARCHAR2(15) NOT NULL, prenume_d VARCHAR2(20) NOT NULL, adresa_d VARCHAR2(50), email_d VARCHAR2(30), telefon_d VARCHAR2(15) NOT NULL, CONSTRAINT ck1 CHECK (email_d LIKE '%@%. %' ))

Fig.1 Crearea tabelei DONATORI

2. CREATE TABLE ADOPTANTI ( cod_adoptant NUMBER(5) PRIMARY KEY, nume_a VARCHAR2(15) NOT NULL, prenume_a VARCHAR2(20) NOT NULL, adresa_a VARCHAR2(50), email_a VARCHAR2(30), telefon_a VARCHAR2(15) NOT NULL, CONSTRAINT ck2 CHECK (email_a LIKE '%@%. %') )

Fig.2 Crearea tabelei ADOPTANTI

3. CREATE TABLE HRANA ( cod_hrana NUMBER(5) PRIMARY KEY, tip_hrana VARCHAR2(20), pret NUMBER(6,2), brand VARCHAR2(15) )

Fig.3 Crearea tabelei HRANA 4. CREATE TABLE VETERINARI ( cod_veterinar NUMBER(5) PRIMARY KEY, nume_v VARCHAR2(15) NOT NULL, prenume_v VARCHAR2(20) NOT NULL, adresa_v VARCHAR2(50), email_v VARCHAR2(30), telefon_v VARCHAR2(15), CONSTRAINT ck3 CHECK (email_v LIKE '%@%.%') )

Fig.4 Crearea tabelei VETERINARI 5. CREATE TABLE ANIMALE (cod_animal NUMBER(5) PRIMARY KEY, tip_animal VARCHAR2(10) NOT NULL, greutate NUMBER (6,2), sex VARCHAR2(1), descriere VARCHAR2(50), data_nasterii DATE, cod_donator NUMBER(5) REFERENCES DONATORI(cod_donator), cod_adoptant NUMBER(5) REFERENCES ADOPTANTI(cod_adoptant), cod_hrana NUMBER(5), CONSTRAINT fk1 FOREIGN KEY (cod_hrana) REFERENCES HRANA(cod_hrana) )

Fig.5 Crearea tabelei ANIMALE

6. CREATE TABLE CONSULTATII (cod_consultatie NUMBER(5), data_consultatiei DATE NOT NULL, diagnostic VARCHAR2(30), cod_animal NUMBER(5) REFERENCES ANIMALE(cod_animal), cod_veterinar NUMBER(5) REFERENCES VETERINARI(cod_veterinar), CONSTRAINT ck4 CHECK (cod_animal IS NOT NULL), CONSTRAINT ck5 CHECK (cod_veterinar IS NOT NULL) )

Fig.6 Crearea tabelei CONSULTATII

ACTUALIZAREA STRUCTURII TABELELOR

1. Cerina: S se modifice lungimea cmpului greutate din tabela ANIMALE astfel nct aceasta s fie de 5 caractere, dintre care : o virgul, dou caractere dupa virgul si nc dou nainte de virgul. ALTER TABLE ANIMALE MODIFY (greutate NUMBER(5,2)) nainte de executarea scriptului:

Dup executarea scriptului:

Fig.7 Modificarea cmpului greutate 2. Cerina: S se adauge n tabela CONSULTAII un cmp nou numit tratament de tip VARCHAR2(50). ALTER TABLE CONSULTATII ADD (tratament VARCHAR2(50))

nainte de executarea scriptului:

Dup executarea scriptului:

Fig.8 Adugarea coloanei tratament

3. Cerina: S se modifice coloana cod_donator din tabela ANIMALE astfel nct aceasta s nu poat lua valori NULL. ALTER TABLE ANIMALE MODIFY cod_donator NOT NULL nainte de executarea scriptului

Dup executarea scriptului:

Fig.9 Adugarea restriciei NOT NULL 4. Cerina: S se tearg cmpul tratament din tabela CONSULTAII. ALTER TABLE CONSULTATII DROP COLUMN tratament nainte de executarea scriptului:

Dup executarea scriptului:

Fig.10 tergerea coloanei tratament

5. Cerina: S se adauge o restricie cmpului adresa_v din tabela VETERINARI astfel nct acesta s conin cuvntul bucuresti i apoi s se dezactiveze aceast restricie. ALTER TABLE VETERINARI ADD CONSTRAINT r2 CHECK (LOWER(adresa_v) LIKE '%bucuresti%') Dup executarea scriptului, dac dorim s introducem o nregistrare nou n tabela VETERINARI care nu conine cuvntul bucuresti n cmpul adresa_v, va aprea o eroare:

Fig.11- Adugarea unei restricii check ALTER TABLE VETERINARI MODIFY CONSTRAINT r2 DISABLE;

6. Cerina: S se adauge o restricie de tip NOT NULL cu numele restrictie cmpului adresa_a din tabela ADOPTANTI, sa se redenumeasc aceast restricie n restr_adres i apoi s se tearg aceast restricie nouadugat. ALTER TABLE ADOPTANTI ADD CONSTRAINT restrictie CHECK (adresa_a IS NOT NULL) Dup executarea scriptului, dac dorim s introducem o nregistrare nou n tabela ADOPTANTI i voi lsa cmpul adresa_a necompletat, va aprea o eroare:

Fig.12 Adugarea unei restricii de tip NOT NULL Redenumirea restriciei: ALTER TABLE ADOPTANTI RENAME CONSTRAINT restrictie TO restr_adresa tergerea restriciei restr_adres: ALTER TABLE ADOPTANTI DROP CONSTRAINT restr_adresa 7. Cerina: S se tearg cmpul data_nasterii din tabela ANIMALE. nainte de executarea scriptului:

Dup executarea scriptului:

Fig.13 tergerea cmpului data_nasterii

ADUGAREA NREGISTRRILOR N TABELE

1. Tabela DONATORI INSERT INTO DONATORI VALUES (2000, 'Stancu', 'Andrei', 'Bvd Unirii nr 13 Bucuresti', '[email protected]', '0721234128') INSERT INTO DONATORI VALUES (2001, 'Grigore', 'Mihai', 'Bvd Aviatorilor nr 9 Bucuresti', '[email protected]', '0723456509') INSERT INTO DONATORI VALUES (2002, 'Enache', 'Ana', 'Strada Independentei nr 19 Bucuresti', '[email protected]', '0768675123') INSERT INTO DONATORI VALUES (2003, 'Popa', 'Gabriel', 'Strada Dreptatii nr 19 Bucuresti', '[email protected]', '0751876543') INSERT INTO DONATORI VALUES (2004, 'Rus', 'Claudia', 'Bvd 1 Decembrie 1918 nr 5 Brasov', '[email protected]', '0754776683') INSERT INTO DONATORI VALUES (2005, 'Ianc', 'Lavinia', 'Bvd Magheru nr 5 Iasi', '[email protected]', '0754976682') INSERT INTO DONATORI VALUES (2006, 'Enache', 'Andrei', 'Strada Aviatiei nr 19 Bucuresti', '[email protected]', '0768674123')

INSERT INTO DONATORI VALUES (2007, 'Ruben', 'Claudiu', 'Bvd Armatei nr 5 Brasov', '[email protected]', '0753556789') INSERT INTO DONATORI VALUES (2008, 'Morariu', 'Teodora', 'Bvd Protos nr 51 Iasi', '[email protected]', '0750786611') INSERT INTO DONATORI VALUES (2009, 'Enache', 'Claudia', 'Bvd 1 Decembrie 1918 nr 5 Brasov', '[email protected]', '0750566666') INSERT INTO DONATORI VALUES (2010, 'Enache', 'Remus', 'Strada 24 Ianuarie nr 19 Bucuresti', '[email protected]', '0768675001') INSERT INTO DONATORI VALUES (2011, 'Ianc', 'Madalina', 'Bvd Galati nr 5 Iasi', '[email protected]', '0754770081') INSERT INTO DONATORI VALUES (2012, 'Oprea', 'Mihai', 'Strada Oituz nr 12 Iasi', '[email protected]', '0767890100') INSERT INTO DONATORI VALUES (2013, 'Neag', 'Ciprian', 'Strada Oituz nr 15 Iasi', '[email protected]', '0765678901') INSERT INTO DONATORI VALUES (2014, 'Abos', 'Roxana', 'Bvd Pache protopopescu nr 3 Bucuresti', '[email protected]', '0765129063') n urma executrii comenzilor de inserare a datelor, tabela DONATORI conine urmtoarele nregistrri:

Fig.14 Inserarea datelor in tabela DONATORI

2. Tabela ADOPTANTI

INSERT INTO ADOPTANTI VALUES (3000, 'Stoica', 'Marian', 'Strada Trandafirilor nr 45 Bucuresti','[email protected]','0765872234') INSERT INTO ADOPTANTI VALUES (3001, 'Birsan', 'Alexandru',NULL, '[email protected]', '0765432190) INSERT INTO ADOPTANTI VALUES (3002, 'Andritoiu', 'Catalin', NULL, '[email protected]', '0723120986') INSERT INTO ADOPTANTI VALUES (3003, 'Suman', 'Andreea', NULL, '[email protected]', '0762098765') INSERT INTO ADOPTANTI VALUES (3004, 'Stoica', 'Andrei', 'Strada Papadiilor nr 43 Bucuresti', '[email protected]','0765850999') INSERT INTO ADOPTANTI VALUES (3005, 'Sandu', 'Cezara', 'Strada Maracineanu nr 7 Brasov', '[email protected]', '0756239871') INSERT INTO ADOPTANTI VALUES (3006, 'Dorobat', 'Alexandru', 'Bvd Dacia nr 38 Bucuresti', '[email protected]','0720009008') INSERT INTO ADOPTANTI VALUES (3007, 'Constantinescu', 'Adina', NULL, '[email protected]', '0757503519') INSERT INTO ADOPTANTI VALUES (3008, 'Coles', 'Andrei', 'Strada Mihail Moxa nr 1 Brasov', '[email protected]', '0720598264') INSERT INTO ADOPTANTI VALUES (3009, 'Popescu', 'Marius', 'Strada Saturn nr 10 Bucuresti', '[email protected]', '0741112113') INSERT INTO ADOPTANTI VALUES (3010, 'Salavastru', 'Ovidiu', 'Strada Maracinelor nr 75 Iasi', '[email protected]', '0750700213') INSERT INTO ADOPTANTI VALUES (3011, 'Onuta', 'Ramona', 'Strada Neptun nr 80 Brasov', '[email protected]', '0750999873') INSERT INTO ADOPTANTI VALUES (3012, 'Damian', 'Natalia', 'Strada Gorjului nr 65 Iasi', '[email protected]', '0729987654') INSERT INTO ADOPTANTI VALUES (3013, 'Dragota', 'Corina', 'Strada Timisorenilor nr 47 Brasov', '[email protected]', '0743933277') INSERT INTO ADOPTANTI VALUES (3014, 'Serbu', 'Ionut', 'Strada Rozelor nr 40 Bucuresti', '[email protected]','0765876665') n urma executrii comenzilor de inserare a datelor, tabela ADOPTANTI conine urmtoarele nregistrri:

Fig.15 Inserarea datelor n tabela ADOPTANTI

3. Tabela VETERINARI INSERT INTO VETERINARI VALUES(4000, 'Abusan', 'Alexandru', NULL, '[email protected]','0765654391') INSERT INTO VETERINARI VALUES(4001, 'Borcea', 'Cristian', 'Bvd Independentei nr 12 Sibiu', '[email protected]','0762652000') INSERT INTO VETERINARI VALUES(4002, 'Cristea', 'Andrei', 'Bvd Magheru nr 2 Sibiu', '[email protected]' ,'0726700901') INSERT INTO VETERINARI VALUES(4003, 'Paraschiv', 'Remus', 'Bvd Stefan cel Mare nr 28 Sibiu', '[email protected]','0720120891') INSERT INTO VETERINARI VALUES(4004, 'Cercel', 'Mihaela', 'Bvd Lascar Catargiu nr 49 Bucuresti', '[email protected]','0732671205') INSERT INTO VETERINARI VALUES(4005, 'Pop', 'Robert', NULL, '[email protected]', '0739871520') INSERT INTO VETERINARI VALUES(4006, 'Moraru', 'Iulian', 'Strada Aviatorilor nr 47 Iasi', '[email protected]','0757601832') INSERT INTO VETERINARI VALUES(4007, 'Pencea', 'Radu', 'Bvd Urzicii nr 90 Sibiu', '[email protected]','0751042050')

INSERT INTO VETERINARI VALUES(4008, 'Negru', 'Irina', NULL, '[email protected]','0730496238') INSERT INTO VETERINARI VALUES(4009, 'Ignat', 'Madalina', 'Strada Mihai Eminescu nr 22 Brasov', '[email protected]','0721376199') n urma executrii comenzilor de inserare a datelor, tabela VETERINARI conine urmtoarele nregistrri:

Fig.16 Inserarea datelor n tabela VETERINARI 4. Tabela HRANA INSERT INTO HRANA VALUES (5000, 'granulata', 20.5, 'Granulli') INSERT INTO HRANA VALUES (5001, 'lichida', 30.5, 'Healthy-Pet') INSERT INTO HRANA VALUES (5002, 'congelata', 40.5, 'Healthy-Pet') INSERT INTO HRANA VALUES (5003, 'cu multivitamine', 100.5, 'Forzza') INSERT INTO HRANA VALUES (5004, 'solida', 30.5, 'Healthy-Pet') INSERT INTO HRANA VALUES (5005, 'uscata', 50.5, 'Your-Pet') INSERT INTO HRANA VALUES (5006, 'conservata', 80.5, 'Healthy-Pet') INSERT INTO HRANA VALUES (5007, 'gatita', 20.5, 'Your-Pet') INSERT INTO HRANA VALUES (5008, 'bio', 30.5, 'Forzza') INSERT INTO HRANA VALUES (5009, 'seminte', 30.5, 'Granulli') n urma executrii comenzilor de inserare a datelor, tabela HRANA conine urmtoarele nregistrri:

Fig.17 Inserarea datelor n tabela HRANA

5. Tabela ANIMALE INSERT INTO ANIMALE VALUES (1000, 'caine', 5.6, 'm', 'negru', 2010, NULL, 5007) INSERT INTO ANIMALE VALUES (1001, 'pisica', 2.3, 'f', 'alba', 2010, NULL, 5006) INSERT INTO ANIMALE VALUES (1002, 'caine', 9.2, 'm', NULL, 2001, 3014, 5004) INSERT INTO ANIMALE VALUES (1003, 'canar', 0.5, 'f', 'culori: galben si verde', 2003, NULL, 5009) INSERT INTO ANIMALE VALUES (1004, 'hamster', 0.6, 'm', NULL, 2010, NULL, 5008) INSERT INTO ANIMALE VALUES (1005, 'papagal', 0.4, 'm', 'culori:rosu si verde', 2010, NULL, 5007) INSERT INTO ANIMALE VALUES (1006, 'caine', 4.5, 'f', NULL, 2000,3014,5002) INSERT INTO ANIMALE VALUES (1007, 'pisica', 3.6, 'm', 'neagra', 2002, 3014, 5000) INSERT INTO ANIMALE VALUES (1008, 'broasca', 1.6, 'f', NULL, 2004, 3008, 5001)

INSERT INTO ANIMALE VALUES (1009, 'hamster', 0.4, 'f', NULL, 2006, 3003, 5005) INSERT INTO ANIMALE VALUES (1010, 'veverita', 2.2, 'm', NULL, 2012, 3010, 5004) INSERT INTO ANIMALE VALUES (1011, 'caine', 7.6, 'f', 'alb, de talie inalta ', 2005, 3004, 5003) INSERT INTO ANIMALE VALUES (1012, 'sarpe', 1.6, 'm', 'maro, cu pete galbene', 2007, 3000, 5005) INSERT INTO ANIMALE VALUES (1013, 'veverita', 1.6, 'f', NULL, 2014, 3006, 5004) INSERT INTO ANIMALE VALUES (1014, 'caine', 8.6, 'm', 'alb, latos', 2011, 3001, 5003) INSERT INTO ANIMALE VALUES (1015, 'broasca', 1.3, 'f', NULL, 2009, 3002, 5001) INSERT INTO ANIMALE VALUES (1016, 'sarpe', 1.1, 'f', 'negru, cu dungi gri', 2008, 3005, 5006) INSERT INTO ANIMALE VALUES (1017, 'pisica', 10.1, 'm', 'gri inchis, cu ochii negri', 2013, 3007, 5006) INSERT INTO ANIMALE VALUES (1018, 'canar', 0.3, 'f', 'maro deschis cu dungi galbene', 2004, 3011, 5009) INSERT INTO ANIMALE VALUES (1019, 'papagal', 0.7, 'm', 'are dungi rosii', 2004, 3009, 5009) INSERT INTO ANIMALE VALUES (1020, 'hamster', 0.25, 'm', 'alb', 2007, 3013, 5000) INSERT INTO ANIMALE VALUES (1021, 'sarpe', 1.12, 'f', 'negru cu dungi albe', 2000, 3012, 5001) INSERT INTO ANIMALE VALUES (1022, 'pisica', 6.6, 'f', 'alba', 2000, 3005, 5000)

n urma executrii comenzilor de inserare a datelor, tabela ANIMALE conine urmtoarele nregistrri:

Fig.18 Inserarea datelor n tabela ANIMALE

6. Tabela CONSULTATII INSERT INTO CONSULTATII VALUES (6000,TO_DATE('15-NOI-2011','DD-MONYYYY') ,'leziune', 1001,4006) INSERT INTO CONSULTATII VALUES (6001,TO_DATE('14-OCT-2011','DD-MONYYYY'),'plaga deschisa',1002,4003) INSERT INTO CONSULTATII VALUES (6002,TO_DATE('01-NOI-2011','DD-MONYYYY'),'raie', 1010,4006) INSERT INTO CONSULTATII VALUES (6003,TO_DATE('19-SEP-2011','DD-MONYYYY'),'leziune la aripa dreapta', 1005,4006) INSERT INTO CONSULTATII VALUES (6004,TO_DATE('30-DEC-2011','DD-MONYYYY'),'arsura',1021,4003) INSERT INTO CONSULTATII VALUES (6005, TO_DATE('05-SEP-2011','DD-MONYYYY'),'intoxicatie',1001,4000) INSERT INTO CONSULTATII VALUES (6006, TO_DATE('27-AUG-2011','DD-MONYYYY'),'indigestie',1002,4006)

INSERT INTO CONSULTATII VALUES (6007, TO_DATE('20-SEP-2011','DD-MONYYYY'),'probleme cu vederea',1007,4009) INSERT INTO CONSULTATII VALUES (6008, TO_DATE('08-AUG-2011','DD-MONYYYY'),'leziune la aripa stanga',1005,4001) INSERT INTO CONSULTATII VALUES (6009,TO_DATE('30-NOI-2011','DD-MONYYYY'),'arsura', 1015,4003) n urma executrii comenzilor de inserare a datelor, tabela CONSULTATII conine urmtoarele nregistrri:

Fig.19 Inserarea datelor n tabela CONSULTATII

MODIFICAREA DATELOR

1. Cerina: S se ajusteze preul hranei care face parte din brand-ul Granulli cu 10 lei. UPDATE HRANA SET pret=pret+10 where lower(brand)='granulli' naintea execuiei scriptului:

Dup execuia scriptului:

Fig.20 Modificarea pretului

2. Cerina: S se modifice codul de hrana al serpilor cu acel cod de hrana care este reprezentativ pentru animalul cu codul 1008. UPDATE ANIMALE SET cod_hrana=(SELECT cod_hrana from ANIMALE where cod_animal =1008) WHERE tip_animal='sarpe' naintea execuiei scriptului:

Dup execuia scriptului:

Fig.21-Modificarea codului de hrana

3. Cerina: S se modifice emailul veterinarului cu codul 4007 cu valoarea: [email protected]. UPDATE VETERINARI SET email_v='[email protected]' WHERE cod_veterinar=4007 nainte de executarea scriptului:

Dup executarea scriptului:

Fig.22 Modificarea emailului

4. S se modifice numele veterinarilor astfel nct s apar cu litere mari pentru cei care au inut cel puin 2 consultaii.

UPDATE VETERINARI SET nume_v=UPPER(nume_v) WHERE cod_veterinar IN (select cod_veterinar from consultatii group by cod_veterinar having count(cod_consultatie)>=2) nainte de executarea scriptului:

Dup execuia scriptului:

Fig.23 Scrierea cu litere mari a unor date din anumite cmpuri 5. Cerina: S se modifice pretul hranei ce are codul 5001 cu cel mai mic pret din tabela HRANA. UPDATE HRANA SET pret=(select min(pret) from hrana) where cod_hrana=5001 naintea execuiei scriptului:

Dup execuia scriptului:

Fig.24 Modificarea unui pre cu cel mai mic pre din tabela

INTEROGRI VARIATE 1. Cerina: S se afieze numele veterinarilor care au consultat animale, codul consultaiilor asociate, precum i veterinarii care nu au participat la nici o consultaie. select v.nume_v, c.cod_consultatie from veterinari v, consultatii c where v.cod_veterinar=c.cod_veterinar(+)

Rezultat:

2. Cerina: S se afieze tipul hranei pentru animale n funcie de preul acesteia, astfel: Dac preul este < 40, s se afieze: hran cu preuri mici Dac preul este ntre 40 i 80, s se afieze: hran cu preuri medii Dac preul este > 80, s se afieze: hran cu preuri mari select pret, case when pret < 40 then 'hrana cu preturi mici' when pret between 40 and 80 then 'hrana cu preturi medii' else 'hrana cu preturi mari' end tip_de_hrana from hrana Rezultatul scriptului:

1. Cerina: S se afieze tipul animalelor in funie de tipul lor astfel: Dac tipul este caine, atunci s se afieze: cel mai bun prieten al omului Dac tipul este papagal, atunci s se afieze: animal care poate rosti cuvinte Dac tipul este sarpe, s se afieze: animal relativ periculos Altfel s se afieze:alt tip de animal

select tip_animal, decode(tip_animal, 'caine', 'cel mai bun prieten al omului','papagal','animal care poate rosti cuvinte','sarpe','animal relativ periculos','alt tip de animal') as tipuri_de_animale from animale Rezultatul scriptului este:

1. Cerina: S se afieze cte uniti din fiecare tip de hran au fost consumate pentru animalele nregistrate n baza de date. select h.tip_hrana, count(a.cod_hrana) as Nr_unitati from animale a, hrana h where a.cod_hrana=h.cod_hrana group by h.tip_hrana Rezultatul scriptului:

2. Cerina: S se afieze adoptanii n funcie de reeaua de telefonie mobil din care fac parte, astfel: Adoptantul nume poate fi in reteaua Orange (dac numrul de telefon ncepe cu 074 sau 075) /Cosmote( dac numrul de telefon ncepe cu 076)/Vodafone(dac numrul de telefon ncepe cu 072 sau 073). select 'Adoptantul '||nume_a||' este in reteaua de telefonie mobila Orange' AS RETEA from adoptanti where telefon_a LIKE ('075%') or telefon_a LIKE('074%') UNION select 'Adoptantul '||nume_a||' este in reteaua de telefonie mobila Vodafone' AS RETEA from adoptanti where telefon_a LIKE ('072%') OR telefon_a LIKE ('073%') UNION select 'Adoptantul '||nume_a||' este in reteaua de telefonie mobila Cosmote' AS RETEA from adoptanti where telefon_a LIKE ('076%') UNION select 'Adoptantul '||nume_a||' este intr-o reteaua de telefonie necunoscuta' AS RETEA from adoptanti where telefon_a LIKE ('071%') or telefon_a LIKE('077%') OR telefon_a LIKE ('078%') or telefon_a LIKE ('079%') Rezultatul scriptului:

3. Cerina: S se afieze codul si descrierea animalelor consultate, diagnosticul consultatiilor si numele veterinarilor care le-au consultat pentru animalele care au greutatea