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

FROM Furnizor
INNER JOIN Factura
ON Furnizor.cod=Factura.ID_FACTURA

FROM Furnizor
INNER JOIN produse
ON Furnizor.cod=Produse.ID_Produs where Produse.NUME_PRODUS like '%s%'

FROM Furnizor
INNER JOIN produse
ON Furnizor.cod=Produse.ID_Produs where Produse.NUME_PRODUS like '_%'

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
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.

Meniu subsol

Obține aplicațiile noastre gratuite

Drepturi de autor © 2022 Scribd Inc.