· 6 years ago · Sep 25, 2019, 09:02 AM
1DROP SCHEMA IF EXISTS firma;
2CREATE SCHEMA IF NOT EXISTS firma DEFAULT CHARACTER SET utf8;
3USE firma;
4
5DROP TABLE IF EXISTS zespoly;
6DROP TABLE IF EXISTS etaty;
7DROP TABLE IF EXISTS pracownicy;
8
9CREATE TABLE zespoly
10(
11 id_zesp INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
12 nazwa VARCHAR(20) NOT NULL,
13 adres VARCHAR(20) NOT NULL
14);
15CREATE TABLE etaty
16(
17 id_etat INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
18 nazwa varchar(20) NOT NULL,
19 placa_od DOUBLE(6,2) NOT NULL,
20 placa_do DOUBLE(6,2) NOT NULL
21);
22CREATE TABLE pracownicy
23(
24 id_prac INT PRIMARY KEY AUTO_INCREMENT,
25 nazwisko VARCHAR(20) NOT NULL,
26 imie VARCHAR(20) NOT NULL,
27 etat VARCHAR(20) NOT NULL,
28 id_szefa INT,
29 zatrudniony DATE NOT NULL,
30 placa_pod INT NOT NULL,
31 placa_dod INT,
32 id_ZESP INT NOT NULL
33);
34
35SELECT * FROM zespoly;
36
37INSERT INTO zespoly(nazwa, adres) VALUES
38('administratorzy','Rzeszow'),
39('serwisanci','Rzeszow'),
40('progralisci','Rzeszow'),
41('praktykanci','Rzeszow'),
42('sprzataczki','Rzeszow'),
43('operatorzy','Rzeszow'),
44('elektrycy','Rzeszow'),
45('sieciowcy','Rzeszow'),
46('bazodanowcy','Rzeszow'),
47('pomocnicy','Rzeszow');
48
49SELECT * FROM etaty;
50
51INSERT INTO etaty(nazwa, placa_od, placa_do) VALUES
52('administrator','3000','4500'),
53('serwisant','2000','3500'),
54('programista','4000','9000'),
55('praktykant','0','1200'),
56('sprzataczka','1000','2000'),
57('operator','2000','2500'),
58('elektryk','3000','4700'),
59('sieciowiec','2900','5000'),
60('bazodanowiec','4000','5000'),
61('pomocnik','900','1900');
62
63
64INSERT INTO pracownicy(nazwisko, imie, etat, id_szefa, zatrudniony, placa_pod, placa_dod, id_zesp) VALUES
65('Rumak','Damian','administrator',null,'2016-03-22','3500',null, 1),
66('Kowal','Maciej','pomocnik','1','2018-07-02','900','1500', 2),
67('Płoch','Mateusz','bazodanowiec','1','2016-03-27','4000','4300', 3),
68('Nowak','Krystian','sieciowiec','1','2016-03-22','3000','4000', 4),
69('Maklowicz','Marcin','praktykant','1','2019-10-06','200','350', 5),
70('Baryka','Tomasz','elektryk','1','2017-12-06','3200','3500', 6),
71('Majkut','Jonasz','serwisant','1','2018-06-24','2000','2500', 7),
72('Selwa','Barbara','sprzataczka','1','2019-01-30','1100','1300', 8),
73('Tryniecki','Kacper','programista','1','2016-09-14','5000','6050', 9),
74('Kowalik','Dawid','operator','1','2018-02-12','2000','2100', 2);
75
76SELECT * FROM pracownicy;
77SELECT * FROM etaty;
78SELECT * FROM zespoly;
79
80SELECT concat(imie, ' ', nazwisko) AS 'imie i nazwisko', (placa_pod*12) AS 'pensja roczna' FROM pracownicy;
81SELECT concat(imie, ' ', nazwisko) AS 'imie i nazwisko', (placa_pod/20) AS 'dniowka' FROM pracownicy;
82SELECT concat(imie, ' pracuje na etacie ', etat) AS zdanie FROM pracownicy;
83SELECT imie, nazwisko FROM pracownicy WHERE placa_dod IS NULL;
84SELECT imie, nazwisko, IFNULL(placa_dod,0) FROM pracownicy;
85SELECT nazwisko, ((placa_pod + IFNULL(placa_dod,0) )*12) AS 'dochod' FROM pracownicy;
86SELECT DISTINCT id_zesp FROM pracownicy ;
87SELECT concat(imie, ' ', nazwisko) AS 'pracownik', (placa_pod/20) AS 'dniowka' FROM pracownicy ORDER BY dniowka DESC;
88SELECT nazwisko, id_zesp FROM pracownicy WHERE placa_dod>(placa_pod/10);