· 8 years ago · May 08, 2018, 09:48 PM
1#DAMIAN PAWLUK
2#179646
3
4#LISTA 2
5
6#DZIALA W MYSQL5.5 (SPRAWDZANO W MYSQL WORKBENCH)
7#SKRYPT WYKONUJE SIE W OK. MINUTE
8
9
10# ZADANIE 1
11DROP DATABASE IF EXISTS Sklep;
12
13CREATE DATABASE IF NOT EXISTS Sklep;
14
15USE Sklep;
16
17CREATE TABLE `Klient` (
18 `KlientID` int(11) NOT NULL AUTO_INCREMENT,
19 `Nazwa` char(30) NOT NULL,
20 `Miasto` char(20) DEFAULT NULL,
21 `Typ` enum('Indywidualny','Firma'),
22 PRIMARY KEY (`KlientID`)
23) ;
24CREATE TABLE `Produkt` (
25 `ProduktNumer` char(10) NOT NULL,
26 `ProduktNazwa` char(20) NOT NULL,
27 `Cena` float NOT NULL,
28 `Dostepnosc` tinyint(1) NOT NULL,
29 PRIMARY KEY (`ProduktNumer`)
30) ;
31
32CREATE TABLE `Sprzedaz` (
33`ID` INT NOT NULL AUTO_INCREMENT ,
34`KlientID` INT REFERENCES Klient(KlientID),
35`ProduktNumer` CHAR(10) REFERENCES Produkt(ProduktNumer),
36`Ilosc` INT NOT NULL,
37`Cena` FLOAT NOT NULL ,
38`Data` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
39PRIMARY KEY ( `ID` )
40);
41
42ALTER TABLE sprzedaz ADD CONSTRAINT d CHECK (Data > CURRENT_TIMESTAMP());
43
44ALTER TABLE sprzedaz ADD CONSTRAINT i CHECK (Ilosc > 0);
45
46
47#ZADANIE 2
48INSERT INTO Produkt VALUES('1','Zoladkowa Gorzka',25.0,1);
49INSERT INTO Produkt VALUES('2','Zubrowka',20.0,1);
50INSERT INTO Produkt VALUES('3','Krupnik Miodowy',17.0,1);
51INSERT INTO Produkt VALUES('4','Sobieski',25.0,1);
52INSERT INTO Produkt VALUES('5','Captain Morgan',50.0,1);
53INSERT INTO Produkt VALUES('6','Jack Danniels',105.0,1);
54INSERT INTO Produkt VALUES('7','Amarena',3.5,1);
55INSERT INTO Produkt VALUES('8','Bols',22.0,1);
56INSERT INTO Produkt VALUES('9','Chrobry',19.0,1);
57INSERT INTO Produkt VALUES('10','Cin Cin',25.0,1);
58
59INSERT INTO Klient VALUES('1','Zenek', 'Wroclaw', 'Indywidualny');
60INSERT INTO Klient VALUES('2','Marian', 'Wroclaw', 'Indywidualny');
61INSERT INTO Klient VALUES('3','Gienek', 'Wroclaw', 'Indywidualny');
62INSERT INTO Klient VALUES('4','Zbych', 'Wroclaw', 'Indywidualny');
63INSERT INTO Klient VALUES('5','Kaziu', 'Wroclaw', 'Indywidualny');
64INSERT INTO Klient VALUES('6','Bolek', 'Wroclaw', 'Indywidualny');
65INSERT INTO Klient VALUES('7','Kancelaria Prezydenta', 'Wroclaw', 'Firma');
66INSERT INTO Klient VALUES('8','MaxBud', 'Wroclaw', 'Firma');
67INSERT INTO Klient VALUES('9','Samorzad Studencki ', 'Wroclaw', 'Firma');
68INSERT INTO Klient VALUES('10','Politechnika Wroclawska', 'Wroclaw', 'Firma');
69
70
71#ZADANIE 3
72DELIMITER $$
73CREATE PROCEDURE generuj()
74 BEGIN
75 DECLARE inc INT;
76 DECLARE getIlosc INT;
77 DECLARE getKlient INT;
78 DECLARE getProdukt CHAR(10);
79
80 SET inc = 0;
81
82 WHILE inc < 1000 DO
83 SET getKlient = (SELECT KlientId FROM Klient ORDER BY rand() limit 1);
84 SET getProdukt = (SELECT ProduktNumer FROM Produkt ORDER BY rand() limit 1);
85 SET getIlosc = (SELECT FLOOR(rand()*10)) + 1;
86
87 INSERT INTO Sprzedaz (KlientId, ProduktNumer,Ilosc,Cena,Data)
88 VALUES (getKlient, getProdukt, getIlosc, getIlosc*(SELECT Cena FROM Produkt WHERE ProduktNumer = getProdukt), NOW());
89
90 SET inc = inc + 1;
91
92 END WHILE;
93END $$
94DELIMITER ;
95call generuj()