Cho cơ sở dữ liệu quản lý bán hàng gồm các bảng dữ liệu sau: + Bảng DMKhach để lưu các danh mục các khách hàng gồm các thuộc tính sau: Tên Thuộc tính Giải thích SoHD Số hoá đơn bán MaKh
Trang 1ĐỀ CƯƠNG ÔN TẬP MÔN: CƠ SỞ DỮ LIỆU_II
I PHẦN LÝ THUYẾT
1 Một số thao tác cơ bản trên SQL Server 2005: Tạo một CSDL mới, Tạo bảng mới, Xóa bảng, xóa CSDL, Mở một query editor để viết câu lệnh SQL
2 Ngôn ngữ thao tác dữ liệu: Câu lệnh truy vấn (SELECT): Truy vấn cơ bản, Phép hợp (UNION), Phép nối , Mệnh đề GROUP BY, HAVING, Truy vấn con (Subquery), Thêm, cập nhật và xóa dữ liệu
3 Ngôn ngữ định nghĩa dữ liệu: Tạo bảng, Các loại ràng buộc(CHECK, PRIMARY KEY, FOREIGN KEY), Sửa đổi định nghĩa bảng, Xóa bảng , Khung nhìn - VIEW
4 Thủ tục lưu trữ (Stored procedure)
5 Hàm do người dùng định nghĩa (User Defined Function -UDF)
6 Bẫy sự kiện (Trigger)
7 Các hàm quan trọng trong T-SQL (ISNUMERIC, ROUND, LEFT, RIGHT, SUBSTRING, LEN, REPLACE, STUFF, LOWER/UPPER, LTRIM/RTRIM, GETDATE, DAY/ MONTH/ YEAR, DATEPART)
II PHẦN BÀI TẬP
Bài 1.
Cho cơ sở dữ liệu quản lý bán hàng gồm các bảng dữ liệu sau:
+ Bảng DMKhach để lưu các danh mục các khách hàng gồm các thuộc tính sau:
Tên Thuộc tính Giải thích
SoHD Số hoá đơn bán MaKhach Mã khách hàng NgayHD Ngày hoá đơn DienGiai Diễn giải
+ Bảng ChiTietHoaDon để lưu chi tiết các hoá đơn bán hàng gồm các thuộc tính sau:
Yêu cầu
khoá chính hoặc ràng buộc khoá ngoài yêu cầu định nghĩa đầy đủ)
Thực hiện các câu lệnh truy vấn sau:
1 Đưa ra danh sách mặt hàng chưa được bán trong tháng 9 năm 2009
Tên Thuộc tính Giải thích
MaKhach Mã khách hàng TenKhach Tên khách hàng DiaChi Địa khách hàng DienThoai Điện thoại
Tên Thuộc tính Giải thích
MaHang Mã hàng TenHang Tên hàng DVT Đơn vị tính
Tên Thuộc tính Giải thích
Trang 22 Đưa ra danh sách khách hàng có địa chỉ ở Thái Nguyên và từng mua hàng trong tháng 9 năm 2009
3 Đưa ra số lượng đã bán tương ứng của từng mặt hàng trong tháng 9 năm 2009
4 Đưa ra tổng số lượng hàng đã bán cho mục đích mua hàng ‘Tiếp khách’
5 Hiển thị thông tin khách hàng đã từng mua hàng tại cửa hàng
2/ Tạo View để tổng hợp dữ liệu về từng mặt hàng đã được bán (Cấu trúc View gồm các thuộc tính: MaHang, TenHang, DVT, SoLuongBan)
3 Tạo View để tổng hợp dữ liệu về các mặt hàng đã được bán với số lượng lớn nhất
4/ Tạo View để tổng hợp dữ liệu về các khách hàng đã mua hàng trong ngày 20/10/2005 5/ Tạo thủ tục có tham số vào là @SoHD để đưa ra danh mục các mặt hàng có trong hoá đơn trên
6/ Tạo thủ tục có tham số vào là @Ngay để đưa ra danh mục các mặt hàng đã được bán vào ngày trên (Danh sách đưa ra gồm các thuộc tính sau: MaHang, TenHang, DVT, SoLuong)
7/ Tạo TRIGGER để kiểm tra khi nhập dữ liệu vào bảng ChiTietHoaDon nếu số lượng
hoặc đơn giá nhập vào nhỏ hơn 0 thì in ra màn hình thông báo lỗi “Dữ liệu nhập vào không hợp lệ” và bản ghi này không được phép nhập vào bảng; Ngược lại in ra màn hình thông báo “Dữ liệu đã được nhập thành công”
8/ Tạo kiểu dữ liệu CURSOR để lưu trữ thông tin về các mặt hàng đã được bán trong ngày 20/11/2006 Sau đó đưa ra màn hình danh sách dữ liệu trên
9/ Thêm mới một trường TongTien vào bảng HoaDonBan
Bài 2.
Cho cơ sở dữ liệu quản lý nhà cho thuê bao gồm các bảng dữ liệu sau:
+ Bảng KHACH để lưu danh sách các khách hàng gồm các thuộc tính sau:
Tên Thuộc tính Giải thích
MaK Mã khách hàng TenK Tên khách hàng ĐiaChi Địa chỉ khách SoDT Số điện thoại
+ Bảng NHA để lưu trữ thông tin về các ngôi nhà cho thuê, gồm các thuộc tính sau:
Tên Thuộc tính Giải thích
TenChuNha Tên chủ nhà GiaThue Giá thuê DiaChiNha Địa chỉ nhà
+Bảng HOPDONG để lưu trữ thông tin về các hợp đồng thuê nhà của khách, gồm các
thuộc tính sau:
Tên Thuộc tính Giải thích
SoHĐ Số hợp đồng
NgayBĐ Ngày bắt đầu hợp đồng NgayKT Ngày kết thúc hợp đồng
Yêu cầu:
1/ Hãy tạo cấu trúc cơ sở dữ liệu trên (Dùng trình soạn thảo Query Analyzer; Với mỗi bảng nếu có ràng buộc khoá chính hoặc ràng buộc khoá ngoài yêu cầu sv phải định nghĩa đầy đủ)
Trang 3Thực hiện các câu lệnh truy vấn sau:
1 Đưa ra danh sách các ngôi nhà đang được thuê
2 Đưa ra thông tin về khách hàng đã thuê ngôi nhà có mã là ‘NHA09’
3 Đưa ra thông tin về những ngôi nhà hiện chưa có người nào thuê
2/ Tạo View để tổng hợp thông tin về những ngôi nhà có giá thuê cao nhất
3/ Tạo View để tổng hợp thông tin về các khách hàng ngày hôm nay đã hết hạn hợp đồng 4/ Tạo View để tổng hợp thông tin về các ngôi nhà chưa từng được ai thuê
5/ Tạo thủ tục có một tham số vào là @ngay để đưa ra danh sách các khách hàng đã hết hạn hợp đồng vào ngày trên
6/ Tạo thủ tục để đưa ra màn hình danh sách các ngôi nhà hiện tại chưa có khách hàng thuê 7/ Tạo thủ tục có tham số là @Ngay để đưa ra danh sách các khách hàng bắt đầu thuê nhà vào ngày trên
8/ Tạo Trigger để kiểm tra khi nhập dữ liệu vào bảng NHA nếu giá thuê nhập vào <0 thì đưa
ra màn hình thông báo lỗi “Dữ liệu nhập vào không hợp lệ” và bản ghi này không được phép nhập vào bảng; Ngược lại in ra màn hình thông báo “Dữ liệu đã được nhập thành công”
Bài 3
Cho cơ sở dữ liệu quản lý sinh viên bao gồm các bảng dữ liệu sau:
+ Bảng LOP để lưu thông tin về các lớp học gồm có các thuộc tính sau:
Tên Thuộc
tính Giải thích
MaLop Mã lớp học TenLop Tên lớp học
+ Bảng TINH để lưu trữ thông tin về các tỉnh thành phố, gồm các thuộc tính sau:
Tên Thuộc
tính
Giải thích
MaTinh Mã tỉnh, thành phố TenTinh Tên tỉnh, thành phố
+Bảng SINHVIEN để lưu trữ thông tin về các sinh viên, gồm các thuộc tính sau:
Tên Thuộc tính Giải thích
MaSV Mã sinh viên HoTen Họ tên sinh viên NgaySinh Ngày sinh GioiTinh Giới tính
MaTinh Mã tỉnh DTB Điểm trung bình
Yêu cầu:
1/ Hãy tạo cấu trúc cơ sở dữ liệu trên (Dùng trình soạn thảo Query Analyzer; Với mỗi bảng nếu có ràng buộc khoá chính hoặc ràng buộc khoá ngoài yêu cầu sv phải định nghĩa đầy đủ) Thực hiện các câu lệnh truy vấn sau:
1 Đưa ra thông tin về những sinh viên có điểm trung bình dưới 5
2 Đưa ra thông tin về sinh viên có địa chỉ ở Thái Nguyên
3 Đưa ra thông tin về các lớp học không có sinh viên nào ở Hà Nội
2/ Tạo View để tổng hợp thông tin về các sinh viên có điểm trung bình cao nhất
Trang 43/ Tạo View để tổng hợp thông tin về các sinh viên có điểm trung bình cao nhất theo từng lớp học
4/ Tạo thủ tục để đưa ra sĩ số sinh viên cho từng lớp học (Danh sách đưa ra phải có các thuộc tính sau: MaLop, TenLop, SiSo)
5/ Tạo thủ tục có tham số là @Tenlop để xoá thông tin về những sinh viên học ở lớp trên 6/ Tạo TRIGGER để kiểm tra dữ liệu khi nhập vào bảng sinh viên: nếu điểm trung bình nhập vào <0 thì đưa ra màn hình thông báo lỗi và bản nghi này không được phép nhập vào bảng dữ liệu, ngược lại đưa ra thông báo bản ghi đã nhập thành công
Bài 4
Cho cơ sở dữ liệu quản lý dự án gồm các bảng dữ liệu sau:
+ Bảng NHANVIEN chứa danh sách các nhân viên gồm các thuộc tính sau:
Tên Thuộc tính Giải thích
MaNV Mã nhân viên Hoten Họ tên nhân viên Ngaysinh Ngày sinh
GT Giới tính
+ Bảng DUAN chứa thông tin về các dự án gồm có các thuộc tính sau:
Tên Thuộc tính Giải thích
MaDA Mã dự án TenDA Tên dự án NganSach Ngân sách
+ Bảng THAMGIA ghi danh sách sinh viên đăng ký tham gia dự án
Tên Thuộc tính Giải thích
MaDA Mã dự án MaNV Mã nhân viên TGBD Thời gian bắt đầu TGKT Thời gian kết thúc
Yêu cầu:
1/ Hãy tạo cấu trúc cơ sở dữ liệu trên (Dùng trình soạn thảo Query Analyzer; Với mỗi bảng nếu có ràng buộc khoá chính hoặc ràng buộc khoá ngoài yêu cầu sv phải định nghĩa đầy đủ) 2/ Tạo View để tổng hợp thông tin về các nhân viên chưa tham gia bất kỳ dự án nào
3/ Tạo View để tổng hợp thông tin về các dự án có ngân sách lớn nhất
Tạo View để tổng hợp thông tin về mỗi nhân viên đã tham gia bao nhiêu dự án
4/ Tạo thủ tục có tham số là @TenDA để đưa ra danh sách các nhân viên tham gia dự án trên
5/ Tạo thủ tục có tham số là @TGKT và @MaDA để đưa ra danh sách các nhân viên phải hoàn thành dự án đó vào ngày trên
6/ Tạo TRIGGER để kiểm tra dữ liệu khi nhập vào bảng DUAN nếu ngân sách nhỏ hơn 0
thì đưa ra màn hình thông báo lỗi và bản nghi này không được phép nhập vào bảng dữ liệu, ngược lại đưa ra thông báo bản ghi đã nhập thành công
Bài 5.
Cho cơ sở dữ liệu quản lý điểm rèn luyện gồm các bảng sau:
+ Bảng LOP để lưu thông tin về các lớp học gồm các thuộc tính sau:
Trang 5+ Bảng SINHVIEN để
Tên Thuộc tính Giải thích
Diem Điểm rèn luyện Yêu cầu:
1 Hãy tạo cấu trúc cơ sở dữ liệu trên (Dùng trình soạn thảo Query Analyzer; Với mỗi bảng nếu có ràng buộc khoá chính hoặc ràng buộc khoá ngoài yêu cầu sv phải định nghĩa đầy đủ)
2 Hãy tạo view để tổng hợp thông tin về điểm rèn luyện của những sinh viên học lớp “Cao đẳng K4A”
3 Hãy tạo view để in ra thông tin về sinh viên có điểm rèn luyện cao nhất
4 Tạo view để tổng hợp thông tin về những sinh viên có điểm rèn luyện<50 trong năm học 2006-2007
5 Tạo thủ tục có tham số vào @Masv để đưa ra thông tin về điểm rèn luyện của sinh viên trên
6 Tạo thủ tục có tham số vào @Malop, @Nam để đưa ra thông tin về điểm rèn luyện của lớp trên vào nam học trên
7 Tạo thủ tục có tham số vào @tenlop để đưa ra thông tin về điểm rèn luyện của lớp trên
8 Tạo Trigger kiểm tra việc nhập dữ liệu cho bảng DIEMRL nếu điểm nhập vào <0 hoặc
>100 thì đưa ra yêu cầu nhập lại và bản ghi này không được phép nhập vào bảng, ngược lại thì in ra thông báo nhập thành công
Tên Thuộc tính Giải thích
Tên Thuộc tính Giải thích Masv Mã sinh viên Tensv Tên sinh viên Ngaysinh Ngày sinh