Cộng đồng chia sẻ tri thức Lib24.vn

Bài 4: Ôn tập SQL

ef8f48d544aa50ac9543341666b061fc
Gửi bởi: Khoa CNTT - HCEM 24 tháng 2 2021 lúc 9:40:15 | Được cập nhật: 3 giờ trước (8:36:51) Kiểu file: DOC | Lượt xem: 545 | Lượt Download: 8 | File size: 0.123392 Mb

Nội dung tài liệu

Tải xuống
Link tài liệu:
Tải xuống

Các tài liệu liên quan


Có thể bạn quan tâm


Thông tin tài liệu

BÀI 4- ÔN TẬP Bài 1: Dùng câu lệnh T-SQL để thực hiện các công việc sau: 1.  Tạo lập CSDL với tên QLBH (Quản lý bán hàng) cho công ty xuất nhập khẩu ô tô –xe máy X. Trong CSDL đó, tạo các bảng có cấu trúc như sau: Bảng CUA_HANG lưu thông tin về các văn phòng đại diện đặt tại các tỉnh của công ty X. Bảng có cấu trúc như sau: TÊN TRƯỜNG KIỂU DỮ LIỆU KÍCH THƯỚC GIẢI THÍCH Mã hiệu của cửa hàng. Khóa chính của bảng Tên tỉnh mà cửa hàng được đặt; không nhận giá chị null Tên người quản lý cửa hàng; không nhận giá trị null Địa chỉ nơi đặt CH; không nhận giá trị null; Số điện thoại của CH; không nhận giá trị null Ma_CH Char 4 Tinh_CH nvarchar 15 Quan_Ly_CH nvarchar 30 Dia_Chi_CH nvarchar 50 Tel_CH varchar 13  Bảng KHACH_HANG lưu thông tin về các chủ đại lý đến đặt mua hàng của công ty. Bảng có cấu trúc như sau: TÊN TRƯỜNG KIỂU DỮ LIỆU KÍCH THƯỚC GIẢI THÍCH Mã hiệu của khách hàng; khóa chính của bảng. Tên của khách hàng; không nhận giá trị null Họ đệm KH; không nhận giá trị null Địa chỉ của KH; không nhận giá trị null; Số điện thoại của KH; không nhận giá trị null Ma_KH Char 4 Ten_KH nvarchar 7 Ho_Dem_KH nvarchar 25 Dia_Chi_KH nvarchar 50 Tel_KH varchar 13  Bảng NHA_CUNG_CAP lưu thông tin về các công ty cung cấp hàng cho công ty X. Bảng có cấu trúc như sau: TÊN TRƯỜNG KIỂU DỮ LIỆU KÍCH THƯỚC 1 GIẢI THÍCH Ma_NCC Char 4 Ten_NCC nvarchar 7  Bảng MAT_HANG lưu thông tin về các mặt hàng mà công ty X nhập khẩu. Bảng có cấu trúc như sau: TÊN TRƯỜNG KIỂU DỮ KÍCH LIỆU THƯỚC Ma_MH char 4 Ten_MH Loai_MH Tluong_MH Mau_MH Ton_Kho_MH varchar varchar Smallint nvarchar Smallint 20 5 Gia_Mua_MH Gia_Ban_MH Money Money Ma_NCC Char  25 4 GIẢI THÍCH Mã hiệu của mặt hàng; khóa chính của bảng Tên của mặt hàng; không nhận giá trị null Mã kí hiệu loại MH Trọng lượng của mặt hàng (kg); số dương Màu của mặt hàng Số lượng đang có trong kho của mặt hàng; số dương Giá nhập hàng (triệu đồng); mặc định là 0 Giá xuất hàng tại thời điểm hiện tại; mặc định là 0. Mã nhà cung cấp hàng Bảng DON_HANG lưu thông tin về các đơn hàng mà các đại lý đến các cửa hàng đại diện đặt mua hàng. Bảng này chỉ lưu một số thông tin chính của đơn hàng, còn chi tiết về các mặt hàng đặt mua với số lượng bao nhiêu sẽ được lưu trên một bảng khác có tên là bảng CHI_TIET_DH. Bảng DON_HANG có cấu trúc như sau: TÊN TRƯỜNG KIỂU DỮ LIỆU KÍCH THƯỚC GIẢI THÍCH 7 Mã hiệu của đơn hàng; khóa chính của bảng; không nhận giá trị null. Ngày KH đến đặt mua hàng; mặc định là ngày tháng giờ hiện tại của hệ thống máy tính; không nhận giá trị null. Mã khách hàng; không nhận giá trị null. Mã cửa hàng; không nhận giá trị null. Ma_DH char Ngay_Lap_DH Datetime Ma_KH Char 4 Ma_CH Char 4  Mã hiệu của cung cấp hàng; khóa chính của bảng. Tên của nhà cung cấp; không nhận giá trị null và duy nhất Bảng CHI_TIET_DH lưu thông tin chi tiết về các đơn hàng. Bảng có cấu trúc như sau: 2 TÊN TRƯỜNG KIỂU DỮ LIỆU KÍCH GIẢI THÍCH THƯỚC Ma_DH Char 7 Ma_MH Char 4 Sluong_dat Smallint Gia Money Ngay_giao_DK Date  Mã hiệu của đơn hàng; cùng với Ma_DH làm khóa chính của bảng Mã mặt hàng đặt mua; cùng với MaMH làm khóa chính của bảng Số lượng đặt mua của mặt hàng trong đơn hàng; số dương; mặc định là 0 Giá bán của mặt hàng tại thời điểm lập đơn hàng; giá trị mặc định là 0 Ngày dự kiến hàng sẽ được giao Bảng GIAO_HANG lưu thông tin về các lần giao hàng cho các đại lý. Bảng này chỉ lưu một số thông tin chính của hóa đơn giao hàng, còn chi tiết về các mặt hàng được giao với số lượng bao nhiêu sẽ được lưu trên một bảng khác có tên là bảng CHI_TIET_GH. Bảng GIAO_HANG có cấu trúc như sau: TÊN TRƯỜNG KIỂU DỮ LIỆU KÍCH GIẢI THÍCH THƯỚC Ma_GH Char Ngay_GH Datetime Ma_KH Ma_CH Char Char  7 4 4 Mã hiệu của hóa đơn giao hàng; Khóa chính của bảng Ngày công ty giao hàng cho đại lý; mặc định là ngày giờ của hệ thống Mã khách hàng Mã cửa hàng Bảng CHI_TIET_GH lưu thông tin chi tiết về các hóa đơn giao hàng. Bảng có cấu trúc như sau: TÊN TRƯỜNG KIỂU DỮ KÍCH LIỆU THƯỚC Ma_GH Char 7 Ma_MH Char 4 Sluong_giao smallint Ma_DH Char 7 GIẢI THÍCH Mã hiệu của hóa đơn giao hàng; cùng với Ma_GH làm khóa chính của bảng Mã mặt hàng đặt mua; cùng với Ma_MH làm khóa chính của bảng Số lượng hàng được giao; số dương; mặc định là 0. Mã đơn hàng đặt mua liên quan; không 3 nhận giá trị null. 2. Tạo thêm các ràng buộc tham chiếu sau cho các bảng: a. Ma_NCC ở bảng MAT_HANG tham chiếu đến Ma_NCC ở bảng NHA_CUNG_CAP. b. Ma_CH ở bảng DON_HANG tham chiếu đến Ma_CH ở bảng CUA_HANG. c. Ma_KH ở bảng DON_HANG tham chiếu đến Ma_KH ở bảng KHAC_HANG. d. Ma_CH ở bảng DON_HANG tham chiếu đến Ma_CH ở bảng CUA_HANG. e. Ma_DH ở bảng CHI_TIET_DH tham chiếu đến Ma_DH ở bảng DON_HANG. f. Ma_MH ở bảng CHI_TIET_DH tham chiếu đến Ma_MH ở bảng MAT_HANG. g. Ma_CH ở bảng GIAO_HANG tham chiếu đến Ma_CH ở bảng CUA_HANG. h. Ma_GH ở bảng CHI_TIET_GH tham chiếu đến Ma_GH ở bảng GIAO_HANG. i. Ma_MH ở bảng CHI_TIET_GH tham chiếu đến Ma_MH ở bảng MAT_HANG. 3. Thêm ràng buộc CHECK giá bán lớn hơn giá mua trong bảng MAT_HANG. 4. Thêm ràng buộc CHECK ngày giao dự kiến phải lớn hơn ngày lập đơn hàng trong bảng DON_HANG. 5. Tạo diagram hiển thì các ràng buộc tham chiếu đã tạo ở câu 2 (hình ví dụ ở phía dưới) 4 6. Tải xuống tệp INSERT_QLBH.sql trên tài khoản Onedrive của khóa học và chạy script này trong Management Studio để nhập dữ liệu vào cho các bảng. Bài 2: Thực hiện các truy vấn sau trên CSDL QLBH 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. Cho biết tên, địa chỉ liên hệ của các nhà cung ứng hàng. Đưa ra danh sách các khách hàng có địa chỉ ở Hà nội. Đưa ra danh sách các mặt hàng có giá bán lớn hơn 10% giá mua. Đưa ra danh sách các loại xe máy có màu đỏ. Đưa ra danh sách các loại xe máy màu đỏ hoặc các loại xe máy có giá bán nằm trong khoảng từ 25 đến 35 triệu đồng. Đưa ra danh sách các loại xe máy không phải là màu đỏ hoặc có giá bán không vượt quá 15 triệu đồng. Tìm ra những khách hàng có tên chứa vần ‘an’. Liệt kê ra những khách hàng có độ dài tên bằng 5 và tên bắt đầu bằng kí tự ‘H’, kết thúc bằng kí tự “n”. Tìm mọi mặt hàng chưa xác định màu. Đưa ra danh sách các mặt hàng có trọng lượng nhỏ hơn hay bằng 500 kg theo thứ tự tăng của trọng lượng và nếu trọng lượng bằng nhau thì sắp xếp theo giá mua giảm dần. Tìm trung bình (ngày) giữa ngày lập đơn hàng và ngày giao hàng dự kiến Tìm đơn hàng có khoảng cách giữa ngày lập đơn hàng và ngày giao hàng dự kiến là lớn nhất. Đưa ra tên và giá mua của hàng có giá mua đắt nhất trong kho. Đếm số màu khác nhau của các mặt hàng có trong kho. Đưa ra giá bán trung bình của từng loại hàng. Đưa ra mặt hàng có giá bán trung bình lớn nhất. Tìm các cửa hàng mà trong khoảng từ ngày 6 đến ngày 7 tháng 6 đã thực hiện được trên một lần bán hàng. 5 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. Cho biết tên các mặt hàng đã bán và với mỗi mặt hàng thì cho biết giá bán trung bình, tổng số lượng đã được bán. Kết quả sắp xếp theo chiều giảm dần của tổng số lượng bán? Hãy chọn các mặt hàng có màu đỏ với số hiệu mặt hàng, tên hàng, trọng lượng hàng, và tên nhà cung ứng nó (kết quả sắp xếp theo giá trị tăng dần của trọng lượng). Liệt kê danh sách tên các khách có số hiệu nhỏ hơn hay bằng ‘KH05’, cùng với ngày tháng các lần mua của họ. Nếu khách hàng đó chưa mua gì cả thì tên của khách hàng đó vẫn xuất hiện trên bảng với ngày tháng mua là chưa xác định. Tìm mọi mặt hàng có trong lượng nhỏ hơn trọng lượng của mặt hàng có số hiệu là ‘MH02’. Đưa ra danh sách các mặt hàng có cùng màu với mặt hàng MH10 và có trọng lượng lớn hơn hoặc bằng trọng lượng trung bình của mọi mặt hàng. Liệt kê ra tên các nhà cung ứng có bán mặt ít nhất 1 mặt hàng có màu đen. Liệt kê ra danh sách các mặt hàng có giá bán lớn hơn giá bán của mọi mặt hàng có màu trắng. Cho biết danh sách các khách hàng đã mua hàng ít nhất ở 2 cửa hiệu khác nhau. Cho biết tổng số lượng các khách hàng khác nhau từng năm (từ 2004 đến 2005) của tất cả các cửa hàng (HD:dùng Union). Đưa ra danh sách các cửa hàng chưa bán được một đơn hàng nào. Cập nhật giá mua và giá bán các mặt hàng của hãng Honda giảm xuống 1%. Đưa ra tên và giá mua của hàng có giá mua đắt nhất trong kho. Đưa ra danh sách các cửa hàng chưa bán được một đơn hàng nào. Lưu danh sách các cửa hàng đó vào bảng có tên KD_KEM. Sau đó, xóa tất cả các cửa hàng đó trong bảng CUA_HANG (HD: Có thể dùng nhiều câu lệnh). 6