Sunteți pe pagina 1din 5

-- TEMA: Magazin online de instrumente muzicale.

-- Crearea bazei de date si activarea acesteia

create database dtbMagazinInstrumente


use dtbMagazinInstrumente

go

-- Crearea tabelului tClienti

create table tClienti


(codClient char(10) constraint PK_Clienti primary key,
nume varchar(20) not null,
prenume varchar(20) not null,
judet varchar(30),
localitate varchar(30),
strada varchar(40),
telefon char(10),
email varchar(30)
)

-- Crearea tabelului tCategorii

create table tCategorii


(idCategorie char(10) constraint PK_Categorii primary key,
nume varchar(40) not null
)

-- Crearea tabelului tProduse

create table tProduse


(codProdus char(10) constraint PK_Produse primary key,
denumire varchar(40) not null,
idCategorie char(10) not null constraint FK_CatProduse foreign key references
tCategorii(idCategorie),
producator varchar(20),
pretUnitar float not null,
stoc varchar(20) not null constraint CK_Stoc check(stoc in('In stoc', 'Stoc
limitat', 'Stoc epuizat'))
)

-- Crearea tabelului tComenzi

create table tComenzi


(nrComanda int not null constraint PK_Comenzi primary key,
codClient char(10) not null constraint FK_ClientComanda foreign key references
tClienti(codClient),
codProdus char(10) not null constraint FK_ProdusComanda foreign key references
tProduse(codProdus),
cantitate tinyint,
modPlata varchar(20) not null
)

-- Crearea tabelului tFacturi

create table tFacturi


(codFactura char(10) not null constraint PK_Facturi primary key,
serie varchar(10) not null,
numar smallint not null,
dataComenzii smalldatetime constraint df_data default getdate(),
total float not null,
TVA float not null,
codClient char(10) not null constraint FK_ClientFactura foreign key references
tClienti(codClient)
)

go

-- Inserarea de date in tabele

insert into tClienti


values ('C1', 'Popescu', 'Ion', 'Iasi', 'Lungani', 'Strada Principala',
'0735127324', 'popescuion@gmail.com'),
('C2', 'Dumitrescu', 'Radu', 'Brasov', 'Predeal', 'Strada Plopului',
'0788914420', 'dumitrescuradu123@yahoo.com'),
('C3', 'Zamfir', 'Maria', 'Olt', 'Slatina', 'Strada Livezii',
'0745261831', 'zamfirmaria21@gmail.com'),
('C4', 'Ciobanu', 'Alin', 'Arges', 'Mioveni', 'Strada Liviu Rebreanu',
'0724516649', 'alinciobanu55@yahoo.com'),
('C5', 'Oancea', 'Sebastian', 'Bucuresti', 'Sectorul 3', 'Strada
Gradinarilor', '0752331776', 'oanceasebastian22@gmail.com'),
('C6', 'Petrescu', 'Bogdan', 'Brasov', 'Brasov', 'Strada 13 Decembrie',
'0764190882', 'bogdanpetrescu81@gmail.com'),
('C7', 'Iancu', 'Andreea', 'Sibiu', 'Medias', 'Strada Ciresilor',
'0720689943', 'andreeaiancu19@yahoo.com'),
('C8', 'Stelian', 'Florin', 'Cluj', 'Turda', 'Strada Atelierului',
'0743551897', 'florin.stelian@gmail.com'),
('C9', 'Tanase', 'Nicolae', 'Arges', 'Pitesti', 'Strada Garoafelor',
'0758991043', 'tanasenicolae98@yahoo.com'),
('C10', 'Oprea', 'Andrei', 'Cluj', 'Gherla', 'Strada Fierarilor',
'0750771282', 'andreioprea@gmail.com')

insert into tCategorii


values ('CL', 'Instrumente cu clape'),
('CO', 'Instrumente cu coarde'),
('S', 'Instrumente de suflat'),
('P', 'Instrumente de percutie'),
('A', 'Altele')

insert into tProduse


values ('P1', 'Pian digital Yamaha Arius YDP-144', 'CL', 'Yamaha', 3466, 'In
stoc'),
('P2', 'Vioara Gliga AW-V014', 'CO', 'Gliga', 740, 'In stoc'),
('P3', 'Clarinet Venus CB-320', 'S', 'Venus', 1645, 'Stoc epuizat'),
('P4', 'Set tobe Pearl ELX805', 'P', 'Pearl', 2392, 'Stoc limitat'),
('P5', 'Sintetizator Roland Juno DS61', 'CL', 'Roland', 3170.5, 'In
stoc'),
('P6', 'Chitara clasica Yamaha CGS104A II', 'CO', 'Yamaha', 626, 'Stoc
limitat'),
('P7', 'Pianina Yamaha B3', 'CL', 'Yamaha', 24680, 'Stoc epuizat'),
('P8', 'Cablu Roland Jack Jack 6.3mm 1.5m', 'A', 'Roland', 64, 'In stoc'),
('P9', 'Stativ Note Gewa FX', 'A', 'Gewa', 60, 'Stoc epuizat'),
('P10', 'Chitara Bas Yamaha TRBX 605 FM', 'CO', 'Yamaha', 3398, 'Stoc
limitat'),
('P11', 'Saxofon Alto Conn AS650', 'S', 'Conn', 3410, 'In stoc'),
('P12', 'Set Tobe Acustice Dimavery DS 200', 'P', 'Dimavery', 1449, 'In
stoc'),
('P13', 'Casti Roland RH-200', 'A', 'Roland', 480, 'In stoc'),
('P14', 'Pian Digital Kawai ES 8', 'CL', 'Kawai', 6026, 'Stoc limitat'),
('P15', 'Set vioara Valida V100', 'CO', 'Valida', 370, 'In stoc')

insert into tComenzi


values (1, 'C2', 'P6', 1, 'card de credit'),
(2, 'C5', 'P2', 1, 'ramburs'),
(3, 'C8', 'P15', 1, 'transfer bancar'),
(4, 'C1', 'P1', 1, 'paypal'),
(5, 'C10', 'P13', 2, 'ramburs'),
(6, 'C3', 'P10', 1, 'card de credit'),
(7, 'C4', 'P11', 1, 'ordin de plata'),
(8, 'C9', 'P5', 1, 'ramburs'),
(9, 'C6', 'P8', 3, 'paypal'),
(10, 'C7', 'P14', 1, 'transfer bancar'),
(11, 'C3', 'P15', 1, 'paypal'),
(12, 'C5', 'P10', 1, 'card de credit')

insert into tFacturi(codFactura, serie, numar, total, TVA, codClient)


values ('F1', 'AAA', 100, 626, 118, 'C2'),
('F2', 'AAB', 101, 740, 140, 'C5'),
('F3', 'ABB', 102, 370, 70, 'C8'),
('F4', 'BBB', 103, 3466, 658, 'C1'),
('F5', 'AAB', 104, 960, 182, 'C10'),
('F6', 'AAA', 105, 3398, 646, 'C3'),
('F7', 'BAA', 106, 3410, 648, 'C4'),
('F8', 'AAB', 107, 3170.5, 602.3, 'C9'),
('F9', 'BBB', 108, 192, 36.4, 'C6'),
('F10', 'ABB', 109, 6026, 1145, 'C7'),
('F11', 'BBB', 110, 370, 70, 'C3'),
('F12', 'AAA', 111, 3398, 646, 'C5')

go

-- Sa se creeze tabelul tYamaha cu clientii care au comandat produse fabricate de


Yamaha

select A.codClient, C.codProdus, nume, prenume, denumire


into tYamaha
from tClienti as A inner join tComenzi as B on A.codClient=B.codClient
inner join tProduse as C on B.codProdus=C.codProdus
where producator='Yamaha'

-- Sa se afiseze tabelul tYamaha

select * from tYamaha

-- Sa se stearga continutul tabelului tYamaha

truncate table tYamaha


-- Sa se adauge tabelului tYamaha constrangerea primary key

alter table tYamaha


add constraint PK_Yamaha primary key (codClient,codProdus)

-- Sa se insereze in tabelul tYamaha clientii care au comandat produse fabricate de


Yamaha

insert into tYamaha


select A.codClient, C.codProdus, nume, prenume, denumire
from tClienti as A inner join tComenzi as B on A.codClient=B.codClient
inner join tProduse as C on B.codProdus=C.codProdus
where producator='Yamaha'

select * from tYamaha

-- Sa se afiseze toate comenzile facute de clientul C5

select * from tComenzi


where codClient='C5'

-- Sa se mareasca pretul produselor din categoria instrumentelor de suflat cu 50 de


lei

update tProduse
set pretUnitar=pretUnitar+50
where idCategorie='S'

select * from tProduse


where idCategorie='S'

-- Sa se afiseze produsele fabricate de Roland care fac parte din categoria


'Altele'

select codProdus, denumire, A.idCategorie, producator


from tProduse as A
inner join tCategorii as B on A.idCategorie=B.idCategorie
where nume='Altele' and producator='Roland'

-- Sa se creeze tabelul tInstrumenteClape cu clientii care au comandat produse din


categoria 'Instrumente cu clape'

select A.codClient, C.codProdus, C.denumire, nume, prenume


into tInstrumenteClape
from tClienti as A inner join tComenzi as B on A.codClient=B.codClient
inner join tProduse as C on B.codProdus=C.codProdus
where idCategorie='CL'

select * from tInstrumenteClape


-- Sa se stearga continutul tabelului tInstrumenteClape folosind delete

delete tInstrumenteClape

select * from tInstrumenteClape

-- Sa se stearga tabelul tInstrumenteClape

drop table tInstrumenteClape

-- Sa se modifice statusul stocului in 'Stoc limitat' tuturor produselor din


categoria 'Instrumente cu coarde'

update tProduse
set stoc='Stoc limitat'
where idCategorie in (select idCategorie from tCategorii where nume='Instrumente cu
coarde')

select codProdus, denumire, A.idCategorie, stoc


from tProduse as A
inner join tCategorii as B on A.idCategorie=B.idCategorie
where nume='Instrumente cu coarde'

S-ar putea să vă placă și