Mời các bạn cùng tham khảo tài liệu để nắm chi tiết bài tập thực hành môn Hệ cơ sở dữ liệu cụ thể là tìm hiểu SQL server management studio; tạo và quản lý cơ sở dữ liệu; kiểu dữ liệu (Data type); lệnh Select; lệnh Select – truy vấn con Subquery...
Trường ĐH Công Nghiệp TP.HCM Bài Tập Thực Hành Môn Hệ Cơ Sở Dữ Liệu TRƯỜNG ĐẠI HỌC CÔNG NGHIỆP TP.HCM KHOA CÔNG NGHỆ THÔNG TIN Bài tập thiết kế theo TUẦN TUẦN tiết có hướng dẫn GV Cuối buổi thực hành, sinh viên nộp lại phần tập thực cho GV hướng dẫn Những câu hỏi mở rộng/khó giúp sinh viên trau dồi thêm kiến thức mơn học Sinh viên phải có trách nhiệm nghiên cứu, tìm câu trả lời chưa thực xong thực hành TP Hồ Chí Minh Năm 2015 Khoa Cơng Nghệ Thơng Tin 1/26 Trường ĐH Công Nghiệp TP.HCM Bài Tập Thực Hành Môn Hệ Cơ Sở Dữ Liệu BÀI TẬP TUẦN Số tiết: Mục tiêu: Tìm hiểu giao diện SQL Server 2008 Tạo Database - sở liệu (CSDL) thực thao tác CSDL lệnh công cụ design Tạo Table (Bảng liệu) nhập liệu công cụ design Tạo lược đồ quan hệ (Relationship Diagram) Tìm hiểu kiểu liệu (DataType) SQL Server 2008 Biết tạo, sửa, xóa áp dụng kiểu liệu SQL Server 2008 Biết số thủ tục trợ giúp database Datatype PHẦN 1: TÌM HIỂU SQL SERVER MANAGEMENT STUDIO Khởi động SQL Server Management Studio: Vào start chọn program chọn Microsoft SQL Server 2008 chọn SQL Server Management Studio Hình 1.1 Kết nối vào SQL Server Khoa Công Nghệ Thông Tin 2/26 Trường ĐH Công Nghiệp TP.HCM Bài Tập Thực Hành Môn Hệ Cơ Sở Dữ Liệu Chú ý thành phần hộp thoại sau: Server Type: Chọn loại Server để kết nối Như ví dụ giáo trình này, cho phép server type Database Engine Các tùy chọn khác kiểu liệu khác servers Server Name: Hộp combo thứ chứa danh sách SQL Server cài đặt để chọn tên Server để kết nối Trong hộp thoại hình 1.1, bạn thấy tên máy tính cài đặt local Nếu bạn mở hộp Server name bạn tìm kiếm nhiều server local network connection cách chọn Authentication: Combo box cuối xác định loại hình kết nối bạn muốn sử dụng Trong giáo trình kết nối đến SQL Server sử dụng Windowns Authentication Nếu bạn cài đặt SQL Server với chế độ hỗn hợp(mix mode), bạn thay đổi chọn lựa SQL Server authentication, mở hai hộp thoại cho phép nhập username password Sau nhấn nút Connect xuất hình sau: Chọn Connect: Kết nối Cancel: Hủy bỏ thao tác Option: Các lựa chọn khác Bạn cho khởi động dịch vụ SQL Server, SQL Server Agent Khoa Công Nghệ Thông Tin 3/26 Trường ĐH Công Nghiệp TP.HCM Bài Tập Thực Hành Môn Hệ Cơ Sở Dữ Liệu Vào menu View, Chọn Object Explorer Details Lần lượt mở nhánh MicroSoft SQL Servers Tìm hiểu sơ lược cửa sổ, thực đơn, công cụ Tại cửa sổ Object Explorer, thực hiện: Quan sát thành phần đối tượng cửa sổ cho biết: Có SQL Server Group, Server tên gì? Đang connect hay disconnect? Liêt kê thành phần Server hành Trong server hành, có Database nào? (Hãy so sánh tên database với database máy bên cạnh) Trong Database có đối tượng nào? (Các database khác đối tượng có khác không?) Mở database Master, khảo sát đối tượng: Vào đối tượng Table, tìm hiểu cấu trúc liệu bảng (lưu ý: chọn xem khơng nên xố hay sửa liệu): Sysdatabases, SysObjects, systypes, syslogins, sysusers, sysmessages, syspermissions… Vào đối tượng Stored Procedures, tìm hiểu nội dung thủ tục sau (lưu ý: chọn xem khơng nên xố hay sửa): sp_help, sp_helpdb, sp_helpcontraint, sp_rename, sp_renamedb, sp_table, sp_addlogin, sp_addmessage, sp_addrole … Lần lượt vào đối tượng lại User, Role, … Tìm hiểu mục menu Help Lần lượt tìm hiểu lệnh Create DataBase, Create Table, Alter Table, Select Statement, Select into, Update Statement, Insert Statement, DataType, Triggers… (Hướng dẫn: Gõ tên lệnh/từ khóa cần tìm nhấn Enter) Khởi động hình Query Editor: Nhập dòng lệnh sau cửa sổ Query Editor: Khoa Công Nghệ Thông Tin 4/26 Trường ĐH Công Nghiệp TP.HCM Bài Tập Thực Hành Môn Hệ Cơ Sở Dữ Liệu USE master SELECT * from dbo.MSreplication_options Nhấn F5 để thực thi quan sát kết hiển thị Tìm hiểu mục menu ToolsOption PHẦN 2: TẠO VÀ QUẢN LÝ CƠ SỞ DỮ LIỆU Tạo CSDL QLSach cơng cụ design có tham số sau: Tham số Giá trị Database name QLSach Tên logic data file QLSach_data Tên tập tin đường dẫn data file T:\QLTV\QLSach_Data.mdf Kích cở khởi tạo CSDL 20 MB Kích cở tối đa CSDL 40 MB Gia số gia tăng tập tin CSDL MB Tên logic transaction log QLSach_Log Tên tập tin đường dẫn T:\QLTV\QLSach_Log.ldf transaction log Kích cở khởi tạo transaction log MB Kích cở tối đa transaction log MB Gia số gia tăng tập tin transaction log MB a Xem lại thuộc tính (properties) CSDL QLSach (HD: Nhắp phải chuột tên CSDL, chọn properties) Quan sát cho biết trang thể thông tin gì? b Tại cửa sổ properties CSDL, khai báo thêm Một Group File có tên DuLieuSach Một tập tin liệu (data file) thứ hai nằm Group file vừa tạo có thơng số sau Tên login data file QlSach_Data2; Tên tập tin đường dẫn vật lý data file T:\QLTV\QlSach_Data2.ndf Chọn thuộc tính ReadOnly, sau đóng cửa sổ properies Quan sát màu sắc CSDL Bỏ thuộc tính ReadOnly Thay đổi Owner: tên server kết nối Khoa Công Nghệ Thông Tin 5/26 Trường ĐH Công Nghiệp TP.HCM Bài Tập Thực Hành Môn Hệ Cơ Sở Dữ Liệu Ở Query Analyzer (lưu ý: sau lần có thay đổi phải dùng lệnh để kiểm tra thay đổi đó) a Dùng lệnh Create DataBase, tạo CSDL với tham số liệt kê bảng Lưu ý CSDL gồm data file nằm primary filegroup Tham số giá trị Database name QLBH Tên logic data file QLBH_data1 Tên tập tin đường dẫn data file T:\QLBH_data1.mdf Kích cở khởi tạo CSDL 10 MB Kích cở tối đa CSDL 40 MB Gia số gia tăng tập tin CSDL MB Tên logic transaction log QLBH_Log Tên tập tin đường dẫn T:\QLBH.ldf transaction log Kích cở khởi tạo transaction log MB Kích cở tối đa transaction log MB Gia số gia tăng tập tin transaction log MB b Xem lại thuộc tính CSDL QLBH cách Click phải vào tên CSDL chọn Property thủ tục hệ thống sp_helpDb, sp_spaceused, sp_helpfile c Thêm filegroup có tên DuLieuQLBH (HD: dùng lệnh Alter DataBase ADD FILEGROUP ) d Khai báo secondary file có tên logic QLBH_data2, tên vật lý QLBH_data2.ndf nằm T:\, thông số khác tuỳ bạn chọn, data file nằm file group DuLieuQLBH (HD: Dùng lệnh Alter Database … ADD FILE … TO FILEGROUP …) e Cho biết thủ tục hệ thống sp_helpfilegroup dùng để làm gì? f Dùng lệnh Alter Database … Set … để cấu hình cho CSDL QLBH có thuộc tính Read_Only Dùng sp_helpDB để xem lại thuộc tính CSDL Hủy bỏ thuộc tính Read_Only g Dùng lệnh Alter DataBase … MODIFY FILE … để tăng SIZE QLBH_data1 thành 50 MB Tương tự tăng SIZE tập tin QLBH_log thành 10 MB Để Khoa Công Nghệ Thông Tin 6/26 Trường ĐH Công Nghiệp TP.HCM Bài Tập Thực Hành Môn Hệ Cơ Sở Dữ Liệu thay đổi SIZE tập tin công cụ Design bạn làm nào? Bạn thực thay đổi kích thước tập tin QLBH_log với kích thước 15MB Nếu thay đổi kích cỡ nhỏ ban đầu có khơng? Nếu thay đổi kích cỡ MAXSIZE nhỏ kích cỡ SIZE có khơng? Giải thích Tạo CSDL QLSV, thông số tùy chọn Dùng công cụ design tạo cấu trúc bảng sau CSDL QLSV: LOP (MaLop char(5) , TenLop NVarchar(20), SiSoDuKien Int, NgayKhaiGiang DateTime) SINHVIEN (MaSV char(5), TenHo NVarchar(40), NgaySinh DateTime, MALOP char(5)) MONHOC(MaMh char(5), Tenmh Nvarchar(30), SoTC int) KETQUA(MaSV char(5), MAMH char(5), Diem real) Lưu ý: cột in đậm gạch chân khóa khơng chấp nhận giá trị Null, cột in đậm không chấp nhận giá trị Null a Tạo Diagram hai bảng vừa tạo b Nhập liệu tùy ý vào hai bảng công cụ design, bảng khoảng mẫu tin Giả sử bạn nhập liệu cho bảng KETQUA trước, sau nhập liệu cho bảng cịn lại bạn có nhập khơng? Vì sao? Theo bạn nên nhập liệu theo thứ tự nào? c Dùng tác vụ General Script, để tạo đoạn Script cho CSDL tất đối tượng CSDL thành tập tin Script có tên QLSV.SQL d Vào Query Analyzer, mở tập tin Script vừa tạo khảo sát công dụng cú pháp lệnh có tập tin script e Đổi tên CSDL QLSV thành QLHS f Dùng thao tác xóa để xố tồn CSDL QLHS PHẦN 3: KIỂU DỮ LIỆU (DATA TYPE) Tìm hiểu kiểu liệu (datatype): a Tìm hiểu trả lời câu hỏi sau: - Có loại datatype, liệt kê - Các system datatype SQL Server lưu trữ Table CSDL - Các User-defined datatype SQL Server lưu trữ Table nào, CSDL nào? Khoa Công Nghệ Thông Tin 7/26 Trường ĐH Công Nghiệp TP.HCM Bài Tập Thực Hành Môn Hệ Cơ Sở Dữ Liệu b Vào Query Analyzer, chọn QLBH CSDL hành, định nghĩa datatype: Kiểu liệu (Data Mô tả liệu (Description of data) type) Mavung 10 ký tự STT STT không vượt 30,000 SoDienThoai 13 ký tự , chấp nhận NULL Shortstring Số ký tự thay đổi đến 15 ký tự HD: Dùng thủ tục sp_addtype để định nghĩa Ví dụ: EXEC sp_addtype SODienThoai, 'char(13)', NULL c Các User-defined datatype vừa định nghĩa lưu trữ đâu phạm vi sử dụng đâu (trong tồn instance hay CSDL hành) d Có cách liệt kê danh sách User-Defined datatype vừa định nghĩa SELECT domain_name, data_type, character_maximum_length FROM information_schema.domains ORDER BY domain_name Hoặc SELECT * From Systype e Bạn tạo bảng có tên ThongTinKH(MaKH (khóa chính) kiểu liệu STT , Vung kiểu Mavung , Diachi kiểu Shortstring, DienThoai kiểu SoDienThoai) CSDL QLBH sử dụng User-defined data type vừa định nghĩa Bạn có tạo khơng? Nếu bạn nhập thử liệu record design f Muốn User-Defined datatype dùng tất CSDL bạn định nghĩa đâu? g Hãy xóa kiểu liệu SoDienThoai h Hãy thực việc Backup Retore CSDL QLBH Khoa Công Nghệ Thông Tin 8/26 Trường ĐH Công Nghiệp TP.HCM Bài Tập Thực Hành Môn Hệ Cơ Sở Dữ Liệu BÀI TẬP TUẦN & Số tiết: Mục tiêu: Tạo CSDL bảng CSDL T-SQL Tạo ràng buộc (constraint) cho bảng T-SQL Phát sinh tập tin script Thực chức attack detack CSDL Thực chức import/export BÀI TẬP 1: Cho mô tả nghiệp vụ hệ thống quản lý bán hàng siêu thị sau: • Siêu thị bán nhiều sản phẩm khác Các sản phẩm phân loại theo nhóm sản phẩm, nhóm sản phẩm có mã nhóm (MANHOM) nhất, mã nhóm hàng xác định tên nhóm hàng (TENNHOM), tất nhiên nhóm hàng có nhiều sản phẩm Mỗi sản phẩm đánh mã số (MASP) nhất, mã số sản phẩm xác định thông tin sản phẩm : tên sản phẩm (TENSP), mơ tả sản phẩm (MoTa), đơn vị tính (Đơn vị tính), đơn giá mua (ĐONGIA), số lượng tồn (SLTON) • Siêu thị lấy hàng từ nhiều nhà cung cấp khác Mỗi sản phẩm lấy từ nhà cung cấp Hệ thống phải lưu trữ thông tin nhà cung cấp hàng cho siêu thị Mổi nhà cung cấp có mã số (MaNCC) nhất, mã nhà cung cấp xác định tên nhà cung cấp (TenNCC), địa (Diachi), số điện thoại (Phone), số fax (Sofax) địa mail (DCMail) • Siêu thị bán hàng cho nhiều loại khách hàng khác Mỗi khách hàng có mã khách hàng (MAKH) nhất, MAKH xác định thông tin khách hàng : họ tên khách hàng (HOTEN), địa (ĐIACHI), số điện thoại (ĐIENTHOAI), Ngày đăng ký thẻ thành viên (NgayDKThe), địa mail (DCMail), điểm tích lũy (DiemTL) Siêu thị chia khách hàng thành loại khách hàng: VIP, TV, VL Khách hàng VIP khách hàng thành viên năm có tổng số hóa đơn mua hàng 100, khách hàng TV(thành viên khách hàng làm thẻ thành viên không đủ điều kiện khách hàng VIP) Khách hàng vãng lai (VL) khách hàng chưa có thẻ thành viên Đối với khách hàng vãng lai MaKH hệ thống tự cấp phát MaKH cho lần mua hàng hệ thống khơng cần lưu thơng tin cịn lại khách hàng vãng lai • Mỗi lần mua hàng, khách hàng có hóa đơn Mỗi hóa đơn bán hàng có số hóa đơn (SOHĐ) nhất, số hóa đơn xác định khách hàng ngày lập hóa đơn (NGAYLAPHĐ), ngày giao hàng (NGAYGIAO) nơi chuyển hàng (NoiChuyen) Ứng với hóa đơn siêu thị qui định sau: Nếu khách hàng VIP tặng 20% tổng tiền vào điểm tích lũy khách hàng, thành viên 10%tổng tiền, vãng lai khơng Khoa Cơng Nghệ Thông Tin 9/26 Trường ĐH Công Nghiệp TP.HCM Bài Tập Thực Hành Môn Hệ Cơ Sở Dữ Liệu tặng điểm tích lũy Dựa vào điểm tích lũy siêu thị tặng phiếu quà tặng vào cuối năm cho khách hàng Mỗi đơn hàng mua nhiều sản phẩm, Với sản phẩm hóa đơn cho biết số lượng bán (SLBAN) mặt hàng Dựa vào nghiệp vụ trên, bạn xây dựng mô hình thực thể kết hợp ERD, sau chuyển qua lược đồ sở liệu cho hệ thống xác định ràng buộc khóa khóa ngoại cho lược đồ CSDL Xác định qui tắc nghiệp vụ hệ thống Tại cửa sổ Query analyzer, thực hiện: a Dùng lệnh Create Table … để tạo cấu trúc bảng sau CSDL QLBH: Lưu ý - Khai báo cột có Null Not Null, khơng cần khai báo khóa chính, khóa ngoại Bảng NhomSanPham, SanPham, NhaCungCap u cầu tạo khóa khóa ngoại lệnh Create Table ln, bảng cịn lại dùng lệnh Alter Table để tạo khóa khóa ngoại NhomSanPham MaNhom int TenNhom Nvachar(15) Not null SanPham MaSp int Not null TenSp nvarchar(40) Not null MaNCC Int MoTa nvarchar(50) MaNhom int Đonvitinh nvarchar(20) GiaGoc Money >0 SLTON Int >0 MaHD Int Not null NgayLapHD DateTime >=Ngày hành Giá trị mặc định ngày hành NgayGiao DateTime Noichuyen NVarchar(60) MaKh Nchar(5) HoaDon Not Null CT_HoaDon MaHD Int Not null MaSp int Not null Khoa Công Nghệ Thông Tin 10/26 Trường ĐH Công Nghiệp TP.HCM Bài Tập Thực Hành Môn Hệ Cơ Sở Dữ Liệu Thực hiện, nhớ kiểm tra kết sau lần thực hiện: Thêm Datafile thứ có Name: Movies_data2; pathname: C:\Movies\Movies_data2.ndf; Size: 10 MB; thông số khác khơng cần định Lần lược cấu hình CSDL Movies với chế độ single_user, restricted user, multi user Sau cài đặt lại multi_user Nhớ dùng lệnh để kiểm tra lại Tăng kích cỡ data file thứ từ 10 MB lên 15 MB Kiểm tra lại Cấu hình CSDL chế độ tự động SHRINK Phát sinh tập tin Script từ CSDL Movies, tạo script cho tất đối tượng kể database Lưu vào đĩa với tên Movies.SQL Xoá CSDL Movies Mở tập tin Movies.SQL Thực hiện: Bổ sung thêm câu lệnh tạo filegroup tên Data Hiệu chỉnh maxsize tập tin transaction log thành 10 MB Size tập tin datafile thứ thành 10 MB Cho datafile thứ nằm filegroup có tên Data Lưu tập tin scrip Cho thực thi toàn tập tin script Dùng sp_helpDB để kiểm tra tồn Movies thơng số Các bảng có CSDL Movies Tên bảng Nội dung lưu chứa Movie Danh sách phim có cửa hàng Customer Thông tin khách hàng Category Danh sách loại phim Rental Thông tin thuê phim Rental_detail Chi tiết thuê phim Bạn suy nghĩ xem bảng cần lưu thông tin cụ thể (tức cột nào), kiểu liệu sao? Khóa bảng, mối quan hệ bảng, có ràng buộc toàn vẹn nào? Thực định nghĩa user-defined datatype sau vào CSDL Movies Kiểm tra sau tạo Kiểu liệu (Data Mô tả liệu (Description of data) type) Movie_num Int, không chấp nhận Null Category_num Int, không chấp nhận Null Cust_num Int, không chấp nhận Null Khoa Công Nghệ Thông Tin 12/26 Trường ĐH Công Nghiệp TP.HCM Bài Tập Thực Hành Môn Hệ Cơ Sở Dữ Liệu Invoice_num Int, không chấp nhận Null Thực tạo bảng vào CSDL Movies, nhớ kiểm tra lại cấu trúc sp_help Customer Tên cột kiểu liệu cho phép Null Cust_num cust_num IDENTITY(300,1) No Lname varchar(20) No Fname varchar(20) No Address1 varchar(30) Yes Address2 varchar(20) Yes City varchar(20) Yes State Char(2) Yes Zip Char(10) Yes Phone Varchar(10) No Join_date Smalldatetime No Category Tên cột kiểu liệu cho phép Null Category_num category_num IDENTITY(1,1) No Description No Varchar(20) Movie Tên cột kiểu liệu cho phép Null Movie_num Movie_num No Title Cust_num No Category_Num category_num No Date_purch Smalldatetime Yes Rental_price Int Yes Rating Char(5) Yes Rental: Tên cột Kiểu liệu cho phép Null Invoice_num Invoice_num No Cust_num Cust_num No Rental_date Smalldatetime No Khoa Công Nghệ Thông Tin 13/26 Trường ĐH Công Nghiệp TP.HCM Due_date Bài Tập Thực Hành Môn Hệ Cơ Sở Dữ Liệu Smalldatetime No Rental:_Detail Tên cột Kiểu liệu cho phép Null Invoice_num Invoice_num No Line_num Int No Movie_num Movie_num No Rental_price Smallmoney No Thực phát sinh tập tin script cho CSDL Movies với lựa chọn sau, lưu với tên Table.sql: All Tables, All user-defined data types Generate the CREATE command for each object Generate the DROP command for each object Thực tạo Diagram cho bảng Movies Bạn có tạo không? Tại sao? Tạm thời lưu diagram với tên Movies Thực định nghĩa khoá (Primary Key Constraint) cho bảng sau, nhớ kiểm tra Constraint lệnh sp_helpconstraint Tên bảng cột làm khóa Tên Primary Constraint Movie Movie_num PK_movie Customer Cust_num PK_customer Category Category_num PK_category Rental Invoice_num PK_rental 10 Thực định nghĩa khoá ngoại (Foreign Key Constraint) cho bảng sau, nhớ kiểm tra Constraint lệnh sp_helpconstraint Tên bảng cột làm khóa Tên bảng tham chiếu đến Movie Category_num Category Rental Cust_num Cột tên Primary Cascade tham chiếu Constraint Category_num FK_movie Customer Cust_num FK_rental Rental_detail Invoice_num Rental Invoice_num FK_detail_invoice delete Rental_detail Movie_num Movie Movie_num PK_detail_movie 11 Mở lại Diagram có tên Movie, xem khóa chính, mối quan hệ bảng Khoa Công Nghệ Thông Tin 14/26 Trường ĐH Công Nghiệp TP.HCM Bài Tập Thực Hành Môn Hệ Cơ Sở Dữ Liệu 12 Thực định nghĩa giá trị mặc định (Default Constraint) cho cột bảng sau, nhớ kiểm tra Constraint lệnh sp_helpconstraint Tên bảng Cột có giá Giá trị Default trị Default tên Constraint Movie Date_purch Ngày hành DK_movie_date_purch Customer join_date DK_customer_join_date Rental Rental_date Ngày hành Rental Due_date Ngày hành Primary DK_rental_rental_date Ngày hành + DK_rental_due_date 13 Thực định nghĩa miền giá trị (Check Constraint) cho cột bảng sau, nhớ kiểm tra Constraint lệnh sp_helpconstraint Tên bảng cột có giá Miền giá trị trị Default tên Constraint Movie Rating ‘G’, ‘PG’, ‘R’, ‘NC17’, ‘NR’ CK_movie Rental Due_date >= Rental_date CK_Due_date Primary 14 Thực phát sinh tập tin script cho đối tượng CSDL Movie Tên tập tin Constraint.sql Với lựa chọn Script Primary Keys, Foreign Keys, Default, and Check Constraints BÀI TẬP 3: Dùng chức Import/Export (nhớ kiểm tra kết sau lần thực hiện): Tất thông tin nhân viên có bảng Employees NorthWind thành tập tin NhanVien.txt Dữ liệu bảng Products, Orders, Order Details bảng NorthWind vào tập tin QLHH.MDB Lưu ý: Tập tin QLHH.MDB phải tồn đĩa trước thực Export Dữ liệu bảng Products, Suppliers NorthWind thành tập tin SP_NCC.XLS Các khách hàng có City LonDon từ bảng Customers NorthWind thành tập tin KH.TXT Danh sách sản phẩm Products NorthWind thành tập tin SanPham.TXT, thông tin cần lấy bao gồm ProductID, ProductName, QuantityPerUnit, Unitprice Các sản phẩm có SupplierID hoặc bảng Products NorthWind vào bảng SanPham QLBH Lưu ý chọn cột mà bảng sản phẩm cần Khoa Công Nghệ Thông Tin 15/26 Trường ĐH Công Nghiệp TP.HCM Bài Tập Thực Hành Môn Hệ Cơ Sở Dữ Liệu Các nhà cung cấp có Country USA bảng Suppliers NorthWin vào bảng NhaCungCap QLBH Lưu ý: chọn cột mà Nhacungcap cần Danh sách nhân viên có tập tin Nhanvien.TXT vào bảng NhanVien Khoa Công Nghệ Thông Tin 16/26 Trường ĐH Công Nghiệp TP.HCM Bài Tập Thực Hành Môn Hệ Cơ Sở Dữ Liệu BÀI TẬP TUẦN 4, 5, 6, 7, Số tiết: 15 Mục tiêu: Thực thêm, xóa, sửa đơn giản lệnh INSERT, UPDATE, DELETE Biết cách truy vấn liệu lệnh SELECT TUẦN (3 tiết) PHẦN I: Lệnh INSERT – UPDATE – DELETE đơn giản Mở CSDL QLBH, thực lệnh sau: Thêm vào Table dịng liệu thơng qua cửa sổ Design Dữ liệu sinh viên tự nghĩ Chú ý: Các ràng buộc Table Dùng lệnh Insert thêm liệu vào bảng sau: Chú ý:Nếu bảng có liệu bạn xóa hết liệu trước nhập vào Table NhomHang Table NhaCungCap Table SanPham Khoa Công Nghệ Thông Tin 17/26 Trường ĐH Công Nghiệp TP.HCM Bài Tập Thực Hành Môn Hệ Cơ Sở Dữ Liệu Table KhachHang Table HoaDon Table CT_HoaDon Dùng lệnh Update sửa chữa liệu theo yêu cầu sau a) Tăng đơn giá bán lên 5% cho sản phẩm có mã b) Tăng số lượng tồn lên 100 cho sản phẩm có nhóm mặt hàng Khoa Cơng Nghệ Thơng Tin 18/26 Trường ĐH Công Nghiệp TP.HCM Bài Tập Thực Hành Môn Hệ Cơ Sở Dữ Liệu c) Tăng điểm lũy lên 50 cho khách hàng khách hàng vãng lai d) Cập nhật cột mô tả cho sản phẩm có tên Lị vi sóng (dữ liệu cột mô tả sinh viên tự thêm) e) Tăng đơn giá gốc lên 2% cho sản phẩm mà phần tên có chứa chữ u Chạy tập tin SQLSample2000.msi, thực chức Attack CSDL Pubs Sau chọn CSDL Pubs, thực yêu cầu cho nhận xét b) Dùng sp_helpconstraint bật Diagram bảng Authors bảng TitleAuthor, để biết tên foreign key constraint định nghĩa TitleAuthor.Au_Id tham chiếu đến Author.Au_ID ? (tên FK Titleauthor au_id 0519C6AF) c) Cho biết Au_ID Author có au_lname ‘White’ ( dùng Select … From … Where , kết nhận 172_32_1176) d) Dùng câu lệnh sau để cập nhật giá trị AU_ID thành '172-32-1177' UPDATE authors SET au_id ='172-32-1177' WHERE au_lname='White' Bạn có thực không? Tại sao? e) Thực diable ràng buộc khóa ngoại f) Chạy lại câu Update trên, thực không? g) Cập nhật lại giá trị cũ '172-32-1176' h) Thực enable lại ràng buộc khóa i) Detack CSDL Pubs Dùng lệnh Delete thực yêu cầu sau: a) Xóa sản phẩm có SLTon 20000 Thơng tin xếp theo CustomerID, mã xếp theo tổng tiền giảm dần 10 Danh sách Category có tổng số lượng tồn (UnitsInStock) lớn 300, đơn giá trung bình nhỏ 25 Thơng tin kết bao gồm CategoryID, CategoryName, Total_UnitsInStock, Average_Unitprice 11 Danh sách Category có tổng số product lớn hớn 10 Thơng tin kết bao gồm CategoryID, CategoryName, Total_UnitsInStock 12 Danh sách product theo CategoryName, thông tin bao gồm: Productname, CategoryName, Unitprice, UnitsinStock Có dùng mệnh đề COMPUTE để liệt kê đơn giá trung bình, tổng số lượng tồn (sum of UnitsinStock) theo CategoryName 13 Danh sách Customer ứng với tổng tiền hóa đơn tháng Thông tin bao gồm CustomerID, CompanyName, Month_Year, Total Trong Month_year tháng năm lập hóa đơn, Total tổng Unitprice* Quantity, có thống kế tổng total theo Customer Month_Year (có dùng COMPUTE) 14 Cho biết Employees bán nhiều tiền năm 1997 15 Danh sách khách có nhiều đơn hàng năm 1996 TUẦN (3 TIẾT) BÀI TẬP 4: LỆNH SELECT – TRUY VẤN CON SUBQUERY Các product có đơn giá lớn đơn giá trung bình product Các product có đơn giá lớn đơn giá trung bình product có ProductName bắt đầu ‘N’ Cho biết sản phẩm có tên bắt đầu chữ N đơn giá > đơn giá sản phẩm khác Danh sách products có khách hàng đặt hàng (tức ProductId có Order Details) Thông tin bao gồm ProductId, ProductName, Unitprice Danh sách products có đơn giá nhập lớn đơn giá bán nhỏ tất Products Danh sách hóa đơn Customers thành phố LonDon Madrid mua Danh sách products có đơn vị tính có chữ Box có đơn giá mua nhỏ đơn giá trung bình tất Products Danh sách Products có số lượng (Quantity) bán lớn Danh sách Customer chưa lập hóa đơn (viết ba cách: dùng NOT EXISTS, dùng LEFT JOIN, dùng NOT IN ) 10 Danh sách hóa đơn mua Products có giá bán từ 200 đến 400 Khoa Cơng Nghệ Thông Tin 22/26 Trường ĐH Công Nghiệp TP.HCM Bài Tập Thực Hành Môn Hệ Cơ Sở Dữ Liệu 11 Cho biết sản phẩm có đơn giá bán cao 12 Cho biết sản phẩm có đơn vị tính có chứa chữ box có đơn giá bán cao 13 Danh sách products có đơn giá bán lớn đơn giá bán trung bình Products có ProductId=3 17 Liệt kê danh sách khách hàng mà khách hàng mua hóa đơn nhân viên lập hóa đơn thành phố với khách hàng 18 Danh sách Customers mà Customers mua hàng tháng 7, năm 1997 19 Danh sách City có nhiều customer 20 Bạn đưa câu hỏi cho câu truy vấn sau: Select ProductId, ProductName, UnitPrice from [Products] Where Unitprice>ALL (Select Unitprice from [Products] where ProductName like ‘B%’) Select ProductId, ProductName, UnitPrice from [Products] Where Unitprice>ANY (Select Unitprice from [Products] where ProductName like ‘B%’) Select ProductId, ProductName, UnitPrice from [Products] Where Unitprice=ANY (Select Unitprice from [Products] where ProductName like ‘B%’) BÀI TẬP 5: LỆNH SELECT – CÁC LOẠI TRUY VẤN KHÁC Liệt kê danh sách City có Customers Employee (dùng Union) Liệt kê danh sách Country có Customers Employee (dùng Union) Kết danh sách Customer Employee lại với Thông tin gồm CodeID, Name, Address, Phone Trong CodeID CustomerID/EmployeeID, Name Companyname/LastName + FirstName, Phone Homephone Danh sách Suppliers cung cấp tất mặt hàng Danh sách Customers mua tất mặt hàng Khoa Công Nghệ Thông Tin 23/26 Trường ĐH Công Nghiệp TP.HCM Bài Tập Thực Hành Môn Hệ Cơ Sở Dữ Liệu BÀI TẬP TUẦN Số tiết: Mục tiêu: Thêm, sửa, xóa liệu nâng cao lệnh Insert, Update, Delete Phần tập dùng CSDL QLBH làm Tuần BÀI TẬP 1: LỆNH INSERT Xóa hết liệu có Table sở liệu QLBH lệnh Delete Trong trường hợp khơng xóa liệu bảng SanPham chưa xóa liệu bảng SanPham? Nếu bạn muốn xóa Bảng cha xóa ln bảng quan hệ bạn phải làm gì? Bạn thực ví dụ minh họa Dùng lệnh Insert thêm vào bảng CSDL QLBH record với nội dung sinh viên tự nghĩ Dùng câu lệnh INSERT … SELECT với cột chọn cần thiết để đưa (nhớ kiểm tra kết sau lần thực hiện): Các khách hàng có bảng Customers NorthWind vào bảng KhachHang QLBH Các sản phẩm có SupplierID từ đến 29 bảng Products CSDL NorthWind vào bảng Sanpham QLBH Danh sách tất hố đơn có OrderID nằm khoảng 10248 đến 10350 bảng Orders Northwind vào bảng HoaDon, hoá đơn xem hoá đơn xuất - tức LoaiHD ‘X’ Danh sách tất hoá đơn có OrderID nằm khoảng 10351 đến 10446 bảng Orders Northwind vào bảng HoaDon, hoá đơn xem hoá đơn nhập - tức LoaiHD ‘N’ Danh sách tất chi tiết hố đơn có OderID nằm khoảng 10248 đến 10270 bảng Order Detail NorthWind vào bảng CT_HoaDon Chú ý: ràng buộc khóa chính, khóa ngoại ràng buộc khác Chỉ lấy cột tương ứng với bảng CSDL QLBH BÀI TẬP 2: LỆNH UPDATE Cập nhật đơn giá bán 100000 cho mã sản phẩm có tên bắt đầu chữ T Khoa Cơng Nghệ Thông Tin 24/26 Trường ĐH Công Nghiệp TP.HCM Bài Tập Thực Hành Môn Hệ Cơ Sở Dữ Liệu Cập nhật số lượng tồn = 50% số lượng tồn có cho sản phẩm có đơn vị tính có chữ box Cập nhật mã nhà cung cấp bảng NHACUNGCAP thành 100? Bạn có cập nhật hay khơng? Vì sao? Tăng điểm tích lũy lên 100 cho khách hàng mua hàng tháng năm 1997 Giảm 10% đơn giá bán cho sản phẩm có số lượng tồn