Cvičná databáze OSDL: Porovnání verzí
kubikova ven z dubnove vyplaty! |
|||
| (Není zobrazeno 14 mezilehlých verzí od 2 dalších uživatelů.) | |||
| Řádek 50: | Řádek 50: | ||
|- | |- | ||
| 6 || Tomas || Zezula || sk || 45 | | 6 || Tomas || Zezula || sk || 45 | ||
|- | |||
|} | |||
Vypište jméno, příjmení a pracoviště všech zaměstnanců. | |||
{{SQLTABLE3| 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ů. | |||
{{SQLTABLE5|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. | |||
{{SQLTABLE3|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. | |||
{{SQLTABLE3|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. | |||
{{SQLTABLE3|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á. | |||
{{SQLTABLE3|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. | |||
{{SQLTABLE2|count | popis}} | |||
| 2 || Sekretariat | |||
|- | |||
| 1 || Konstrukce | |||
|- | |||
| 0 || Provoz | |||
|- | |||
| 1 || Vyroba | |||
|- | |||
| 2 || Informatika | |||
|- | |||
|} | |||
Vypište zaměstnance, kteří v dubnu nedostali výplatu. | |||
{{SQLTABLE2|jmeno | prijmeni}} | |||
| Lucie || Kubikova | |||
|- | |- | ||
|} | |} | ||
| Řádek 122: | Řádek 273: | ||
INSERT INTO Mzdy VALUES(DEFAULT, '2007-04-01', 3, 28000); | 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', 4, 20000); | ||
INSERT INTO Mzdy VALUES(DEFAULT, '2007-04-01', 6, 51000); | INSERT INTO Mzdy VALUES(DEFAULT, '2007-04-01', 6, 51000); | ||
Aktuální verze z 27. 7. 2007, 17:05
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 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;