Cvičná databáze OSDL: Porovnání verzí
mBez shrnutí editace |
|||
Řádek 121: | Řádek 121: | ||
|} | |} | ||
Vypište jméno, příjmení, | Vypište jméno, příjmení, id všech zaměstnanců, jejichž pracoviště je it. | ||
{{SQLTABLE3|jmeno|prijmeni|id}} | {{SQLTABLE3|jmeno|prijmeni|id}} | ||
| Pavel || Stehule || 1 | | Pavel || Stehule || 1 |
Verze z 27. 3. 2007, 13:37
Tabulky
Cvičná databáze OSDL obsahuje tři tabulky
|
|
|
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 větší 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 větší 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í větší 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 |
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', 5, 18000); INSERT INTO Mzdy VALUES(DEFAULT, '2007-04-01', 6, 51000); SELECT * FROM Mzdy;