Tabulky
Cvičná databáze OSDL obsahuje tři tabulky
|
Zamestnanci
|
id
|
jmeno
|
prijmeni
|
pracoviste_kod
|
vek
|
|
Mzdy
|
id
|
vlozeno
|
zamestnanec_id
|
castka
|
|
Příklady
Vypište seznam všech zaměstnanců.
id
|
jmeno
|
prijmeni
|
pracoviste_kod
|
vek
|
1 |
Pavel |
Stehule |
it |
33
|
2 |
Radek |
Hirjak |
kc |
32
|
3 |
Jan |
Pytel |
it |
31
|
4 |
Zdenek |
Stehule |
vy |
28
|
5 |
Lucie |
Kubikova |
sk |
25
|
6 |
Tomas |
Zezula |
sk |
45
|
Vypište jméno, příjmení a pracoviště všech zaměstnanců.
jmeno
|
prijmeni
|
popis
|
Pavel |
Stehule |
Informatika
|
Radek |
Hirjak |
Konstrukce
|
Jan |
Pytel |
Informatika
|
Zdenek |
Stehule |
Vyroba
|
Lucie |
Kubikova |
Sekretariat
|
Tomas |
Zezula |
Sekretariat
|
Vypište jméno, příjmení, částku, datum a popis všech zaměstnanců.
jmeno
|
prijmeni
|
castka
|
vlozeno
|
popis
|
Pavel |
Stehule |
30000.00 |
2007-01-01 |
Informatika
|
Radek |
Hirjak |
25000.00 |
2007-01-01 |
Konstrukce
|
Jan |
Pytel |
28000.00 |
2007-01-01 |
Informatika
|
Zdenek |
Stehule |
20000.00 |
2007-01-01 |
Vyroba
|
Lucie |
Kubikova |
18000.00 |
2007-01-01 |
Sekretariat
|
Tomas |
Zezula |
50000.00 |
2007-01-01 |
Sekretariat
|
Pavel |
Stehule |
30000.00 |
2007-02-01 |
Informatika
|
Radek |
Hirjak |
25000.00 |
2007-02-01 |
Konstrukce
|
Jan |
Pytel |
30000.00 |
2007-02-01 |
Informatika
|
Zdenek |
Stehule |
20000.00 |
2007-02-01 |
Vyroba
|
Lucie |
Kubikova |
18000.00 |
2007-02-01 |
Sekretariat
|
Tomas |
Zezula |
50000.00 |
2007-02-01 |
Sekretariat
|
Pavel |
Stehule |
31000.00 |
2007-03-01 |
Informatika
|
Radek |
Hirjak |
26000.00 |
2007-03-01 |
Konstrukce
|
Jan |
Pytel |
31000.00 |
2007-03-01 |
Informatika
|
Zdenek |
Stehule |
20000.00 |
2007-03-01 |
Vyroba
|
Lucie |
Kubikova |
19000.00 |
2007-03-01 |
Sekretariat
|
Tomas |
Zezula |
60000.00 |
2007-03-01 |
Sekretariat
|
Pavel |
Stehule |
30500.00 |
2007-04-01 |
Informatika
|
Radek |
Hirjak |
25000.00 |
2007-04-01 |
Konstrukce
|
Jan |
Pytel |
28000.00 |
2007-04-01 |
Informatika
|
Zdenek |
Stehule |
20000.00 |
2007-04-01 |
Vyroba
|
Lucie |
Kubikova |
18000.00 |
2007-04-01 |
Sekretariat
|
Tomas |
Zezula |
51000.00 |
2007-04-01 |
Sekretariat
|
Vypište jméno, příjmení, id všech zaměstnanců, jejichž pracoviště je it.
jmeno
|
prijmeni
|
id
|
Pavel |
Stehule |
1
|
Jan |
Pytel |
3
|
Vypište jméno, příjmení, částku všech zaměstnanců, jejichž měsíční příjem je vyšší než 30000.
jmeno
|
prijmeni
|
castka
|
Tomas |
Zezula |
50000.00
|
Tomas |
Zezula |
50000.00
|
Pavel |
Stehule |
31000.00
|
Jan |
Pytel |
31000.00
|
Tomas |
Zezula |
60000.00
|
Pavel |
Stehule |
30500.00
|
Tomas |
Zezula |
51000.00
|
Vypište jméno, příjmení, částku všech zaměstnanců, jejichž měsíční příjem je vyšší než 20000, jejich příjmení je Stehule.
Seřaďte je dle výše mzdy.
jmeno
|
prijmeni
|
castka
|
Pavel |
Stehule |
30000.00
|
Pavel |
Stehule |
30000.00
|
Pavel |
Stehule |
30500.00
|
Pavel |
Stehule |
31000.00
|
Vypište jméno, příjmení, částku všech zaměstnanců, kteří mají vyšší mzdu, než je průměrná.
jmeno
|
prijmeni
|
castka
|
Pavel |
Stehule |
30000.00
|
Tomas |
Zezula |
50000.00
|
Pavel |
Stehule |
30000.00
|
Jan |
Pytel |
30000.00
|
Tomas |
Zezula |
50000.00
|
Pavel |
Stehule |
31000.00
|
Jan |
Pytel |
31000.00
|
Tomas |
Zezula |
60000.00
|
Pavel |
Stehule |
30500.00
|
Tomas |
Zezula |
51000.00
|
Vypište, kolik zaměstnanců je na každém pracovišti.
count
|
popis
|
2 |
Sekretariat
|
1 |
Konstrukce
|
0 |
Provoz
|
1 |
Vyroba
|
2 |
Informatika
|
Vypište zaměstnance, kteří v dubnu nedostali výplatu.
jmeno
|
prijmeni
|
Lucie |
Kubikova
|
Skript
Skript pro založení cvičné databáze OSDL a naplnění tabulek je
DROP TABLE Pracoviste CASCADE;
DROP TABLE Zamestnanci CASCADE;
DROP TABLE Mzdy CASCADE;
CREATE TABLE Pracoviste(
kod char(2) PRIMARY KEY,
popis varchar(20) UNIQUE NOT NULL CHECK (popis <> '')
);
CREATE TABLE Zamestnanci(
id SERIAL PRIMARY KEY,
jmeno varchar(20) NOT NULL CHECK (jmeno <> ''),
prijmeni varchar(20) NOT NULL CHECK (prijmeni <> ''),
pracoviste_kod char(2) NOT NULL REFERENCES pracoviste(kod),
vek integer NOT NULL CHECK(vek > 0)
);
CREATE TABLE Mzdy(
id SERIAL PRIMARY KEY,
vlozeno date NOT NULL DEFAULT(CURRENT_DATE),
zamestnanec_id integer NOT NULL REFERENCES Zamestnanci(id),
castka NUMERIC(8,2) NOT NULL CHECK (castka > 0.0)
);
INSERT INTO Pracoviste VALUES('kc','Konstrukce');
INSERT INTO Pracoviste VALUES('pr','Provoz');
INSERT INTO Pracoviste VALUES('sk','Sekretariat');
INSERT INTO Pracoviste VALUES('vy','Vyroba');
INSERT INTO Pracoviste VALUES('it','Informatika');
SELECT * FROM Pracoviste;
INSERT INTO Zamestnanci(jmeno, prijmeni, pracoviste_kod, vek) VALUES('Pavel', 'Stehule', 'it',33);
INSERT INTO Zamestnanci(jmeno, prijmeni, pracoviste_kod, vek) VALUES('Radek', 'Hirjak', 'kc', 32);
INSERT INTO Zamestnanci(jmeno, prijmeni, pracoviste_kod, vek) VALUES('Jan', 'Pytel', 'it', 31);
INSERT INTO Zamestnanci(jmeno, prijmeni, pracoviste_kod, vek) VALUES('Zdenek', 'Stehule', 'vy', 28);
INSERT INTO Zamestnanci(jmeno, prijmeni, pracoviste_kod, vek) VALUES('Lucie', 'Kubikova', 'sk', 25);
INSERT INTO Zamestnanci(jmeno, prijmeni, pracoviste_kod, vek) VALUES('Tomas', 'Zezula', 'sk', 45);
SELECT * FROM Zamestnanci;
INSERT INTO Mzdy VALUES(DEFAULT, '2007-01-01', 1, 30000);
INSERT INTO Mzdy VALUES(DEFAULT, '2007-01-01', 2, 25000);
INSERT INTO Mzdy VALUES(DEFAULT, '2007-01-01', 3, 28000);
INSERT INTO Mzdy VALUES(DEFAULT, '2007-01-01', 4, 20000);
INSERT INTO Mzdy VALUES(DEFAULT, '2007-01-01', 5, 18000);
INSERT INTO Mzdy VALUES(DEFAULT, '2007-01-01', 6, 50000);
INSERT INTO Mzdy VALUES(DEFAULT, '2007-02-01', 1, 30000);
INSERT INTO Mzdy VALUES(DEFAULT, '2007-02-01', 2, 25000);
INSERT INTO Mzdy VALUES(DEFAULT, '2007-02-01', 3, 30000);
INSERT INTO Mzdy VALUES(DEFAULT, '2007-02-01', 4, 20000);
INSERT INTO Mzdy VALUES(DEFAULT, '2007-02-01', 5, 18000);
INSERT INTO Mzdy VALUES(DEFAULT, '2007-02-01', 6, 50000);
INSERT INTO Mzdy VALUES(DEFAULT, '2007-03-01', 1, 31000);
INSERT INTO Mzdy VALUES(DEFAULT, '2007-03-01', 2, 26000);
INSERT INTO Mzdy VALUES(DEFAULT, '2007-03-01', 3, 31000);
INSERT INTO Mzdy VALUES(DEFAULT, '2007-03-01', 4, 20000);
INSERT INTO Mzdy VALUES(DEFAULT, '2007-03-01', 5, 19000);
INSERT INTO Mzdy VALUES(DEFAULT, '2007-03-01', 6, 60000);
INSERT INTO Mzdy VALUES(DEFAULT, '2007-04-01', 1, 30500);
INSERT INTO Mzdy VALUES(DEFAULT, '2007-04-01', 2, 25000);
INSERT INTO Mzdy VALUES(DEFAULT, '2007-04-01', 3, 28000);
INSERT INTO Mzdy VALUES(DEFAULT, '2007-04-01', 4, 20000);
INSERT INTO Mzdy VALUES(DEFAULT, '2007-04-01', 6, 51000);
SELECT * FROM Mzdy;