Sunteți pe pagina 1din 10

MINISTERUL EDUCAIEI AL REPUBLICII MOLDOVA

UNIVERSITATEA DE STAT DIN MOLDOVA


FACULTATEA MATEMATIC I INFORMATIC


La disciplina: SGBD






A efectuat: Stavila Gheorghe A verificat: Siminel.V
Grupa: IA22


CHIINU 2013
Condiie :
Sa se creeze o baza de date in limbajul SQL pe tema Magazin de calculatoare,
folosindu-se toate instructiunile studiate in acest simestru.

Crearea tabelelor:


Furnizor
CREATE TABLE Furnizor
(
Cod INT PRIMARY KEY NULL ,
Nume_Furnizor VARCHAR2( 25 ) NULL,
Adresa VARCHAR2( 30 ) NULL,
Telefon VARCHAR2( 14 ) NULL,
Tara VARCHAR2( 10 ) NULL,
);
Factura
CREATE TABLE factura
(
ID_Factura INT PRIMARY KEY NULL ,
Data_cumparari DATE NULL ,
ID_produs INT NULL ,
ID_furniz INT NULL ,
ID_clien INT NULL ,
Pretul VARCHAR2( 10 ) NULL ,
TVA VARCHAR2( 5 ) NULL
);


Produse
CREATE TABLE Produse
(
Id_Produs INT PRIMARY KEY NULL ,
Nume_produs VARCHAR2( 25 ) NULL,
Import CHAR( 1 ) NULL,
Export CHAR( 1 ) NULL,
Calitate VARCHAR2( 25 ) NULL,
);


Client
CREATE TABLE "CLIENT"
( COD INT PRIMARY KEY NULL ,
NUME VARCHAR2(25),
PRENUME VARCHAR2(25),
ADRESA VARCHAR2(36),
ORAS VARCHAR2(25) DEFAULT 'Chisinau',
SEX CHAR(1),
DATA_NASTERII DATE,
TELEFON VARCHAR2(14),
);
Introducerea datelor:

Furnizor

INSERT INTO Furnizor (Cod, Nume_Furnizor, Adresa, Telefon,Tara) VALUES (10,'Ipon S.R.L.', 'Stefan Cel Mare
8/4','21-89-23','Moldova');

Produse

INSERT INTO produse (ID_Produs, Nume_produs, Import, Export, Calitate) VALUES (10, 'Toshiba N500', 'd', 'n',
'superioara');

Factura

INSERT INTO factura (ID_Factura, Data_cumparari,ID_produs, ID_furniz, ID_clien, Pretul, TVA) VALUES ('1',
'10/12/10', '2','3', '1', '2054$', '15%');

Client
INSERT INTO CLIENT(COD,NUME,PRENUME,ADRESA,SEX,DATA_NASTERII,TELEFON) values
(7,'Stratu','Alexandru','str Mihai Eminescu5/4','M','08/15/90','72-89-8');
Afisarea tabelelor cu ajutorul instructiunii Select *from <nume tabel>:
Client:


Furnizor


Produse
Factura


Crearea interogarilor:
Select:

select distinct NUME from client; select distinct NUME_PRODUS from produse;


select * from produse where calitate = 'Superioara';


select * from factura where tva ='15%';




Alter table:
Alter table client modify oras default 'Balti';

Table altered.

Select *from FURNIZOR Where tara='Uckraina' and ADRESA='str. 31 August 1989';


Select *from produse Where ID_PRODUS=4 or ID_PRODUS=2;


Select *from factura Where not id_produs=6;


Select *from factura Where ID_FURNIZ=5 and pretul<='3154$' ;


Update client set oras='Balti' where cod=4;
1 row(s) updated.








Select *from client where oras ='Balti' or oras='Chisinau';


Update produse set ID_PRODUS=4 ,import='d' where ID_PRODUS=6 and import ='n';


Select *from client Where extract (year from data_nasterii) between 1991 and 1995;


Select *from client Where extract (month from data_nasterii)=3;


Select *from produse Where nume_produs like '%s%'

Select *from factura Where ID_FACTURA Between 3 and 4;


Select count (Cod) as nr_cump from client where oras ='Chisinau' and nume like'R%';


select count (*) as nr_produse from produse ;


select *from client where telefon like '22%' and oras in('Chisinau','Balti') order by nume desc;


select *from client where extract(month from DATA_NASTERII) in (8,11) and extract(year
from DATA_NASTERII) in(1991,1989,1990) order by DATA_NASTERII asc;


select *from produse where pret>3000 and nume_produs in('Toshba','Lenova') ;


select oras,count(*) as nr_client from client group by oras;


select oras,count(*) as nr_client from client group by oras having count(*)>=2;


SELECT Furnizor.NUME_FURNIZOR, Furnizor.ADRESA, Factura.ID_FACTURA
FROM Furnizor
INNER JOIN Factura
ON Furnizor.cod=Factura.ID_FACTURA
ORDER BY Furnizor.ADRESA ;


SELECT Furnizor.NUME_FURNIZOR, Furnizor.ADRESA, Produse.ID_produs, Produse.NUME_PRODUS
FROM Furnizor
INNER JOIN produse
ON Furnizor.cod=Produse.ID_Produs where Produse.NUME_PRODUS like '%s%'
ORDER BY Furnizor.ADRESA ;


SELECT Furnizor.NUME_FURNIZOR, Furnizor.ADRESA, Produse.ID_produs, Produse.NUME_PRODUS
FROM Furnizor
INNER JOIN produse
ON Furnizor.cod=Produse.ID_Produs where Produse.NUME_PRODUS like '_%'
ORDER BY Furnizor.ADRESA ;









Triggere

Triggerul care afiseaza un mesaj dupa inserarea in tabelul Produse :

CREATE OR REPLACE TRIGGER produse_trig
BEFORE INSERT ON produse
BEGIN
dbms_output.put_line('triggerul s-a executat');
END;




Triggerul care la inserare (I),stergere (D) sau modificare (U) va inscri tipul oeratiei ,cine a facut modificarea si data acestei
modificari intr-un tabel:

CREATE OR REPLACE TRIGGER produse_trig_log

BEFORE INSERT or UPDATE or DELETE on produse
DECLARE
v_tip temp_log.tip%TYPE;
BEGIN
case
when INSERTING then v_tip :='I';
when UPDATING then v_tip:='U';
ELSE v_tip :='D';
END case;
INSERT INTO temp_log(tip, utilizator, data) VALUES (v_tip, user, sysdate);

END;








Secventa

CREATE SEQUENCE produse_secventa
START WITH 10
INCREMENT BY 1
MAXVALUE 1000
NOCYCLE;


Views

View care afiseaza toti clientii:

CREATE VIEW clientii AS
SELECT *FROM client;




View care afiseaza numele si telefonul clientilor:




Concluzie:

In urma crearii acestei baze de date am insusit sintactica limbajului SQL. Limbajul SQL este un limbaj complex cu
care avem o larga posibilitate de manipulare a datelor ceea ce este un mare avantaj in lumea care mereu este in
schimbare . Manipularea datelor se foloseste pe scara larga in mai multe domenii . Unul din aceste domenii este cazul
nostru si anume Administrarea cu marfuri a unui magazine commercial.