Tyto kódy k vytvoření cvičné databáze pro systém PostgreSQL zaslal Libor Tvrdík. Vítek Zach doplnil úvodní definici domény CLOB, protože v moderních verzích Postge podporován.
create domain clob as text;
create table KAT (
KAT CHAR(5) not null,
NAZK VARCHAR(30) not null,
POPK CLOB,
NADR CHAR(5),
constraint PK_KAT primary key (KAT),
constraint AK_NAZ_KAT unique (NAZK)
);
alter table KAT
add constraint FK_KAT_KAT foreign key (NADR)
references KAT (KAT);
create table ZBOZ (
KOD NUMERIC(6) not null,
KAT CHAR(5) not null,
NAZ VARCHAR(30) not null,
POP CLOB,
JCEN NUMERIC(8,2) not null,
JEDN VARCHAR(20),
SKLAD FLOAT not null,
DOST NUMERIC(3) not null,
AKTI NUMERIC(1) not null,
constraint PK_ZBOZ primary key (KOD),
constraint AK_NAZ_ZBOZ unique (NAZ)
);
alter table ZBOZ
add constraint FK_ZBOZ_KAT foreign key (KAT)
references KAT (KAT);
create table ZAK (
LOG VARCHAR(30) not null,
JMEN VARCHAR(50) not null,
PRIJM VARCHAR(50) not null,
ULIC VARCHAR(100) not null,
PSC CHAR(5) not null,
MEST VARCHAR(100) not null,
EMAIL VARCHAR(100) not null,
constraint PK_ZAK primary key (LOG)
);
create table OBJ (
CISO NUMERIC(7) not null,
ZAK VARCHAR(30) not null,
DAT DATE not null,
DATOD DATE,
STAV CHAR(1) default 'p' not null
constraint CKC_STAV_OBJ check (STAV in ('p','v','o')),
PLAT CHAR(1) not null
constraint CKC_PLAT_OBJ check (PLAT in ('1','2','3')),
DOPR CHAR(1) not null
constraint CKC_DOPR_OBJ check (DOPR in ('1','2','3','4')),
JMEN VARCHAR(50) not null,
PRIJM VARCHAR(50) not null,
ULIC VARCHAR(100) not null,
PSC CHAR(5) not null,
MEST VARCHAR(100) not null,
POZN CLOB,
constraint PK_OBJ primary key (CISO)
);
alter table OBJ
add constraint FK_OBJ_ZAK foreign key (ZAK)
references ZAK (LOG);
create table POLOZ (
CISO NUMERIC(7) not null,
KOD NUMERIC(6) not null,
MNOZ FLOAT not null,
VCEN NUMERIC(8,2) not null,
constraint PK_POLOZ primary key (CISO, KOD)
);
alter table POLOZ
add constraint FK_POLOZ_OBJ foreign key (CISO)
references OBJ (CISO);
alter table POLOZ
add constraint FK_POLOZ_ZBOZ foreign key (KOD)
references ZBOZ (KOD);
insert into KAT values ('nap','nápoje','zboží, které lze pít',NULL);
insert into KAT values ('napAl','nápoje alkoholické','alkohol','nap');
insert into KAT values ('pivo','pivo','piva různých druhů','napAl');
insert into KAT values ('vino','víno','nejrůznější druhy vína','napAl');
insert into KAT values ('dest','destiláty','tvrdý alkohol','napAl');
insert into KAT values ('napNA','nápoje nealkoholické','nápoje, které neobsahují alkohol','nap');
insert into KAT values ('minVo','minerální vody','pramenité minerální a stolní vody','napNA');
insert into KAT values ('limo','limonády','nealkoholické nápoje nejrůznějších příchutí','napNA');
insert into KAT values ('pec','pečivo','chléb, housky, rohlíky, sladké pečivo atd.',NULL);
insert into KAT values ('ovze','ovoce, zelenina','něco dobrého pro zdraví',NULL);
insert into ZBOZ values (1000,'pivo','Braník','světlé pivo ve skle',11,'láhev 0,5 l',100,0,1);
insert into ZBOZ values (1001,'pivo','Budějovický Budvar','světlý ležák ve skle',20,'láhev 0,5 l',250,0,1);
insert into ZBOZ values (1002,'pivo','Gambrinus světlý','světlé pivo ve skle',15,'láhev 0,5 l',200,0,1);
insert into ZBOZ values (1003,'pivo','Staropramen','světlé pivo ve skle',12.5,'láhev 0,5 l',0,1,1);
insert into ZBOZ values (1004,'vino','Frankovka','suché víno',65,'láhev 0,75 l',10,0,1);
insert into ZBOZ values (1005,'vino','Modrý Portugal',NULL,86.5,'láhev 0,75 l',1,0,1);
insert into ZBOZ values (1006,'vino','Svatovavřinecké','suché víno',56,'láhev 0,75 l',0,3,1);
insert into ZBOZ values (1007,'minVo','Mattoni broskev','minerální voda s příchutí broskve',15,'láhev 1,5 l',20,0,1);
insert into ZBOZ values (1008,'minVo','Mattoni','minerální voda bez příchuti',13,'láhev 1,5 l',120,0,1);
insert into ZBOZ values (1009,'minVo','Poděbradka','minerální voda bez příchuti',10,'láhev 1,5 l',82,0,1);
insert into ZBOZ values (1010,'limo','7UP',NULL,33,'láhev 2 l',30,0,1);
insert into ZBOZ values (1011,'limo','Coca-cola',NULL,36,'láhev 2 l',80,0,1);
insert into ZBOZ values (1012,'limo','Fanta divoká malina','limonáda s příchutí divoké maliny',33,'láhev 2 l',20,0,1);
insert into ZBOZ values (1013,'limo','Fanta pomeranč','limonáda s příchutí pomeranče',33,'láhev 2 l',42,0,1);
insert into ZBOZ values (1014,'limo','Fanta lemonic','limonáda s příchutí lemonic',33,'láhev 2 l',0,0,0);
insert into ZBOZ values (1015,'pec','rohlík',NULL,3,'ks',150,0,1);
insert into ZBOZ values (1016,'pec','toustový chléb',NULL,34,'kg',20,0,1);
insert into ZBOZ values (1017,'pec','chléb',NULL,25,'kg',15,0,1);
insert into ZBOZ values (1018,'pec','houska',NULL,3.5,'ks',110,0,1);
insert into ZBOZ values (1019,'ovze','banán',NULL,43.5,'kg',20,0,1);
insert into ZBOZ values (1020,'ovze','citron',NULL,28,'kg',2,0,1);
insert into ZBOZ values (1021,'ovze','jablko červené','červené jablko',30,'kg',10,0,1);
insert into ZBOZ values (1022,'ovze','jablko zelené','zelené jablko',32,'kg',5,0,1);
insert into ZBOZ values (1023,'ovze','mango',NULL,75,'kg',0,0,0);
insert into ZBOZ values (1024,'ovze','brambory',NULL,13,'kg',25,0,1);
insert into ZBOZ values (1025,'ovze','okurka','salátová okurka',17.5,'ks',0,1,1);
insert into ZBOZ values (1026,'ovze','rajská jablka',NULL,44.5,'kg',2,0,1);
insert into ZAK values ('novotny','Antonín','Novotný','Havlíčkova 139','35103','Velká Hleďsebe','nov.ant@seznam.cz');
insert into ZAK values ('abraham','Karel','Abrahámek','Smetanova 70','27351','Unhošť','abraham@centrum.cz');
insert into ZAK values ('rubek','Jiří','Rubek','Janošíkova 709','64300','Brno - Chrlice','rubi@seznam.cz');
insert into ZAK values ('bohus','Bohuslav','Rejholec','Laudova 1014','16300','Praha 6 - Řepy','rejholec@gmail.com');
insert into ZAK values ('masin','František','Mašín','Puškinova 591','68201','Vyškov','franta.masin@seznam.cz');
insert into ZAK values ('novota','Blanka','Novotná','Mírové náměstí 55','55001','Broumov','novota@atlas.cz');
insert into ZAK values ('vencka','Taťána','Vencová','Ovenecká 953','17000','Praha 7 - Bubeneč','vencova@centrum.cz');
insert into ZAK values ('skocka','Zdena','Skočdopolová','Vokrojova 3378','14300','Praha 4 - Modřany','skocdopolova@centrum.cz');
insert into ZAK values ('janouskova','Denisa','Janoušková','Dvořákova 645','60200','Brno','xjand05@vse.cz');
insert into ZAK values ('strakova','Miluše','Straková','Žehuňská 843','19800','Praha 9 - Kyje','strakova.miluse@seznam.cz');
insert into ZAK values ('krec','Tomáš','Křeč','M. Pujmannové 286','54101','Trutnov','krecek@seznam.cz');
insert into ZAK values ('ilja','Ilja','Novák','Vokrojova 3384','14300','Praha','ilja-novak@seznam.cz');
insert into OBJ values (1,'krec',to_date('04012006','DDMMYYYY'),to_date('11012006','DDMMYYYY'),'o','1','2','Tomáš','Křeč','M. Pujmannové 286','54101','Trutnov',NULL);
insert into OBJ values (2,'krec',to_date('12102006','DDMMYYYY'),to_date('12122006','DDMMYYYY'),'o','1','1','Tomáš','Křeč','M. Pujmannové 286','54101','Trutnov',NULL);
insert into OBJ values (3,'krec',to_date('23112006','DDMMYYYY'),to_date('25112006','DDMMYYYY'),'o','2','3','Tomáš','Křeč','M. Pujmannové 286','54101','Trutnov',NULL);
insert into OBJ values (4,'strakova',to_date('10012007','DDMMYYYY'),to_date('11012007','DDMMYYYY'),'o','1','2','Miluše','Straková','Žehuňská 843','19800','Praha 9 - Kyje',NULL);
insert into OBJ values (5,'krec',to_date('30012007','DDMMYYYY'),to_date('02022007','DDMMYYYY'),'o','2','3','Tomáš','Křeč','M. Pujmannové 286','54101','Trutnov',NULL);
insert into OBJ values (6,'krec',to_date('30012007','DDMMYYYY'),to_date('02042007','DDMMYYYY'),'o','1','2','Tomáš','Křeč','Pražská 4','54101','Trutnov','zásilku mi prosím dodejte v dopoledních hodinách');
insert into OBJ values (7,'krec',to_date('15042007','DDMMYYYY'),to_date('15042007','DDMMYYYY'),'o','1','1','Tomáš','Křeč','M. Pujmannové 286','54101','Trutnov',NULL);
insert into OBJ values (8,'bohus',to_date('15052007','DDMMYYYY'),to_date('17052007','DDMMYYYY'),'o','2','1','Bohuslav','Rejholec','Laudova 1014','16300','Praha 6 - Řepy',NULL);
insert into OBJ values (9,'krec',to_date('16052007','DDMMYYYY'),to_date('16052007','DDMMYYYY'),'o','1','1','Tomáš','Křeč','M. Pujmannové 286','54101','Trutnov',NULL);
insert into OBJ values (10,'novota',to_date('23082007','DDMMYYYY'),to_date('25082007','DDMMYYYY'),'o','3','4','Blanka','Novotná','Mírové náměstí 55','55001','Broumov',NULL);
insert into OBJ values (11,'krec',to_date('02102007','DDMMYYYY'),to_date('02122007','DDMMYYYY'),'o','2','3','Tomáš','Křeč','M. Pujmannové 286','54101','Trutnov',NULL);
insert into OBJ values (12,'bohus',to_date('10102007','DDMMYYYY'),to_date('10102007','DDMMYYYY'),'o','3','3','Bohuslav','Rejholec','Laudova 1014','16300','Praha 6 - Řepy',NULL);
insert into OBJ values (13,'bohus',to_date('02122007','DDMMYYYY'),to_date('13022008','DDMMYYYY'),'o','2','2','Bohuslav','Rejholec','Laudova 1014','16300','Praha 6 - Řepy',NULL);
insert into OBJ values (14,'masin',to_date('06012008','DDMMYYYY'),to_date('07012008','DDMMYYYY'),'o','1','4','František','Mašín','Puškinova 1','68201','Vyškov',NULL);
insert into OBJ values (15,'novota',to_date('02022008','DDMMYYYY'),to_date('13022008','DDMMYYYY'),'o','1','2','Blanka','Novotná','Mírové náměstí 55','55001','Broumov','Prosím o dodání ve večerních hodinách');
insert into OBJ values (16,'bohus',to_date('03022008','DDMMYYYY'),to_date('04022008','DDMMYYYY'),'o','2','2','Bohuslav','Rejholec','Laudova 1014','16300','Praha 6 - Řepy',NULL);
insert into OBJ values (17,'masin',to_date('13022008','DDMMYYYY'),to_date('15022008','DDMMYYYY'),'o','3','3','František','Mašín','Puškinova 591','68201','Vyškov',NULL);
insert into OBJ values (18,'masin',to_date('17042008','DDMMYYYY'),to_date('19042008','DDMMYYYY'),'o','3','4','František','Mašín','Puškinova 591','68201','Vyškov',NULL);
insert into OBJ values (19,'vencka',to_date('13052008','DDMMYYYY'),to_date('16052008','DDMMYYYY'),'o','3','3','Taťána','Vencová','Ovenecká 953','17000','Praha 7',NULL);
insert into OBJ values (20,'novotny',to_date('24092008','DDMMYYYY'),to_date('26012009','DDMMYYYY'),'o','2','1','Antonín','Novotný','Havlíčkova 139','35103','Velká Hleďsebe',NULL);
insert into OBJ values (21,'masin',to_date('10102008','DDMMYYYY'),to_date('10112008','DDMMYYYY'),'o','1','1','František','Mašín','Puškinova 591','68201','Vyškov',NULL);
insert into OBJ values (22,'novota',to_date('15102008','DDMMYYYY'),to_date('16102008','DDMMYYYY'),'o','1','4','Blanka','Novotná','Mírové náměstí 55','55001','Broumov',NULL);
insert into OBJ values (23,'novota',to_date('17112008','DDMMYYYY'),to_date('21112008','DDMMYYYY'),'o','2','2','Blanka','Novotná','Mírové náměstí 55','55001','Broumov',NULL);
insert into OBJ values (24,'novota',to_date('01122008','DDMMYYYY'),to_date('14012009','DDMMYYYY'),'o','1','4','Blanka','Novotná','Mírové náměstí 55','55001','Broumov',NULL);
insert into OBJ values (25,'janouskova',to_date('12122008','DDMMYYYY'),to_date('15012009','DDMMYYYY'),'o','2','1','Denisa','Janoušková','Dvořákova 645','60200','Brno',NULL);
insert into OBJ values (26,'abraham',to_date('23122008','DDMMYYYY'),to_date('29012009','DDMMYYYY'),'o','3','3','Karel','Abrahámek','Smetanova 70','27351','Unhošť',NULL);
insert into OBJ values (27,'rubek',to_date('02012009','DDMMYYYY'),NULL,'v','1','2','Jiří','Rubek','Janošíkova 709','64300','Brno',NULL);
insert into OBJ values (28,'skocka',to_date('01062009','DDMMYYYY'),to_date('01062009','DDMMYYYY'),'o','1','4','Zdena','Skočdopolová','Vokrojova 3378','14300','Praha 4 - Modřany',NULL);
insert into OBJ values (29,'strakova',to_date('01062009','DDMMYYYY'),NULL,'p','3','3','Miluše','Straková','Žehuňská 843','19800','Praha 9 - Kyje',NULL);
insert into OBJ values (30,'bohus',to_date('30062009','DDMMYYYY'),NULL,'v','2','2','Bohuslav','Rejholec','Laudova 1014','16300','Praha 6 - Řepy',NULL);
insert into POLOZ values (1,'1000',4,40);
insert into POLOZ values (1,'1007',10,130);
insert into POLOZ values (1,'1010',5,157.5);
insert into POLOZ values (1,'1014',3,88.5);
insert into POLOZ values (1,'1019',3,121.5);
insert into POLOZ values (1,'1020',1,26);
insert into POLOZ values (1,'1021',2,56);
insert into POLOZ values (1,'1023',0.5,33.8);
insert into POLOZ values (1,'1024',10,120);
insert into POLOZ values (1,'1025',5,80);
insert into POLOZ values (1,'1026',5,220);
insert into POLOZ values (2,'1009',6,51);
insert into POLOZ values (2,'1015',10,25);
insert into POLOZ values (2,'1017',1,24.5);
insert into POLOZ values (2,'1022',1,29.5);
insert into POLOZ values (2,'1024',2,25);
insert into POLOZ values (3,'1000',5,50);
insert into POLOZ values (3,'1008',2,25);
insert into POLOZ values (3,'1015',20,50);
insert into POLOZ values (3,'1017',1,24.5);
insert into POLOZ values (4,'1009',2,17);
insert into POLOZ values (4,'1019',1,40.5);
insert into POLOZ values (6,'1004',2,128);
insert into POLOZ values (6,'1005',1,79);
insert into POLOZ values (6,'1006',4,224);
insert into POLOZ values (7,'1016',50,1500);
insert into POLOZ values (8,'1017',1,24.5);
insert into POLOZ values (9,'1009',1,8.5);
insert into POLOZ values (10,'1009',6,51);
insert into POLOZ values (10,'1016',1,30);
insert into POLOZ values (11,'1000',10,100);
insert into POLOZ values (11,'1001',10,195);
insert into POLOZ values (11,'1002',5,75);
insert into POLOZ values (11,'1003',10,120);
insert into POLOZ values (12,'1011',1,34.5);
insert into POLOZ values (12,'1021',0.5,14.5);
insert into POLOZ values (12,'1026',1,44);
insert into POLOZ values (13,'1011',2,69);
insert into POLOZ values (13,'1017',2,50);
insert into POLOZ values (13,'1021',2,58);
insert into POLOZ values (14,'1000',20,200);
insert into POLOZ values (14,'1004',2,128);
insert into POLOZ values (15,'1007',1,13);
insert into POLOZ values (15,'1016',2,65);
insert into POLOZ values (15,'1018',10,30);
insert into POLOZ values (15,'1021',1,29);
insert into POLOZ values (15,'1025',4,64);
insert into POLOZ values (16,'1010',5,157.5);
insert into POLOZ values (16,'1022',2,61);
insert into POLOZ values (17,'1002',4,60);
insert into POLOZ values (18,'1005',2,173);
insert into POLOZ values (18,'1006',2,112);
insert into POLOZ values (19,'1008',20,250);
insert into POLOZ values (20,'1015',10,25);
insert into POLOZ values (20,'1017',1,25);
insert into POLOZ values (20,'1018',6,21);
insert into POLOZ values (20,'1024',1,13);
insert into POLOZ values (21,'1003',2,25);
insert into POLOZ values (21,'1013',6,198);
insert into POLOZ values (21,'1019',1,40.5);
insert into POLOZ values (21,'1025',2,35);
insert into POLOZ values (22,'1000',10,100);
insert into POLOZ values (22,'1024',2,26);
insert into POLOZ values (22,'1026',1,44.5);
insert into POLOZ values (23,'1013',1,33);
insert into POLOZ values (23,'1020',1,28);
insert into POLOZ values (24,'1005',1,86.5);
insert into POLOZ values (25,'1002',30,450);
insert into POLOZ values (26,'1006',1,56);
insert into POLOZ values (27,'1008',3,39);
insert into POLOZ values (27,'1018',10,35);
insert into POLOZ values (27,'1026',1,44.5);
insert into POLOZ values (28,'1003',6,75);
insert into POLOZ values (28,'1015',20,60);
insert into POLOZ values (28,'1017',1,25);
insert into POLOZ values (28,'1025',4,70);
insert into POLOZ values (29,'1016',2,68);
insert into POLOZ values (29,'1017',1,25);
insert into POLOZ values (29,'1024',2,26);
insert into POLOZ values (30,'1016',2,68);
insert into POLOZ values (30,'1017',1,25);
insert into POLOZ values (30,'1020',20,560);