· 8 years ago · May 29, 2018, 08:36 PM
1drop database if exists sklep;
2create database sklep;
3use sklep;
4
5drop table if exists Produkt;
6drop table if exists Klient;
7drop table if exists Sprzedaz;
8
9
10delimiter $$
11CREATE TABLE Produkt (
12 ProduktNumer char(45) primary key,
13 ProduktNazwa char(45) not NULL,
14 Cena float not NULL,
15 Dostępność bit not null
16 )$$
17
18delimiter $$
19CREATE TABLE Klient (
20 KlientId int not NULL auto_increment, primary key(KlientId),
21 Nazwa char(45) not null,
22 Miasto char(45),
23 Typ char(45) not null CHECK (Typ = 'Indywidualny' OR Typ = 'Firma')
24 )$$
25
26delimiter $$
27CREATE TABLE `Sprzedaz` (
28 `Id` int auto_increment,
29 primary key(Id),
30 KlientId int, foreign key (KlientId) references Klient (KlientId),
31 ProduktNumer char(45), foreign key (ProduktNumer) references Produkt (ProduktNumer),
32 Ilosc int not null CHECK (Ilosc>0),
33 Cena float not null,
34 `Data` date check(CURDATE()) #'2018-05-26'
35)$$
36
37delimiter ;
38
39insert into Produkt values ( '154', 'spodnie', 79.90, 1);
40insert into Produkt values ( '298', 'koszula', 89.90, 1);
41insert into Produkt values ( '314', 'skarpetki', 25.90, 0);
42insert into Produkt values ( '336', 'spodnica', 55.90, 1);
43insert into Produkt values ( '547', 'sukienka', 129.90, 1);
44insert into Produkt values ( '465', 'krawat', 99.90, 0);
45insert into Produkt values ( '378', 'marynarka', 179.90, 1);
46insert into Produkt values ( '223', 'sweter', 69.90, 0);
47insert into Produkt values ( '113', 'bluzka' , 49.90, 1);
48insert into Produkt values ( '102', 'torebka', 229.90, 1);
49
50insert into Klient (Nazwa, Miasto, Typ) values ('Kowalski_Jan', 'Wrocław', 'Indywidualny');
51insert into Klient (Nazwa, Miasto, Typ) values ('Wojcik_Sylwia', 'Poznań', 'Indywidualny');
52insert into Klient (Nazwa, Miasto, Typ) values ('Nowak_Ewa', 'Gdansk', 'Indywidualny');
53insert into Klient (Nazwa, Miasto, Typ) values ('Butik_Ani', 'Wroclaw', 'Firma');
54insert into Klient (Nazwa, Miasto, Typ) values ('Moda', 'Gdanska', 'Firma');
55insert into Klient (Nazwa, Miasto, Typ) values ('Modne_ubrania', 'Gdynia', 'Firma');
56insert into Klient (Nazwa, Miasto, Typ) values ('Butik_u_Oli', 'Gdynia', 'Firma');
57insert into Klient (Nazwa, Miasto, Typ) values ('Wozniak_Alicja', 'Warszawa', 'Indywidualny');
58insert into Klient (Nazwa, Miasto, Typ) values ('Czerwona_Torebka', 'Warszawa', 'Firma');
59insert into Klient (Nazwa, Miasto, Typ) values ('Obuwie', 'Warszawa', 'Firma');
60
61select * from Produkt;
62select * from Klient;
63select * from sprzedaz;
64
65drop procedure if exists generowanie;
66DELIMITER $$
67create procedure generowanie()
68begin
69declare i int default 0;
70declare ProdNr int;
71while i < 1000 do
72-- sprawdzenie, czy produkt jest dostępny
73 set ProdNr = (select ProduktNumer from Produkt where ProduktNumer not in
74 (select ProduktNumer from Produkt where Dostępność = 0) order by rand() limit 1);
75
76 insert into Sprzedaz(KlientId, ProduktNumer, Ilosc, Cena) values
77 ((select KlientID from Klient order by rand() limit 1),
78 ProdNr, (select ROUND(RAND()*25,0)), Ilosc*(select Cena from Produkt where Produkt.ProduktNumer = ProdNr));
79 set i = i + 1;
80end while;
81end$$
82DELIMITER ;
83
84CALL generowanie()