· 6 years ago · Jan 16, 2020, 01:14 PM
1--tego nie trzeba(sprawdzanie poprawnosci utworzenia bazy + samo tworzenie)
2USE master;
3if exists(SELECT * FROM sys.databases WHERE name='Test')
4ALTER DATABASE Test SET SINGLE_USER WITH ROLLBACK IMMEDIATE;
5DROP DATABASE if exists Test
6go
7CREATE DATABASE Test
8go
9USE Test
10go
11
12
13--ZAD. 1
14
15CREATE TABLE pracownicy(
16id_pracownika INT IDENTITY PRIMARY KEY,
17nazwisko VARCHAR(64),
18data_zatrudnienia DATE,
19kod_pocztowy VARCHAR(6),
20CONSTRAINT c CHECK (data_zatrudnienia <=getdate())
21);
22
23
24CREATE TABLE pracownicy_sezonowi(
25id_pracownika INT,
26forma_zatrudnienia VARCHAR(64),
27stawka_godzinowa SMALLMONEY,
28CONSTRAINT r FOREIGN KEY (id_pracownika) REFERENCES pracownicy
29(id_pracownika) ON DELETE CASCADE ON UPDATE NO ACTION
30);
31
32--ZAD. 2
33
34UPDATE pracownicy_sezonowi
35SET forma_zatrudnienia = 'budowa' AND stawka_godzinowa = 25
36WHERE id_pracownika = 12;
37
38DELETE FROM pracownicy
39WHERE data_zatrudnienia = '2019-05%' AND kod_pocztowy = '%35%';
40
41
42--ZAD. 3
43
44SELECT nazwisko, data_zatrudnienia
45FROM pracownicy.id_pracownika LEFT JOIN pracownicy_sezonowi.id_pracownika
46WHERE pracownicy_sezonowi.stawka >= 25
47OR pracownicy_sezonowi.stawka <= 30
48OR pracownicy_sezonowi.stawka IS NULL
49
50SELECT nazwisko FROM pracownicy
51WHERE id_pracownika
52NOT IN(
53SELECT id_pracownika FROM pracownicy_sezonowi
54);