· 5 years ago · May 04, 2020, 09:08 PM
1IF NOT EXISTS (
2 SELECT name
3 FROM sys.databases
4 WHERE name = N'biblioteka'
5)
6CREATE DATABASE [biblioteka]
7GO
8
9SELECT FORMAT (getdate(), 'yyyy/MM/dd') as date
10GO
11
12USE [biblioteka]
13
14IF OBJECT_ID('dbo.wypozyczenia', 'U') IS NOT NULL
15DROP TABLE dbo.wypozyczenia
16
17IF OBJECT_ID('dbo.czytelnicy', 'U') IS NOT NULL
18DROP TABLE dbo.czytelnicy
19
20IF OBJECT_ID('dbo.ksiazki', 'U') IS NOT NULL
21DROP TABLE dbo.ksiazki
22
23IF OBJECT_ID('dbo.wydawnictwa', 'U') IS NOT NULL
24DROP TABLE dbo.wydawnictwa
25
26
27CREATE TABLE dbo.czytelnicy
28(
29 id char(5) PRIMARY KEY CHECK(id LIKE '[A-Za-z][A-Za-z][0-9][0-9][0-9]'),
30 nazwisko nvarchar(15) NOT NULL,
31 imię nvarchar(15) NOT NULL,
32 pesel char(16) NOT NULL,
33 data_ur date NOT NULL,
34 plec char(1), Check(plec='K' or plec='M'),
35 telefon nvarchar(15)
36);
37GO
38
39IF OBJECT_ID('dbo.pracownicy', 'U') IS NOT NULL
40DROP TABLE dbo.pracownicy
41
42CREATE TABLE dbo.pracownicy
43(
44 id INT Identity(1,1) NOT NULL PRIMARY KEY,
45 nazwisko NVARCHAR(15) NOT NULL,
46 imię NVARCHAR(15) NOT NULL,
47 data_ur date NOT NULL,
48 data_zatr date NOT NULL,
49 CHECK(data_ur < data_zatr)
50);
51GO
52
53
54
55CREATE TABLE dbo.wydawnictwa
56(
57 id INT Identity(1,1) NOT NULL PRIMARY KEY,
58 nazwa NVARCHAR(50) NOT NULL,
59 miasto NVARCHAR(50) NOT NULL,
60 telefon VARCHAR(15) NOT NULL,
61
62);
63GO
64
65CREATE TABLE dbo.ksiazki
66(
67 sygn char(5) NOT NULL PRIMARY KEY,
68 id_wyd INT NOT NULL FOREIGN KEY REFERENCES dbo.wydawnictwa(id),
69 tytuł NVARCHAR(40) NOT NULL,
70 cena money NOT NULL,
71 strony int,
72 gatunek nvarchar(max) NOT NULL
73 CHECK(gatunek='powieść' or gatunek='powieść historyczna' or gatunek='dla dzieci' or gatunek='wiersze'
74 or gatunek='kryminał' or gatunek='powiesć science fiction' or gatunek='książka naukowa')
75);
76GO
77
78CREATE TABLE dbo.wypozyczenia
79(
80 id_w INT IDENTITY(1,1) NOT NULL PRIMARY KEY,
81 sygn char(5) NOT NULL FOREIGN KEY (sygn) REFERENCES dbo.ksiazki (sygn),
82 id_cz char(5) NOT NULL FOREIGN KEY (id_cz) REFERENCES dbo.czytelnicy (id),
83 id_p INT NOT NULL FOREIGN KEY (id_p) REFERENCES dbo.pracownicy (id),
84 data_w date NOT NULL,
85 data_z date ,
86 kara money Default(0) check(kara >=0),
87 Check(data_w < data_z)
88);
89GO