· 7 years ago · Feb 27, 2019, 09:00 PM
1drop table if exists Produkty cascade;
2create table Produkty (
3 kod_produktu numeric(6) constraint pk_prod primary key,
4 nazwa varchar(250) not null,
5 cena_netto numeric(6,2) not null,
6 vat numeric(3,1) not null,
7 waga numeric(6) not null,
8 kategoria varchar(250) not null,
9 rabat numeric(3,1), -- opcjonalny
10
11 check (vat >= 0),
12 check (cena_netto >= 0),
13 check (rabat is null or rabat >= 0)
14);
15
16drop table if exists Klienci cascade;
17create table Klienci (
18 id_klienta numeric(6) constraint pk_kli primary key,
19 nazwa varchar(250) not null,
20 numer_telefonu varchar(25), -- opcjonalny,
21 email varchar(100), -- opcjonalny
22 nip char(10) -- opcjonalny
23
24 check (numer_telefonu is not null or email is not null)
25);
26
27drop table if exists Zamowienia cascade;
28create table Zamowienia (
29 id_zamowienia numeric(8) constraint pk_zam primary key,
30 id_klienta numeric(6) constraint fk_zam_kli references Klienci(id_klienta) not null,
31 adres_dostawy varchar(500) not null,
32 data_zlozenia date not null default now()
33);
34
35drop table if exists Produkty_Zamowienia cascade;
36create table Produkty_Zamowienia (
37 produkt numeric(6) constraint fk_prod_zam references Produkty(kod_produktu) not null,
38 id_zamowienia numeric(8) constraint fk_zam_prod references Zamowienia(id_zamowienia) not null,
39 ilosc numeric(8) not null
40
41 check (ilosc > 0),
42 primary key (produkt, id_zamowienia)
43);
44
45drop table if exists Ceny_Dostaw cascade;
46create table Ceny_Dostaw (
47 waga_zamowienia numrange constraint pk_cen_dos primary key,
48 cena_dostawy numeric(6,2) not null
49
50 check (cena_dostawy >= 0)
51);
52
53insert into Produkty values
54 (101, 'Gilotyna do papieru', 219.99, 18.0, 3500, 'Gilotyny i trymery'),
55 (102, 'Dziurkacz metalowy duży', 59.99, 18.0, 1300, 'Dziurkacze'),
56 (103, 'Dziurkacz metalowy mały', 29.99, 18.0, 700, 'Dziurkacze'),
57 (201, 'Identyfikator personalny', 6.40, 8.0, 350, 'Identyfikatory i pieczatki'),
58 (202, 'Identyfikator magnetyczny', 54.99, 8.0, 320, 'Identyfikatory i pieczatki'),
59 (501, 'Pieczatka imienna', 12.99, 18.0, 400, 'Identyfikatory i pieczatki'),
60 (601, 'Spinacze biurowe 1000 sztuk', 8.90, 0.0, 200, 'Spinacze i zszywacze'),
61 (603, 'Zszywacz duży', 69.00, 0.0, 2700, 'Spinacze i zszywacze'),
62 (701, 'Piórnik duży', 12.00, 0.0, 500, 'Inne'),
63 (801, 'Wizytownik skórzany duży', 36.00, 8.0, 1200, 'Artykuły papiernicze'),
64 (802, 'Notatnik A6', 11.0, 18.0, 800, 'Artykuły papiernicze'),
65 (803, 'Czarna mata na biurko', 19.0, 22.0, 2500, 'Inne'),
66 (901, 'Ołówki z gumką 15 sztuk', 15.99, 0.0, 360, 'Artykuły piśmiennicze'),
67 (902, 'Gumki do mazania sztuk 3', 8.99, 18.0, 470, 'Artykuły piśmiennicze');
68
69insert into Produkty (kod_produktu, nazwa, cena_netto, vat, waga, kategoria, rabat) values
70 (301, 'Kasetka metalowa mała', 85.99, 18.0, 1000, 'Inne', 20.0),
71 (401, 'Nożyczki uniwersalne 21cm', 29.99, 0.0, 200, 'Nożyczki', 33.3),
72 (502, 'Przybornik drewniany na biurko', 109.00, 22.0, 2700, 'Inne', 15.0),
73 (602, 'Taśma klejąca akrylowa 50 sztuk', 49.68, 8.0, 650, 'Inne', 50.0),
74 (702, 'Długopis niebieski 3 sztuki', 8.00, 18.0, 30, 'Artykuły piśmiennicze', 15),
75 (1001, 'Papier biurowy A4 ryza', 13.99, 18.0, 3600, 'Artykuły papiernicze', 40.0);
76
77insert into Klienci (id_klienta, nazwa, numer_telefonu, email) values
78 (101, 'Mariusz Nowak', '(+48) 505 23 22 12', 'mnowak@gmail.com');
79
80insert into Klienci (id_klienta, nazwa, numer_telefonu) values
81 (102, 'Joanna Stępień', '(+48) 32 256 66 97');
82
83insert into Klienci (id_klienta, nazwa, email) values
84 (103, 'Wiesław Kowalski', 'wiesioo@onet.eu'),
85 (104, 'Stanisława Kopeć', 'stanislawa.kopec@gmail.com');
86
87insert into Klienci (id_klienta, nazwa, numer_telefonu, nip) values
88 (201, 'II Liceum Ogólnokształcące im. Tadeusza Kościuszki w Pszczółkach', '(+48) 22 253 33 89', 8743407200),
89 (202, 'Biurex Polska z.o.o', '(+48) 516 88 12 32', 6885475742);
90
91insert into Klienci (id_klienta, nazwa, numer_telefonu, email, nip) values
92 (203, 'TaxMax z.o.o', '(+48) 11 768 23 99', 'biuro@taxmax.com', 1421697789),
93 (204, 'UrzÄ…d Skarbowy w Radomiu', '(+48) 786 98 81 22', 'us@us.radom.pl', 8235014581),
94 (205, 'BetonExp Industrial', '(+48) 723 88 97 11', 'kontakt@betonexp.pl', 7142321628);
95
96insert into Zamowienia (id_zamowienia, id_klienta, adres_dostawy, data_zlozenia) values
97 (101, 101, 'ul. Kubusia Puchatka 1/13, Warszawa', to_date('10-01-2001', 'DD-MM-YYYY')),
98 (102, 103, 'ul. Adama Mickiewicza 17/21, Katowice', to_date('07-01-2001', 'DD-MM-YYYY')),
99 (103, 103, 'ul. Adama Mickiewicza 17/21, Katowice', to_date('22-02-2001', 'DD-MM-YYYY')),
100 (104, 102, 'ul. Mieczysława Karłowicza 13, Gdynia', to_date('14-03-2001', 'DD-MM-YYYY')),
101 (105, 104, 'ul. Miarki 2, Bytom', to_date('21-02-2001', 'DD-MM-YYYY')),
102 (106, 201, 'ul. Wesoła 7, Pszczółki', to_date('14-03-2001', 'DD-MM-YYYY')),
103 (107, 201, 'ul. Wesoła 7, Pszczółki', to_date('14-04-2001', 'DD-MM-YYYY')),
104 (108, 201, 'ul. Wesoła 7, Pszczółki', to_date('07-08-2001', 'DD-MM-YYYY')),
105 (109, 204, 'ul. Krakowska 8, Radom', to_date('18-03-2001', 'DD-MM-YYYY')),
106 (110, 204, 'ul. Krakowska 8, Radom', to_date('26-03-2001', 'DD-MM-YYYY')),
107 (111, 203, 'ul. Bracka 1, Kraków', to_date('01-02-2001', 'DD-MM-YYYY')),
108 (112, 203, 'ul. Nowohucka 19, Kraków', to_date('03-01-2001', 'DD-MM-YYYY')),
109 (113, 202, 'ul. Studencka 7, Poznań', to_date('17-03-2001', 'DD-MM-YYYY')),
110 (114, 205, 'ul. Starogardzka 7, Åódź', to_date('18-03-2001', 'DD-MM-YYYY')),
111 (115, 205, 'ul. Starogardzka 7, Åódź', to_date('19-03-2001', 'DD-MM-YYYY')),
112 (116, 205, 'ul. DÅ‚uga 2, Åódź', to_date('20-04-2001', 'DD-MM-YYYY')),
113 (117, 205, 'ul. DÅ‚uga 2, Åódź', to_date('27-05-2001', 'DD-MM-YYYY'));
114
115insert into Produkty_Zamowienia (produkt, id_zamowienia, ilosc) values
116 (701, 101, 1), (802, 101, 2), (702, 101, 1),
117 (501, 102, 10), (602, 103, 15), (603, 103, 1),
118 (702, 104, 20), (803, 104, 1), (601, 104, 1), (902, 104, 2),
119 (102, 105, 3), (603, 106, 5), (102, 106, 10), (1001, 106, 40),
120 (1001, 107, 40), (902, 107, 20), (501, 107, 35),
121 (801, 108, 3), (101, 108, 1), (1001, 109, 50), (702, 109, 100),
122 (602, 109, 60), (301, 109, 3), (802, 110, 45), (601, 110, 25),
123 (802, 111, 75), (602, 112, 10), (701, 112, 3), (201, 112, 250),
124 (202, 113, 350), (201, 113, 350), (902, 114, 20), (702, 114, 20),
125 (501, 114, 35), (101, 115, 5), (102, 115, 5), (1001, 116, 45),
126 (901, 117, 250), (902, 117, 250), (702, 117, 1000), (603, 117, 15);
127
128insert into Ceny_Dostaw (waga_zamowienia, cena_dostawy) values
129 (numrange(0, 100, '[]'), 0),
130 (numrange(100, 500, '(]'), 7),
131 (numrange(500, 1000, '(]'), 12),
132 (numrange(1000, 5000, '(]'), 25),
133 (numrange(5000, 15000, '(]'), 50),
134 (numrange(15000, NULL, '()'), 80);