Bài Giải Bài Tập Trigger, Thủ Tục Và Hàm_Hệ Quản Trị Cơ Sở Dữ ...
Có thể bạn quan tâm
- Trang chủ >>
- Công Nghệ Thông Tin >>
- Cơ sở dữ liệu
Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (217.39 KB, 8 trang )
1. Stored-procedure tính tổng của 2 số nguyên.CREATE PROCEDURE sp_Tong@So1 int, @So2 int, @Tong int outASBeginSET @Tong = @So1 + @So2;End--Kiểm traDeclare @Sum intExec sp_Tong 1, -2, out @SumSelect @Sum2. Stored procedure liệt kê những thông tin của đầu sách, thông tin tựa sách và sốlượng sách hiện chưa được mượn của một đầu sách cụ thể (ISBN).VớiTuasach (ma_tuasach, tuasach, tacgia, tomtat)Dausach (isbn, ma_tuasach, ngonngu, bia, trangthai)Cuonsach (isbn, ma_cuonsach, tinhtrang)CREATE PROCEDURE sp_ThongtinDausach@isbn intASBeginSELECT tuasach, tacgia, ngonngu, bia, trangthai, count(*)FROM dausach ds, tuasach ts, cuonsach csWHEREds.ma_tuasach = ts.ma_tuasach ANDds.isbn = cs.isbn ANDds.isbn = @isbn ANDtinhtrang = yesGROUP BY tuasach, tacgia, ngonngu, bia, trangthaiEnd3. Viết hàm tính tuổi của người có năm sinh được nhập vào như một tham số củahàm.Create function TinhTuoi(@namsinh int)returns intASBeginreturn year(getdate()) - @namsinhEnd4. Cho CSDL như sau:DocGia (ma_DocGia, ho, tenlot, ten, ngaysinh)Nguoilon (ma_DocGia, sonha, duong, quan, dienthoai, han_sd)Treem (ma_DocGia, ma_DocGia_nguoilon)Tuasach (ma_tuasach, tuasach, tacgia, tomtat)Dausach (isbn, ma_tuasach, ngonngu, bia, trangthai)Cuonsach (isbn, ma_cuonsach, tinhtrang)DangKy (isbn, ma_DocGia, ngay_dk, ghichu)Muon (isbn, ma_cuonsach, ma_DocGia, ngay_muon, ngay_hethan)QuaTrinhMuon(isbn, ma_cuonsach, ngay_muon, ma_DocGia, ngay_hethan,ngay_tra, tien_muon, tien_datra, tien_datcoc, ghichu)Việt các stored procedures thưc hiện các việc sau:a. Xem thông tin độc giảTên: sp_ThongtinDocGiaNội dung: Liệt kê những thông tin của độc giả tương ứng với mã độc giả. Nếu độc giảlà người lớn thì hiển thịthông tin độc giả + thông tin trong bảng người lớn. Nếu độc giả là trẻ em thì hiển thịnhững thông tin độc giả +thông tin của bảng trẻ em.Thực hiện:[1] Kiểm tra độc giả này thuộc loại người lớn hay trẻ em.[2] Nếu là người lớn thì: In những thông độc giả này, gồm có: thông tin độc giả +thông tin người lớn.[3] Nếu là trẻ em thì: In những thông tin liên quan đến độc giả này, gồm có: thông tinđộc giả + thông tin trẻ em.CREATE PROC sp_ThongtinDocGiaASIF EXISTS(SELECT *FROM DocGia, Nguoilonwhere DocGia.ma_DocGiaBEGINSELECT *FROM DocGia, Nguoilonwhere DocGia.ma_DocGiaENDIF EXISTS(SELECT *FROM DocGia, Treemwhere DocGia.ma_DocGiaBEGINSELECT *FROM DocGia, Treemwhere DocGia.ma_DocGiaEND= Nguoilon.ma_DocGia )= Nguoilon.ma_DocGia= Treem.ma_DocGia )= Treem.ma_DocGiab. Thông tin đầu sách:Tên: sp_ThongtinDausachNội dung: Liệt kê những thông tin của đầu sách, thông tin tựa sách và số lượng sách hiệnchưa được mượn của một đầu sách cụ thể (ISBN).CREATE PROCEDURE sp_ThongtinDausachASBEGINSELECT *, (select count(tinhtrang) from Cuonsach as cs where tinhtrang = 'true'and ds.isbn = cs.isbn group by isbn) as soluongfrom DauSach as ds join (select ma_tuasach, tuasach, tacgia from Tuasach) as ts on(ts.ma_tuasach = ds.ma_tuasach)ENDGOc. Liệt kê những độc giả người lớn đang mượn sách:Tên: sp_ThongtinNguoilonDangmuonNội dung: Liệt kê những thông tin của tất cả độc giả đang mượn sách của thư viện.CREATE PROCEDURE sp_ThongtinNguoilonDangmuonASBEGINselect *from Nguoilon as ngl join (select ma_DocGia from Muon) as T on (T.ma_DocGia =ngl.ma_DocGia)where NOT EXISTS (select * from QuaTrinhMuon as qt where T.ma_DocGia =qt.ma_DocGia)ENDGOd. Liệt kê những độc giả người lớn đang mượn sách quá hạn:Tên: sp_ThongtinNguoilonQuahanNội dung: Liệt kê những thông tin của tất cả độc giả đang mượn sách của thư viện đangtrong tình trạng mượn quá hạn 14 ngày.CREATE PROCEDURE sp_ThongtinNguoilonQuahanASBEGINselect *from Nguoilon as ngl join (select ma_DocGia from Muon) as T on (T.ma_DocGia =ngl.ma_DocGia)where NOT EXISTS (select * from QuaTrinhMuon as qt where T.ma_DocGia =qt.ma_DocGia)ENDe. Liệt kê những độc giả người lớn đang mượn sách có trẻ em cũng đang mượn sách:Tên: sp_DocGiaCoTreEmMuonNội dung: Liệt kê những những độc giả đang trong tình trạng mượn sách và những trẻ emđộc giả này đang bảo lãnh cũng đang trong tình trạng mượn sách.Create PROCEDURE sp_DocGiaCoTreEmMuonASBEGINselect NGL.ma_docgia as ngl,TE.ma_docgia as treem, sonha, duong, quan , dienthoaifrom Treem as TE join Nguoilon as NGL on (TE.ma_DocGia_nguoilon = NGL.ma_DocGia) jjoin Muon as m on (m.ma_DocGia = TE.ma_DocGia)where NOT EXISTS (select * from QuaTrinhMuon as qt where TE.ma_DocGia =qt.ma_DocGia)and NOT EXISTS (select * from QuaTrinhMuon as qt where NGL.ma_DocGia =qt.ma_DocGia)ENDBài tập 5: Tạo một số Trigger như sau trong CSDL Thư viện:5.1. tg_delMuon:Nội dung: Cập nhật tình trạng của cuốn sách là yes.CREATE TRIGGER tg_delMuon ON muonFOR deleteASBeginDECLARE @isbn int, @ma_cuonsach intSELECT @isbn = isbn, @ma_cuonsach = ma_cuonsachFROM deletedUPDATE cuonsachSET tinhtrang = yesWHERE isbn = @isbn AND ma_cuonsach = @ma_cuonsachEndGO5.2. tg_insMuon:Nội dung: Cập nhật tình trạng của cuốn sách là no.CREATE TRIGGER tg_insMuon ON muonFOR deleteASBeginDECLARE @isbn int, @ma_cuonsach intSELECT @isbn = isbn, @ma_cuonsach = ma_cuonsachFROM deletedUPDATE cuonsachSET tinhtrang = noWHERE isbn = @isbn AND ma_cuonsach = @ma_cuonsachEndGO5.3. tg_updCuonSach:Nội dung: Khi thuộc tính tình trạng trên bảng cuốn sách được cập nhật thì trạng thái củađầu sách cũng được cậpnhật theo. Cài đặt các thủ tục sau cho CSDL Quản lý thư viện.5.4 tg_InfThongBaoNội dung: Viết trigger khi thêm mới, sửa tên tác giả, thêm/sửa một tựa sách thì in ra câuthông báo bằng TiếngViệt ‘Đã thêm mới tựa sách’.Gợi ý :Kiểm tra trigger đã tạo bằng khối lệnh để dữ liệu không bị thay đổi :begin tran--khối lệnh thêm,xóa,sửaRollbackCreate Trigger tg_InfThongBao TuaSachfor insert,updateASbegindeclare @ma_tuasach int, @TuaSach nvarchar(63), @tacgia nvarchar(31)select @ma_tuasach = ma_tuasach, @TuaSach = TuaSach,@tacgia= tacgiafrom insertedif update (ma_tuasach)beginupdate TuaSachset ma_tuasach=@ma_tuasach,TuaSach=@TuaSach,tacgia=@tacgiawhere ma_tuasach=@ma_tuasachprint N'Thêm sách thành công'endelsebegininsert into TuaSach(ma_tuasach,TuaSach,tacgia,tomtat) values(@ma_tuasach,@TuaSach,@tacgia,'')print N'Thêm sách thành công'endendBài tập 6:Viết các Function sau trong CSDL Đề án6.1. Viết hàm trả về tổng tiền lương trung bình của một phòng ban tùy ý (truyền vàoMaPB)CREATE FUNCTION func_AVGLuongPB (@MAPHG varchar(2))RETURNS numberic(18,0)ASBEGINdeclare @LUONGTBselect MAPHG,MANV, @LUONGTB = AVG(Luong)from NHANVIEN inner join PHONGBAN on NHANVIEN.PHG=PHONGBAN.MAPHGRETURNS @LUONGTBEND6.2. Viết hàm trả về tổng lương nhận được của nhân viên theo dự án (truyền vào MaNVvà MaDA)CREATE FUNCTION func_TONGLUONG (@MANV varchar(9),@MADA varchar(2)RETURNS numberic(18,0)ASBEGINdeclare @TONGLUONGselect MANV,MADA , @TONGLUONG = sum(LUONG)from (DEAN as DA inner join PHANCONG as PC on DA.MADA = PC.SODA) inner joinNHANVIEN as NV ON PC.MA_NVIEN = NV.MANVRETURNS @TONGLUONGEND6.3. Viết hàm trả về tổng tiền lương trung bình của các phòng banCREATE FUNCTION func_AVGLuongPB (@MAPHG varchar(2))RETURNS numberic(18,0)ASBEGINdeclare @LUONGTBselect MAPB,MANV,@LUONGTB = AVG(Luong)from NHANVIEN inner join PHONGBAN on NHANVIEN.PHG=PHONGBAN.MAPHGgroup by MAPHGRETURNS @LUONGTBEND6.4. Viết hàm trả về tổng tiền thưởng cho nhân viên dựa vào tổng số giờ tham gia dựán(Time_Total) như sau:- Nếu Time_Total >=30 và 60 và =100 và =150 thì tổng tiền thưởng = 1600 ($)CREATE FUNCTION func_ThuongNhanVien(@MANV varchar(9))RETURNS @ThuongNhanVien TABLE(MANVINTNOT NULL,HONV nvarchar(30),TENLOT nvarchar(30),TENNVnvarchar(30),TIENTHUONGnumberic(18,0) ,SOGIOLAMnumberic(18,0) )ASBEGINDECLARE @SoGioLam numberic(18,0)DECLARE @TienThuong numberic(18,0)SELECT @SoGioLam = MAX(THOIGIAN)FROM PHANCONGWHERE MA_NVIEN = @MANVIF @SoGioLam >= 30 AND @SoGioLam 60 AND @SoGioLam = 100 AND @SoGioLam < 150BEGINSET @TienThuong = 1200ENDELSE IF @SoGioLam >= 150BEGINSET @TienThuong = 1600ENDINSERT @ThuongNhanVienSELECT nv.MANV,nv.HONV,nv.TENLOT,nv.TENNV,@TienThuong,@SoGioLamFROM NHANVIEN nv INNER JOIN DUAN da ON nv.MANV = da.MA_NVIENWHERE nv.MANV = @MANVRETURNENDGO6.5. Viết hàm trả ra tổng số dự án theo mỗi phòng ban.6.6. Viết hàm trả về kết quả là một bảng (Table), viết bằng hai cách: Inline Table-ValuedFunctions và Multistatement Table-Valued. Thông tin gồm: MaNV, HoTen, NgaySinh,NguoiThan, TongLuongTB.
Tài liệu liên quan
- Khái niệm về cơ sở dữ liệu và hệ quản trị cơ sở dữ liệu
- 9
- 22
- 55
- Thiết Kế Hệ Thống Thông Tin Quản Lý dựa trên ngôn ngữ lập trình VisualBase 6.0 và hệ quản trị cơ sở dữ liệu Access 2003
- 52
- 930
- 2
- Tài liệu Bài thực hành hệ quản trị cơ sở dữ liệu số 4 doc
- 1
- 1
- 1
- Bài tập môn hệ quản trị cơ sở dự liệu '''' Chương trình quản lý thi đại học'''' pptx
- 70
- 1
- 8
- Bài tập thực hành môn Hệ quản trị cơ sơ dữ liệu
- 33
- 1
- 10
- Bài tập thực hành môn Hệ quản trị cơ sơ dữ liệu
- 28
- 1
- 5
- Bài tập thực hành môn Hệ quản trị cơ sơ dữ liệu
- 44
- 1
- 10
- Bài tập thực hành môn Hệ quản trị cơ sơ dữ liệu
- 42
- 2
- 7
- Xây dựng website tin tức với ngôn ngữ lập trình PHP và hệ quản trị cơ sở dữ liệu MySQL
- 59
- 4
- 16
- luận văn tìm hiểu về cơ sở dữ liệu đa phương tiện và hệ quản trị cơ sở dữ liệu đa phương tiện từ đó xây dựng mô phỏng một cơ sở dữ liệu đa phương tiện
- 91
- 2
- 2
Tài liệu bạn tìm kiếm đã sẵn sàng tải về
(290.28 KB - 8 trang) - Bài giải bài tập trigger, thủ tục và hàm_Hệ quản trị Cơ sở dữ liệu_DBMS Tải bản đầy đủ ngay ×Từ khóa » Bài Tập Về Trigger Trong Sql Có Lời Giải
-
Bài Tập Trigger Có Lời Giải, Sử Dụng Trigger Trong Sql Qua Ví Dụ ...
-
Bài Tập Về Trigger Trong SQL - Hàng Hiệu
-
Bài Tập Trigger Có Lời Giải
-
Bài Tập Trigger Có Lời Giải, Bài Tập Cơ Sở Dữ Liệu Có Lời Giải
-
Bài Tập Trigger Có Lời Giải | Giải đề Hệ Quản Trị Cơ Sở Dữ Liệu Phần 4 ...
-
[Top Bình Chọn] - Các Dạng Bài Tập Về Trigger - Trần Gia Hưng
-
NEW Bài Tập Trigger Có Lời Giải, Bài Tập Cơ Sở Dữ Liệu Có Lời Giải
-
Giải đề Hệ Quản Trị Cơ Sở Dữ Liệu Phần 4 Trigger Trong Sql Server ...
-
Sử Dụng Trigger Trong SQL Qua Ví Dụ Cơ Bản. - TMA Solutions
-
TRIGGER Trong SQL | TopDev
-
[PDF] NGÔN NGỮ TRUY VẤN DỮ LIỆU - Topica
-
(PDF) Cafedev Tài Liệu Sql Toàn Tập + Bài Tập Full Hướng Dẫn
-
Top 10 Bài Tập Sql Quản Lý Bán Hàng Có Lời Giải Mới Nhất 2021