· 6 years ago · Apr 08, 2019, 11:34 AM
1DROP TABLE IF EXISTS zwolnienie;
2DROP TABLE IF EXISTS skierowanie;
3DROP TABLE IF EXISTS wizyta;
4DROP TABLE IF EXISTS recepta;
5DROP TABLE IF EXISTS pokoj;
6DROP TABLE IF EXISTS lekarz;
7DROP TABLE IF EXISTS pacjent;
8DROP PROCEDURE IF EXISTS wizyty;
9
10CREATE TABLE lekarz (
11 id_lekarz INTEGER PRIMARY KEY NOT NULL IDENTITY(1,1),
12 imie VARCHAR(32) NOT NULL,
13 nazwisko VARCHAR(64) NOT NULL,
14 specjalizacja VARCHAR(128) NOT NULL,
15 nr_pokoju INT NOT NULL
16);
17
18CREATE TABLE pacjent (
19 id_pacjent INTEGER PRIMARY KEY NOT NULL IDENTITY(1,1),
20 imie VARCHAR(32) NOT NULL,
21 nazwisko VARCHAR(64) NOT NULL,
22);
23
24
25
26CREATE TABLE recepta (
27 id_recepta INTEGER PRIMARY KEY NOT NULL IDENTITY(1,1),
28 opis VARCHAR(1024) NOT NULL,
29 data_wystawienia DATE NULL,
30 id_pacjent INTEGER FOREIGN KEY REFERENCES pacjent(id_pacjent),
31 id_lekarz INTEGER FOREIGN KEY REFERENCES lekarz(id_lekarz)
32);
33
34CREATE TABLE skierowanie (
35 id_skierowanie INTEGER PRIMARY KEY NOT NULL IDENTITY(1,1),
36 opis VARCHAR(1024) NOT NULL,
37 data_wystawienia DATE NOT NULL,
38 id_pacjent INTEGER FOREIGN KEY REFERENCES pacjent(id_pacjent),
39 id_lekarz INTEGER FOREIGN KEY REFERENCES lekarz(id_lekarz)
40);
41
42CREATE TABLE wizyta (
43 id_wizyta INTEGER PRIMARY KEY NOT NULL IDENTITY(1,1),
44 data_wizyty DATETIME NOT NULL,
45 id_pacjent INTEGER FOREIGN KEY REFERENCES pacjent(id_pacjent),
46 id_lekarz INTEGER FOREIGN KEY REFERENCES lekarz(id_lekarz)
47);
48
49CREATE TABLE zwolnienie (
50 id_zwolnienie INTEGER PRIMARY KEY NOT NULL IDENTITY(1,1),
51 opis VARCHAR(1024) NOT NULL,
52 data_wystawienia DATE NOT NULL,
53 poczatek_zwolnienia DATE NOT NULL,
54 koniec_zwolnienia DATE NOT NULL,
55 id_pacjent INTEGER FOREIGN KEY REFERENCES pacjent(id_pacjent),
56 id_lekarz INTEGER FOREIGN KEY REFERENCES lekarz(id_lekarz)
57);
58
59INSERT INTO pacjent (imie, nazwisko) VALUES
60('Marcin', 'Borysiak'),
61('Marcin', 'Borysiewicz'),
62('Krzysztof', 'Bohdanowicz'),
63('Stefan', 'Stefański'),
64('Mateusz', 'Wirzba'),
65('Robert', 'Fidytek'),
66('Maciej', 'Bela'),
67('Adam', 'Mickiewicz'),
68('Bartosz', 'Kordiański'),
69('Albert', 'Wyszyński'),
70('Miłosz', 'Koss'),
71('Stefan', 'Stefanowicz');
72
73INSERT INTO lekarz(imie, nazwisko, specjalizacja, nr_pokoju) VALUES
74('Mateusz', 'Wirzba', 'dermatolog',1),
75('Robert', 'Fidytek', 'dermatolog',2),
76('Maciej', 'Bela', 'endokrynolog',3),
77('Adam', 'Mickiewicz', 'endokrynolog',4),
78('Bartosz', 'Kordiański', 'okulista',8),
79('Albert', 'Wyszyński', 'pediatra',6),
80('Miłosz', 'Koss', 'lekarz rodzinny',7),
81('Stefan', 'Stefanowicz', 'lekarz rodzinny',5);
82
83
84
85INSERT INTO wizyta(data_wizyty, id_lekarz, id_pacjent) VALUES
86('24-11-2019 10:34:00', 1, 1 ),
87('24-12-2024 09:43:12', 1, 2),
88('15-12-2034 11:45:21', 3, 3),
89('13-12-2035 13:41:21', 4, 4),
90('26-11-2019 10:34:00', 5, 5),
91('30-12-2024 09:43:12', 6, 6),
92('10-12-2034 11:45:21', 7, 7),
93('12-12-2035 13:41:21', 8, 8),
94('24-11-2019 10:34:00', 1, 8),
95('2-12-2024 09:43:12', 2, 9),
96('1-12-2034 11:45:21', 2, 10),
97('4-12-2035 13:41:21', 3, 11),
98('27-11-2019 10:34:00', 6, 12),
99('19-12-2024 09:43:12', 7, 2),
100('29-12-2034 11:45:21', 2, 1),
101('30-12-2035 13:41:21', 1, 2);
102
103SELECT * FROM pacjent;
104SELECT * FROM wizyta;
105
106GO
107
108CREATE PROCEDURE wizyty AS
109SELECT wizyta.id_pacjent, pacjent.nazwisko, wizyta.data_wizyty, lekarz.nazwisko, lekarz.specjalizacja, lekarz.nr_pokoju
110FROM wizyta INNER JOIN pacjent
111on wizyta.id_pacjent = pacjent.id_pacjent
112INNER JOIN lekarz
113on wizyta.id_lekarz = lekarz.id_lekarz
114go
115exec wizyty;
116SELECT pacjent.nazwisko, wizyta.data_wizyty, lekarz.nazwisko, lekarz.specjalizacja, lekarz.nr_pokoju FROM wizyta LEFT JOIN pacjent on wizyta.id_pacjent = pacjent.id_pacjent LEFT JOIN lekarz on wizyta.id_lekarz = lekarz.id_lekarz where pacjent.nazwisko='Bela'