-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathSQLQuery_QLThuVien_BTL_NET1.sql
429 lines (417 loc) · 11.5 KB
/
SQLQuery_QLThuVien_BTL_NET1.sql
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
USE BTL_NET1_QLThuVien
GO
--TAO KHOA NGOAI PRIMARYKEY
GO
ALTER TABLE SACHMUON ADD CONSTRAINT FRK_SACHMUON_PHIEUMUON FOREIGN KEY(MaPhieuMuon) REFERENCES PHIEUMUON(MaPhieuMuon)
ALTER TABLE SACHMUON ADD CONSTRAINT FRK_SACHMUON_SACH FOREIGN KEY (MaSach) REFERENCES SACH(MaSach)
ALTER TABLE PHIEUNHACTRA ADD CONSTRAINT FRK_PHIEUNHACTRA_NHANVIEN FOREIGN KEY (MaNhanVien) REFERENCES NHANVIEN(MaNhanVien)
ALTER TABLE PHIEUNHACTRA ADD CONSTRAINT FRK_PHIEUNHACTRA_SACH FOREIGN KEY (MaSach) REFERENCES SACH(MaSach)
ALTER TABLE PHIEUNHACTRA ADD CONSTRAINT FRK_PHIEUNHACTRA_THETHUVIEN FOREIGN KEY (MaThe) REFERENCES THETHUVIEN(MaThe)
ALTER TABLE PHIEUMUON ADD CONSTRAINT FRK_PHIEUMUON_SACH FOREIGN KEY (MaSach) REFERENCES SACH(MaSach)
ALTER TABLE PHIEUMUON ADD CONSTRAINT FRK_PHIEUMUON_THETHUVIEN FOREIGN KEY (MaThe) REFERENCES THETHUVIEN(MaThe)
alter table SACH add constraint def_SACH_SoLuong check(SoLuong>0)
alter table NHANVIEN add constraint unq_NHANVIEN_TenNV_DiaChiNV unique(TenNV,DiaChiNV),
constraint def_NHANVIEN_NgaySinh default(getdate()) for NgaySinh,
constraint def_NHANVIEN_NgayVaoLam default(getdate()) for NgayVaoLam,
constraint def_NHANVIEN_SoDienThoaiNV default(N'Chua co') for SoDienThoaiNV
alter table THETHUVIEN ADD CONSTRAINT UNQ_THETHUVIEN_TenSV unique(TenSV,DiaChiSV),
constraint def_THETHUVIEN_NgayTaoThe DEFAULT(GETDATE()) for NgayTaoThe,
constraint def_THETHUVIEN_NgayTheHetHan default(getdate()) for NgayTheHetHan,
constraint def_THETHUVIEN_NgaySinh default(getdate()) for NgaySinh,
constraint def_THETHUVIEN_SoDienThoaiSV default(getdate()) for SoDienThoaiSV
alter table SACHMUON ADD
CONSTRAINT ckh_SACHMUON_SoLuongSachMuon check(SoLuongSachMuon>0),
constraint def_SACHMUON_NgayTra default(getdate()) for NgayTra
alter table PHIEUNHACTRA add CONSTRAINT CHK_PHIEUNHACTRA_NgayLapThe default (getdate()) for NgayLapThe,
constraint ckh_PHIEUNHACTRA_DonGiaPhat check(DonGiaPhat>=0)
alter table PHIEUMUON add constraint chk_PHIEUMUON_NgayMuon default(getdate()) for NgayMuon
go
use BTL_NET1_QLThuVien
go
use BTL_NET1_QLThuVien
CREATE PROC sp_LOADSACH
AS
BEGIN
SELECT * FROM SACH
END
GO
CREATE PROC sp_SUASACH
@MaSach CHAR(5),
@TenSach NVARCHAR(200),
@TheLoai NVARCHAR(50),
@TinhTrang NVARCHAR(20),
@SoLuong INT,
@NhaXuatBan NVARCHAR(200),
@NamXuatBan CHAR(4),
@TacGia NVARCHAR(200),
@Anh Image=NULL
AS
BEGIN
IF NOT EXISTS(SELECT MaSach FROM SACH WHERE MaSach=@MaSach)
RETURN 1 ---KHONG TON TAI SACH
ELSE IF(@Anh IS NULL)
BEGIN
UPDATE SACH
SET TenSach=@TenSach,TheLoai=@TheLoai, TinhTrang=@TinhTrang,SoLuong=@SoLuong, NhaXuatBan=@NhaXuatBan,NamXuatBan=@NamXuatBan,TacGia=@TacGia
WHERE MaSach=@MaSach
END
ELSE
UPDATE SACH
SET TenSach=@TenSach,TheLoai=@TheLoai,TinhTrang=@TinhTrang,SoLuong=@SoLuong,NhaXuatBan=@NhaXuatBan,NamXuatBan=@NamXuatBan,TacGia=@TacGia,Anh=@Anh
WHERE MaSach = @MaSach
END
GO
drop proc sp_SUASACH
go
CREATE PROC sp_LUUSACH
@MaSach CHAR(5),
@TenSach NVARCHAR(200),
@TheLoai NVARCHAR(50),
@TinhTrang NVARCHAR(20),
@SoLuong INT,
@NhaXuatBan NVARCHAR(200),
@NamXuatBan CHAR(4),
@TacGia NVARCHAR(200),
@Anh IMAGE
AS
BEGIN
IF EXISTS(SELECT * FROM SACH WHERE MaSach=@MaSach)
RETURN 1 ---TON TAI SACH
INSERT INTO SACH VALUES (@MaSach,@TenSach,@TheLoai,@TinhTrang,@SoLuong,@NhaXuatBan,@NamXuatBan,@TacGia,@Anh)
END
GO
CREATE PROC sp_XOASACH
@MaSach CHAR(5)
AS
BEGIN
IF EXISTS(SELECT * FROM PHIEUMUON WHERE MaSach=@MaSach)
RETURN 1 ---TON TAI MASACH TRONG PHIEUMUON
IF EXISTS(SELECT * FROM PHIEUNHACTRA WHERE MaSach=@MaSach)
RETURN 2 ---TON TAI MASACH TRONG PHIEUNHACTRA
IF EXISTS(SELECT * FROM SACHMUON WHERE MaSach = @MaSach)
RETURN 3 ---TON TAI MASACH TRONG PHIEUNHACTRA
DELETE FROM SACH
WHERE MaSach = @MASACH
END
GO
-------TRUY VAN DU LIEU SACHMUON
CREATE PROC sp_SUASACHMUON
AS
BEGIN
SELECT MaPhieuMuon,MaSach,TinhTrangSachMuon,CONVERT(CHAR(10),NgayTra,103) as NgayTra FROM SACHMUON
END
GO
SELECT * FROM SACHMUON
GO
CREATE PROC sp_SUASACHMUON
@MaPhieuMuon CHAR(5),
@MaSach CHAR(5),
@TinhTrang NVARCHAR(20),
@SoLuongSachMuon INT,
@NgayTra DATETIME
AS
BEGIN
IF NOT EXISTS(SELECT * FROM SACH WHERE MaSach=@MaSach)
RETURN 1 ---KHONG TON TAI SACH
IF NOT EXISTS(SELECT * FROM PHIEUMUON WHERE MaPM = @MaPhieuMuon)
RETURN 2 ---KHONG TON TAI PHIEUMUON
UPDATE SACHMUON
SET TinhTrangSachMuon=@TinhTrang,
SoLuongSachMuon=@SoLuongSachMuon,
NgayTra=@NgayTra
WHERE MaPhieuMuon=@MaPhieuMuon AND MaSach=@MaSach
END
GO
CREATE PROC sp_LUUSACHMUON
@MaPhieuMuon CHAR(5),
@MaSach CHAR(5),
@SoLuongSachMuon INT,
@TinhTrang NVARCHAR(20),
@NgayTra DATETIME
AS
BEGIN
IF NOT EXISTS(SELECT * FROM SACH WHERE MaSach=@MaSach)
RETURN 1 ---KHONG TON TAI SACH
IF NOT EXISTS(SELECT * FROM PHIEUMUON WHERE MaPM = @MaPhieuMuon)
RETURN 2 ---KHONG TON TAI PHIEUMUON
INSERT INTO SACHMUON VALUES (@MaPhieuMuon,@MaSach,@TinhTrang,@SoLuongSachMuon,@NgayTra)
END
GO
CREATE PROC sp_XOASACHMUON
@MaPhieuMuon CHAR(5),
@MaSach CHAR(5)
AS
BEGIN
IF NOT EXISTS(SELECT * FROM SACHMUON WHERE MaPhieuMuon=@MaPhieuMuon)
RETURN 1 ---KHONG TON TAI MAPHIEUMUON
IF NOT EXISTS(SELECT * FROM SACHMUON WHERE MaSach=@MaSach)
RETURN 2 ---KHONG TON TAI MASACH
DELETE FROM SACHMUON
WHERE @MaPhieuMuon=MaPhieuMuon AND @MaSach=MaSach
END
GO
SELECT * FROM SACHMUON
SELECT * FROM PHIEUMUON
--------TRUY VAN DU LIEU THETHUVIEN
GO
CREATE PROC sp_LOADTHETHUVIEN
AS
BEGIN
SELECT MaTheThuVien,TenSinhVien,
CASE WHEN GioiTinh=1 THEN 'Nam' ELSE N'Nu' END AS GioiTinh,
NgaySinh,DiaChiSV,SoDienThoaiSV,NgayTaoThe,NgayTheHetHan FROM THETHUVIEN
END
GO
CREATE PROC sp_SUATHETHUVIEN
@MaThe CHAR(5),
@TenSV NVARCHAR(100),
@GioiTinh Bit,
@NgaySinh DATETIME,
@DiaChiSV NVARCHAR(200),
@DienThoai NVARCHAR(20),
@NgayTaoThe DATETIME,
@NgayTheHetHan DATETIME
AS
BEGIN
IF NOT EXISTS(SELECT * FROM THETHUVIEN WHERE MaTheThuVien=@MaThe)
RETURN 1 ---KHONG TON TAI THETHUVIEN
UPDATE THETHUVIEN
SET TenSinhVien=@TenSV,
GioiTinh=@GioiTinh,
NgaySinh=@NgaySinh,
DiaChiSV=@DiaChiSV,
SoDienThoaiSV=@DienThoai,
NgayTaoThe=@NgayTaoThe,
NgayTheHetHan=@NgayTheHetHan
WHERE MaTheThuVien=@MaThe
END
GO
CREATE PROCEDURE sp_LUUTHETHUVIEN
@MaThe CHAR(5),
@TenSinhVien NVARCHAR(100),
@GioiTinh Bit,
@NgaySinh DATETIME,
@DiaChiSinhVien NVARCHAR(200),
@SoDienThoai NVARCHAR(20),
@NgayTaoThe DATETIME,
@NgayHetHanThe DATETIME
AS
BEGIN
IF EXISTS(SELECT * FROM THETHUVIEN WHERE MaTheThuVien=@MaThe)
RETURN 1
INSERT INTO THETHUVIEN VALUES (@MaThe,@TenSinhVien,@GioiTinh,@NgaySinh,@DiaChiSinhVien,@SoDienThoai,@NgayTaoThe,@NgayHetHanThe)
END
GO
CREATE PROCEDURE sp_XOATHETHUVIEN
@Mathetv CHAR(5)
AS
BEGIN
IF EXISTS(SELECT * FROM PHIEUMUON WHERE MaThe=@Mathetv)
RETURN 1 ---TON TAI THETV
IF EXISTS(SELECT * FROM PHIEUNHACTRA WHERE MaTheThuVien=@Mathetv)
RETURN 1 ---TON TAI THETV
DELETE FROM THETHUVIEN
WHERE @Mathetv=MaTheThuVien
END
GO
-----TRUY VAN DU LIEU NHANVIEN
CREATE PROCEDURE sp_SUANHANVIEN
@MaNhanVien CHAR(5),
@TenNhanVien NVARCHAR(100),
@NgaySinh DATETIME,
@NgayVaoLam DATETIME,
@GioiTinh Bit,
@ChucVuNV NVARCHAR(50),
@DiaChiNV NVARCHAR(200),
@DienThoai NVARCHAR(20)
AS
BEGIN
IF NOT EXISTS(SELECT * FROM NHANVIEN WHERE MaNV=@MaNhanVien)
RETURN 1 ---KHONG TON TAI MA NHAN VIEN
UPDATE NHANVIEN
SET TenNV=@TenNhanVien,NgaySinh=@NgaySinh,GioiTinh=@GioiTinh,DiaChiNV=@DiaChiNV,SoDienThoaiNV=@DienThoai,ChucVuNV=@ChucVuNV,NgayVaoLam=@NgayVaoLam
WHERE MaNV=@MaNhanVien
END
GO
CREATE PROCEDURE sp_LUUNHANVIEN
@MaNV CHAR(5),
@TenNV NVARCHAR(100),
@GioiTinh Bit,
@ChucVuNV NVARCHAR(50),
@DiaChiNV NVARCHAR(200),
@DienThoai NVARCHAR(20),
@NgaySinhNV DATETIME,
@NgayVaoLam DATETIME
AS
BEGIN
IF EXISTS(SELECT * FROM NHANVIEN WHERE MaNV = @MaNV)
RETURN 1 ---KHONG TON TAI MANV
INSERT INTO NHANVIEN VALUES (@MaNV,@TenNV,@NgaySinhNV,@GioiTinh,@DiaChiNV,@DienThoai,@NgayVaoLam,@ChucVuNV)
END
GO
CREATE PROCEDURE sp_XOANHANVIEN
@MaNhanVien CHAR(5)
AS
BEGIN
IF EXISTS(SELECT * FROM PHIEUNHACTRA WHERE MaNhanVien=@MaNhanVien)
RETURN 1 ---TON TAI MA NV
DELETE FROM NHANVIEN
WHERE @MaNhanVien=MaNV
END
GO
----- truy van du lieu PHIEUMUON
CREATE PROCEDURE sp_LOADPHIEUMUON
AS
BEGIN
SELECT MaPM,MaSach,MaThe,CONVERT(CHAR(10),NgayMuon,103) as NgayMuon FROM PHIEUMUON
END
GO
CREATE PROCEDURE sp_SUAPHIEUMUON
@MaPhieuMuon CHAR(5),
@MaSach CHAR(5),
@MaThe CHAR(5),
@NgayMuon DATETIME
AS
BEGIN
IF NOT EXISTS(SELECT * FROM PHIEUMUON WHERE MaPM=@MaPhieuMuon)
RETURN 1 ---KHONG TON TAI MA PHIEU MUON
IF NOT EXISTS(SELECT * FROM SACH WHERE MaSach=@MaSach)
RETURN 2 ---KHONG TON TAI MA SACH
IF NOT EXISTS(SELECT * FROM THETHUVIEN WHERE MaTheThuVien=@MaThe)
RETURN 3 ---KHONG TON TAI MA THE THU VIEN
UPDATE PHIEUMUON
SET MaSach=@MaSach, MaThe=@MaThe,NgayMuon=@NgayMuon
WHERE MaPM=@MaPhieuMuon
END
GO
CREATE PROCEDURE sp_LUUPHIEUMUON
@MaPhieuMuon CHAR(5),
@MaSach CHAR(5),
@MaThe CHAR(5),
@NgayMuon DATETIME
AS
BEGIN
IF EXISTS(SELECT * FROM PHIEUMUON WHERE MaPM=@MaPhieuMuon)
RETURN 1 ---TON TAI MA PHIEU MUON
IF NOT EXISTS(SELECT * FROM SACH WHERE MaSach=@MaSach)
RETURN 2 ---KHONG TON TAI MA SACH
IF NOT EXISTS(SELECT * FROM THETHUVIEN WHERE MaTheThuVien=@MaThe)
RETURN 3 ---KHONG TON TAI MA THE TV
INSERT INTO PHIEUMUON VALUES (@MaPhieuMuon,@MaSach,@MaThe,@NgayMuon)
END
GO
CREATE PROCEDURE sp_XOAPHIEUMUON
@MaPM CHAR(5)
AS
BEGIN
IF EXISTS(SELECT * FROM SACHMUON WHERE MaPhieuMuon=@MaPM)
RETURN 1 ---TON TAI MA PM
DELETE FROM PHIEUMUON
WHERE @MaPM=MaPM
END
GO
---------TRUY VAN DU LIEU PHIEUNHACTRA
CREATE PROCEDURE sp_LOADPHIEUNHACTRA
AS
BEGIN
SELECT MaPNT,MaTheThuVien,CONVERT(CHAR(10),NgayLapPhieu,103) as NgayLapPhieu,DonGiaPhat,MaNhanVien,MaSach FROM PHIEUNHACTRA
END
GO
CREATE PROCEDURE sp_SUAPHIEUNHACTRA
@MaPNT CHAR(5),
@MaTheTV CHAr(5),
@NgayLap DATETIME,
@DonGiaPhat INT,
@MaNV CHAR(5),
@MaSach CHAR(5)
AS
BEGIN
IF NOT EXISTS(SELECT * FROM PHIEUNHACTRA WHERE MaPNT=@MaPNT)
RETURN 1 ---KHONG TON TAI MA PNT
IF NOT EXISTS(SELECT * FROM NHANVIEN WHERE MaNV=@MaNV)
RETURN 2 ---KHONG TON TAI MA NV
IF NOT EXISTS(SELECT * FROM THETHUVIEN WHERE MaTheThuVien=@MaTheTV)
RETURN 3 ---KHONG TON TAI MA THE TV
IF NOT EXISTS(SELECT * FROM SACH WHERE MaSach=@MaSach)
RETURN 4 ---KHONG TON TAI MA SACH
UPDATE PHIEUNHACTRA
SET MaTheThuVien=@MaTheTV,
NgayLapPhieu=@NgayLap,
DonGiaPhat=@DonGiaPhat,
MaNhanVien=@MaNV,
MaSach=@MaSach
WHERE MaPNT=@MaPNT
END
GO
CREATE PROCEDURE sp_LUUPHIEUNHACTRA
@MaPNT CHAR(5),
@MaTheTV CHAR(5),
@NgayLapPNT DATETIME,
@DonGiaPhat INT,
@MaNV CHAR(5),
@MaSach CHAR(5)
AS
BEGIN
IF EXISTS(SELECT * FROM PHIEUNHACTRA WHERE MaPNT=@MaPNT)
RETURN 1 ---TON TAI MA PNT
IF NOT EXISTS(SELECT * FROM NHANVIEN WHERE MaNV=@MaNV)
RETURN 2 ---KHONG TON TAI MA NV
IF NOT EXISTS(SELECT * FROM THETHUVIEN WHERE MaTheThuVien=@MaTheTV)
RETURN 3 ----KHONG TON TAI MA THETV
IF NOT EXISTS(SELECT * FROM SACH WHERE MaSach=@MaSach)
RETURN 4 ----KHONG TON TAI MA SACH
INSERT INTO PHIEUNHACTRA VALUES (@MaPNT,@MaTheTV,@NgayLapPNT,@DonGiaPhat,@MaNV,@MaSach)
END
GO
CREATE PROCEDURE sp_XOAPHIEUNHACTRA
@MaPNT CHAR(5)
AS
BEGIN
DELETE FROM PHIEUNHACTRA
WHERE @MaPNT=MaPNT
END
GO
-------------------
GO
CREATE TABLE TAIKHOAN
(
TenDN NVARCHAR(100) not null primary key,
MK NVARCHAR(100) not null,
NHMK NVARCHAR(100) not null,
)
GO
CREATE PROCEDURE sp_DOCTK
@TenDN NVARCHAR(100),
@MK NVARCHAR(100)
AS
BEGIN
SELECT TAIKHOAN.TenDN,MK FROM TAIKHOAN WHERE TenDN=@TenDN
END
GO
CREATE PROC sp_LUUTK
@TenDN NVARCHAR(100),
@MK NVARCHAR(100),
@NHMK NVARCHAR(100)
AS
BEGIN
INSERT INTO TAIKHOAN VALUES (@TenDN,@MK,@NHMK)
END
-----------DEM TONG
GO
CREATE PROC sp_DEMTK
AS
BEGIN
SELECT COUNT(*) FROM SACH
END
/*GO
SELECT * FROM PHIEUNHACTRA
GO
CREATE PROC sp_DOCPHIEUMUONSINHVIEN
@MaThe CHAR(3)
AS
BEGIN
SELECT B.MaPM, A.MaSach,NgayMuon
FROM SACH A, PHIEUMUON B
WHERE A.MaSach = B.MaSach AND MaThe=@Mathe
END
*/