Beruflich Dokumente
Kultur Dokumente
Ion ion
Grupa 1024
I)CREATE
CREATE TABLE angajati(cod_angajat VARCHAR2(20) primary key, cnp
NUMBER(13), nume VARCHAR2(25), prenume VARCHAR2(25), adresa
VARCHAR2(100), functie VARCHAR2(20), email VARCHAR2(30));
CREATE TABLE produse(cod_produs VARCHAR2(20) primary key, pret
NUMBER(8,2), denumire VARCHAR2(50));
II) ALTER
ALTER TABLE angajati ADD(nr_telefon NUMBER(20));
ALTER TABLE clienti ADD(email VARCHAR2(50));
III) INSERT
ANGAJATI
INSERT INTO angajati
VALUES(100,'2900212998812','Androne','Maria','Bucuresti','Manager','andronem@yaho
o.com','0732322111');
INSERT INTO angajati
VALUES(101,'2581212324213','Ion','Adriana','Bucuresti','Director
vanzari','ionadriana@yahoo.com','0786437218');
INSERT INTO angajati
VALUES(102,'1758329041938','Bogdan','Mihai','Ploiesti','Gestionar','bogdanm@yahoo.c
om','0734953033');
INSERT INTO angajati
VALUES(103,'1881223348596','Moise','Alin','Buftea','Gestionar','moisealin@yahoo.com'
,'0723425433');
INSERT INTO angajati
VALUES(104,'1678337829543','Preda','Cosmin','Bucuresti','Asistent
vanzari','predacosmin@yahoo.com','0743978233');
INSERT INTO angajati
VALUES(105,'2599382839120','Ionescu','Laura','Bucuresti','Asistent
manager','ionesculaura@yahoo.com','0754938544');
INSERT INTO angajati
VALUES(106,'2873384783901','Popescu','Andreea','Ploiesti','Gestionar','popescua@ya
hoo.com','0787893847');
INSERT INTO angajati
VALUES(107,'2553254321234','Mihai','Georgiana','Giurgiu','Consilier
vanzari','mihaigeo@yahoo.com','0738938433');
INSERT INTO angajati
VALUES(108,'1784372839128','Moraru','Daniel','Ploiesti','Asistent
manager','morarudaniel@yahoo.com','0722763456');
PRODUSE
INSERT INTO produse VALUES(prod1,'8','Coca-cola');
INSERT INTO produse VALUES(prod2,'3','Apa plata Dorna');
INSERT INTO produse VALUES(prod3,'15','Santal de portocale');
INSERT INTO produse VALUES(prod4,'10','Cappy de piersici');
INSERT INTO produse VALUES(prod5,'50','Alexandrion');
INSERT INTO produse VALUES(prod6,'120','Whiskey Jack Daniels');
INSERT INTO produse VALUES(prod7,'9','Bere Burger');
INSERT INTO produse VALUES(prod8,'12','Bere Salitos');
INSERT INTO produse VALUES(prod9,'40','Campari');
INSERT INTO produse VALUES(prod10,'75','Vodka Absolut');
INSERT INTO produse VALUES(prod11,'90','Tequila Sauza');
CLIENTI
INSERT INTO clienti VALUES(1,'Miron','Mihai','0734567895','Strada Morii,nr
5,Buzau','mironmihai@gmail.com');
INSERT INTO clienti VALUES(2,'Costache','Cristian','0743212324','Strada Mihai
Eminescu,nr 22,Bucuresti','cristianc@gmail.com');
INSERT INTO clienti VALUES(3,'Lupu','Adrian','0733245673','Strada Mihai Bravu,nr
10,Bucuresti','lupuadrian@gmail.com');
INSERT INTO clienti VALUES(4,'Sin','George','0722345654','Strada Cercetatorilor,nr
18,Ploiesti','singeo@yahoo.com');
VANZARI
INSERT INTO vanzari
VALUES('102','1','prod8','250',to_date('10.03.2013','dd.mm.yyyy'));
ARHIVA
INSERT INTO arhiva
VALUES('arhiva1','prod8','1','250',to_date('10.03.2013','dd.mm.yyyy'));
INSERT INTO arhiva
VALUES('arhiva2','prod2','5','100',to_date('25.03.2013','dd.mm.yyyy'));
INSERT INTO arhiva
VALUES('arhiva3','prod10','7','50',to_date('30.03.2013','dd.mm.yyyy'));
INSERT INTO arhiva
VALUES('arhiva4','prod1','10','25',to_date('02.04.2013','dd.mm.yyyy'));
INSERT INTO arhiva
VALUES('arhiva5','prod14','11','80',to_date('15.04.2013','dd.mm.yyyy'));
INSERT INTO arhiva
VALUES('arhiva6','prod5','8','50',to_date('19.04.2013','dd.mm.yyyy'));
IV)UPDATE
1) Sa se modifice tabela clienti astfel incat numele sa fie scris cu majuscule.
UPDATE clienti SET nume=UPPER(nume);
11 rows updated.
V)Interogari variate
1)Sa se afiseze cantitatea medie
vanduta in fiecare luna.
SELECT extract(month from
data_vanzarii) AS Luna,
ROUND(AVG(cantitate),2)AS
cantitate_medie FROM vanzari
WHERE extract(month from
data_vanzarii)>2 GROUP BY
extract(month from data_vanzarii);
4)Sa se afiseze produsele care au pretul intre 9 si 100 excluzandu-le pe cele care au
pretul de 50 si 75.
SELECT * FROM produse WHERE pret BETWEEN 9 AND 100 MINUS SELECT *
FROM produse WHERE pret IN(50,75);
5)Sa se afiseze in cazul in care pretul produsului este sub 8 ca acesta este ieftin, daca
este intre 8 si 20 este mediu, iar peste 20 este scump.
SELECT denumire, pret, CASE WHEN pret_produs<8 then 'produs ieftin' WHEN
pret_produs BETWEEN 8 and 20 then 'produs mediu' WHEN pret_produs>20 then
'produs scump' END tip_produs FROM produse p, vanzari v where
p.cod_produs=v.cod_produs;
8)Sa se afiseze pretul si produsul al carui cantitate este vanduta peste 70 si pretul
acestuia este mai mic de 25.
Select denumire, pret, cantitate from vanzari v, produse p where
p.cod_produs=v.cod_produs and v.cantitate>70 minus Select denumire, pret, cantitate
FROM vanzari v, produse p where p.cod_produs=v.cod_produs and p.pret<25;
p.cod_produs=v.cod_produs;
VEDERI
1)Sa se creeze o tabela virtuala cu toti angajatii care sunt din Ploiesti si au vandut
prod2.
CREATE VIEW ang_ploiesti AS SELECT a.* FROM angajati a, vanzari v, produse p
WHERE a.cod_angajat=v.cod_angajat AND v.cod_produs=p.cod_produs AND
a.oras='Ploiesti';
2)Sa se creeze o tabela virtuala cu toate produsele ale caror pret este mai mare sau
egal cu 70.
INDECSI
1)Sa se creeze un index care sa contina numele si prenumele angajatilor.
CREATE INDEX numeprenume ON angajati (nume,prenume);
SINONIME
1)Sa se creeze un sinonim pentru tabela arhiva.
CREATE SYNONYM arhiva_sinonim FOR arhiva;
SECVENTE
1)Sa se creeze o secventa pt a genera valori pt cheia primara din tabela clienti
incepand cu valoarea 10 doar numere impare pana la valoarea 250.
CREATE SEQUENCE secv_clienti START WITH 10 INCREMENT BY 1 MAXVALUE
250 NOCYCLE;
CLUSTER
1)Sa se creeze un cluster produse_cluster care sa contina denumirea produsului si
pretul produsului.
CREATE CLUSTER produse_cluster(denumire_prod VARCHAR2(20),pret_prod
NUMBER(5.2));
CREATE INDEX prod_cluster_ind ON cluster produse_cluster;
CREATE TABLE produse1(cod_produs VARCHAR2(20) primary key, denumire
VARCHAR2(25)) CLUSTER produse_cluster (denumire_prod,pret_prod);
TABELE PARTITIONATE
1)Sa se creeze o tabela partitionata numita vanzari care sa se incadreze in partitiile 50
si 250.
CREATE TABLE vanzari_part(cod_angajat NUMBER(4) primary key, cod_produs
VARCHAR2(30), cantitate VARCHAR(30)) PARTITION BY RANGE (cantitate)
(PARTITION Cat1 values less than (10), PARTITION Cat2 values less than (100),
PARTITION Cat3 values less than (250));