· 8 years ago · May 26, 2018, 06:10 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 default '2018-05-26'
35
36)$$
37
38delimiter ;
39
40insert into Produkt values ( '154', 'spodnie', 79.90, 1);
41insert into Produkt values ( '298', 'koszula', 89.90, 1);
42insert into Produkt values ( '314', 'skarpetki', 25.90, 0);
43insert into Produkt values ( '336', 'spodnica', 55.90, 1);
44insert into Produkt values ( '547', 'sukienka', 129.90, 1);
45insert into Produkt values ( '465', 'krawat', 99.90, 0);
46insert into Produkt values ( '378', 'marynarka', 179.90, 1);
47insert into Produkt values ( '223', 'sweter', 69.90, 0);
48insert into Produkt values ( '113', 'bluzka' , 49.90, 1);
49insert into Produkt values ( '102', 'torebka', 229.90, 1);
50
51insert into Klient (Nazwa, Miasto, Typ) values ('Kowalski_Jan', 'Wrocław', 'Indywidualny');
52insert into Klient (Nazwa, Miasto, Typ) values ('Wojcik_Sylwia', 'Poznań', 'Indywidualny');
53insert into Klient (Nazwa, Miasto, Typ) values ('Nowak_Ewa', 'Gdansk', 'Indywidualny');
54insert into Klient (Nazwa, Miasto, Typ) values ('Butik_Ani', 'Wroclaw', 'Firma');
55insert into Klient (Nazwa, Miasto, Typ) values ('Moda', 'Gdanska', 'Firma');
56insert into Klient (Nazwa, Miasto, Typ) values ('Modne_ubrania', 'Gdynia', 'Firma');
57insert into Klient (Nazwa, Miasto, Typ) values ('Butik_u_Oli', 'Gdynia', 'Firma');
58insert into Klient (Nazwa, Miasto, Typ) values ('Wozniak_Alicja', 'Warszawa', 'Indywidualny');
59insert into Klient (Nazwa, Miasto, Typ) values ('Czerwona_Torebka', 'Warszawa', 'Firma');
60insert into Klient (Nazwa, Miasto, Typ) values ('Obuwie', 'Warszawa', 'Firma');
61
62select * from Produkt;
63select * from Klient;
64
65drop procedure if exists generowanie;
66DELIMITER $$
67create procedure generowanie()
68begin
69declare i int default 0;
70declare Numer int;
71while i < 500 do
72-- sprawdzenie, czy produkt jest dostępny
73 set Numer = (select ProduktNumer from Produkt where ProduktNumer not in
74 (select ProduktNumer from Produkt where Dostępność = 0) order by rand() limit 1);
75 insert into Sprzedaż(KlientId, ProduktNumer, Ilość, Cena, Data) values
76 ((select KlientID from Klient order by rand() limit 1),
77 Numer, (select ROUND(RAND()*30,0)), Ilość*(select Cena from Produkt where Produkt.ProduktNumer = Numer),
78 CURRENT_DATE());
79 set i = i + 1;
80end while;
81end$$
82DELIMITER ;
83
84CALL Procedura()