· 8 years ago · Dec 12, 2017, 01:32 PM
1use biblioteka;
2DROP TABLE IF EXISTS dbo.wypozyczenia
3DROP TABLE IF EXISTS dbo.ksiazki
4DROP TABLE IF EXISTS dbo.wydawnictwa
5DROP TABLE IF EXISTS dbo.czytelnicy
6DROP TABLE IF EXISTS dbo.pracownicy
7DROP TABLE IF EXISTS dbo.wypoz_lato
8
9create table czytelnicy (id char(5) primary key constraint warunek_id_czytelnika check (id like '[A-Z][A-Z][0-9][0-9][0-9]'),
10nazwisko varchar(15) NOT NULL,
11imie varchar(15) NOT NULL,
12pesel char(11) NOT NULL unique constraint warunek_pesel_czytelnika check(pesel like '[0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9]'),
13data_ur date NOT NULL, plec char(1) constraint warunek_plec check (plec like '[KM]'), telefon char(15));
14
15create table pracownicy (id int primary key identity (1,1), nazwisko varchar(15) NOT NULL,
16imie varchar(15) NOT NULL,data_ur date NOT NULL, data_zatr date NOT NULL,
17constraint warunek_data_ur_pracownika check (data_ur < data_zatr),
18plec char(1) constraint warunek_plec_pracownicy check (plec like '[KM]'),);
19
20create table wydawnictwa (id int primary key identity (1,1),nazwa varchar(50) NOT NULL, miasto varchar(50) NOT NULL, telefon varchar(15))
21
22create table ksiazki (sygn char(5) primary key, id_wyd int, tytul varchar(40) NOT NULL, cena money NOT NULL, strony int,
23gatunek varchar (30), constraint warunek_gatunek check (gatunek like 'powieść' or gatunek like 'powieść historyczna' or gatunek like 'dla dzieci' or
24gatunek like 'wiersze' or gatunek like 'kryminał' or gatunek like 'powieść science fiction' or gatunek like 'książka naukowa'),
25constraint id_wydawnictwa_ksiazki foreign key(id_wyd) references wydawnictwa (id));
26
27create table wypozyczenia (id_w int primary key identity (1,1),sygn char(5), id_cz char(5), id_p int, data_w date NOT NULL, data_z date,
28kara int default 0, constraint warunek_kara check(kara >= 0), constraint warunek_data_wypozyczenia check(data_w < data_z),
29constraint id_czytelnika_wypozyczenia foreign key(id_cz) references czytelnicy(id),
30constraint id_pracownika_wypozyczenia foreign key(id_p) references pracownicy(id),
31constraint id_ksiazki_wypozyczenia foreign key(sygn) references ksiazki(sygn),
32constraint para_unikalna_sygn_data unique (sygn,data_w));
33
34(SELECT CONCAT(imie,' ',nazwisko) as imie_nazwisko, data_w, data_z, tytul into wypoz_lato FROM czytelnicy,
35wypozyczenia, ksiazki WHERE (MONTH(data_w)=6 or MONTH(data_w)=7 or MONTH(data_w)=8) and wypozyczenia.sygn=ksiazki.sygn and czytelnicy.id=wypozyczenia.id_cz);
36
37select * from biblioteka.dbo.wypoz_lato;