Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 20 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
20
Dung lượng
914,93 KB
Nội dung
Sách tập SQL Server AiTi-Aptech “Kiến tạo tương lai” Tài liệu lưu hành nội Bài tập SQL 2005 Trung tâm đào tạo Lập trình viên Quốc tế AiTi-Aptech 35/115 Phố Định Công – Hoàng Mai Page of 20 Sách tập SQL Server AiTi-Aptech “Kiến tạo tương lai” Tài liệu lưu hành nội Lời giới thiệu Sách tập tập thể giáo viên AiTi-Aptech thiết kế sử dụng phần tách rời khỏi giáo trình học Aptech Ấn Độ với học viên theo học Trung tâm Tập sách tập tài liệu lưu hành nội bộ, dành cho học viên theo học Trung tâm đào tạo Lập trình viên Quốc tế AiTi-Aptech Mọi hình thức chép lại nội dung sách vi phạm quyền không tuân thủ Luật Sở hữu trí tuệ Nhà nước Việt Nam AiTi-Aptech mong mỏi tạo dựng môi trường học tập tốt cho bạn học viên theo học trung tâm Mọi ý kiến đóng góp xây dựng Sách tập, cải tiến hệ thống xin gửi mail contact.aiti@gmail.com đường dây nóng (04) 64 8848 Chúng ghi nhận cải tiến để cung cấp cho bạn môi trường học tập ngày tốt “Sự nghiệp tương lai bạn thành công chúng tôi” Đội thiết kế Sách tập Việt Nam thiếu Lập trình viên đẳng cấp Quốc tế Trung tâm đào tạo Lập trình viên Quốc tế AiTi-Aptech 35/115 Phố Định Công – Hoàng Mai Page of 20 Contents Bài thực hành SQLDO - Quản lý điểm Bài thực hành SQLSDO - Quản lý bán hàng Bài tập thực hành SQLSDO - Quản lý bán sách .10 Bài thực hành SQLDO - Quản lý điểm Các bảng csdl QLDIEM có cấu trúc sau: Sơ đồ quan hệ (relationship) dạng đơn giản: Sơ đồ quan hệ cấu trúc chi tiết bảng: Sách tập SQL Server AiTi-Aptech “Kiến tạo tương lai” Tài liệu lưu hành nội Số liệu mẫu bảng Class: Số liệu mẫu bảng Subject: Trung tâm đào tạo Lập trình viên Quốc tế AiTi-Aptech 35/115 Phố Định Công – Hoàng Mai Page of 20 Số liệu mẫu bảng Student: Số liệu mẫu bảng Mark: Ghi chú: Trong bảng Class chứa thông tin lớp dự định mở thông tin lớp nhập trước lớp nhận sinh viên Vì có trường hợp lớp đăng ký, lý mà lớp không khai giảng thông tin lớp bảng Class bảng Student lại Ngoài bảng trên, tạo thêm bảng testXML có chứa cột Address có kiểu XML, dùng để thử cho lệnh liên quan đến kiểu liệu index, view… Bảng testXML có cấu trúc sau: Sách tập SQL Server AiTi-Aptech “Kiến tạo tương lai” Tài liệu lưu hành nội BÀI Câu 1: Tạo bảng (lưu ý bảng Class cột Stud_no) Nhập số ghi cho bảng Câu hỏi 2: Viết lệnh T-SQL thực công việc sau: Đặt foreign key constraint cho cột ClassCode bảng Student Tạo loại index cách thích hợp theo dõi tác động lệnh thực lệnh truy vấn (select) Hiển thị không lặp lại tên sinh viên có phần địa email “fpt.vn” "fpt.com.vn" Hiển thị lớp có ngày kết thúc 23/7/2006 mà sinh viên Loại bỏ ghi từ bảng CLASS, STUDENT MARK lớp có ngày kết thúc trước 1/1/2005 Hiển thị ClassCode, RollNo, FullName tổng số sinh viên với lớp Hiển thị tổng số sinh viên cho tất lớp Tạo view viewClass1 chứa danh sách lớp lớp có 17 sinh viên Hiển thị SubjectCode (mã môn học) , SubjectName (tên môn học) số sinh viên thi môn với số sinh viên tham gia đông Câu hỏi 3: Tạo trigger có tên TrigDelClass cho thao tác xóa lớp bảng CLASS Trước xóa mã lớp, tên giáo viên chủ nhiệm ngày xóa lưu vào bảng CLASS_HIST Đồng thời xóa ghi liên quan bảng STUDENT MARK Cấu trúc bảng CLASS_HIST Cột Mô tả ClassCode HeadTeacher DelDate Mã lớp Tên giáo viên chủ nhiệm Ngày xóa lớp Trung tâm đào tạo Lập trình viên Quốc tế AiTi-Aptech 35/115 Phố Định Công – Hoàng Mai Page of 20 BÀI Câu 1: Tạo bảng nhập liệu Viết câu SQL tạo bảng có đủ khoá khoá ngoại theo lược đồ mô tả Viết câu SQL nhập đầy đủ xác liệu theo mô tả vào bảng vừa tạo (Lưu ý thứ tự nhập liệu) Câu 2: Viết câu truy vấn liệu (query) Viết câu lệnh SQL cho kết số sinh viên có điểm thi môn “CF” Viết câu lệnh SQL cho kết danh sách môn học với số sinh viên có điểm thi tương ứng môn học, theo thứ tự tăng dần tên môn học Viết câu lệnh SQL cho kết danh sách sinh viên quê "HT" (Hà Tây), với tên môn học thi không qua (< 10 điểm) Viết câu lệnh SQL cho kết danh sách lớp học, với tổng số sinh viên lớp Viết câu lệnh SQL cho kết danh sách sinh viên, với tên đầy đủ môn học mà sinh viên tham gia thi Viết câu lệnh SQL cho kết danh sách sinh viên, với số lần tham gia thi thực hành (mỗi record bảng MARK có điểm PMark lần thi) Viết câu lệnh SQL cho kết danh sách tỉnh, với điểm trung bình tất môn thi sinh viên quê tỉnh Sắp xếp theo thứ tự giảm dần điểm trung bình Viết lệnh SQL cho kết danh sách sinh viên có điểm trung bình tất môn học >15 Câu 3: Viết Stored Procedure Viết script tạo stored procedure với yêu cầu sau: - Tên Procedure: procStudentList - Thông số: pClassCode as varchar(10), pMark as float - Xử lý: Sách tập SQL Server AiTi-Aptech “Kiến tạo tương lai” Tài liệu lưu hành nội + Nếu thông số pClassCode truyền = '' không truyền, procedure liệt kê danh sách: ClassCode, RollNo, FullName, SubjectCode, Mark lớn hay tham số pMark truyền vào + Nếu thông số pMark không truyền nhận giá trị ngầm định =0 Trung tâm đào tạo Lập trình viên Quốc tế AiTi-Aptech 35/115 Phố Định Công – Hoàng Mai Page of 20 BÀI Viết lệnh T-SQL thực công việc sau: Liệt kê danh sách lớp với tên lớp, giáo viên chủ nhiệm số sinh viên thực tế lớp (là số ghi có mã lớp bảng student) Thêm trường vào bảng Class có tên Stud_no có kiểu smallint Trường nhận giá trị số sinh viên thực tế lớp, tức số sinh viên đếm từ bảng Student Hãy cập nhật thông tin cho trường Hãy sửa lại thông tin tính toán cho trường stud_no bảng Class Như thông tin trường ghi sửa đổi không khớp với số ghi tương ứng bảng Student Hãy viết câu lệnh liệt kê hình lớp mà thông tin số sinh viên trong hai bảng không khớp Danh sách trường là: ClassCode, HeadTeacher, Stud_no, CountStud_no CountStud_no số sinh viên tính toán từ bảng student Viết lệnh loại bỏ trường Stud_no bảng Class thực hiện, để bảo đảm trường không tồn bảng Class Hãy viết stored procedure có tên proc1 tạo bảng có tên T1 gồm thông tin sau: ClassCode, HeadTeacher, CountStud_no CountStud_no số sinh viên thực tế có bảng Student Nếu bảng tồn từ trước xóa bảng trước tạo Nếu tên lớp có bảng Class bảng Student ghi tương ứng lớp coi có số sinh viên = Viết Function có tên func1 có tham số vào pClassCode có kiểu varchar(10) trả số sinh viên thực tế lớp Viết lệnh thử lại kết hình, sau dùng hàm để cập nhật trường stud_no bảng Class Viết Stored Procedure có tên procTopClass có tham số vào pClassCode, pSubjectCode mã lớp mã môn học; tham số pRollNo, mã sinh viên có điểm thi môn học cao lớp Viết lệnh thử lại cách nhập mã lớp, mã môn học sau in hình mã sinh viên với FullName có điểm thi cao Viết User-function có tên func2 có tham số vào pClassCode, pSubjectCode mã lớp mã môn học; giá trị trả mã sinh viên có điểm thi môn học cao lớp Viết lệnh thử lại cách nhập mã lớp, mã môn học sau in hình mã sinh viên với FullName có điểm thi cao Sách tập SQL Server AiTi-Aptech “Kiến tạo tương lai” Tài liệu lưu hành nội Sử dụng cursor hiển thị classcode, rollno, fullname sinh viên ghi chẵn bảng Student Sử dụng cursor sửa lại giá trị mark sinh viên ghi 3, 6, 9, thành 25 bảng Mark (câu ý nghĩa thực tế, chủ yếu để hiểu rõ cursor mà thôi) Bài thực hành SQLSDO - Quản lý bán hàng CSDL BANHANG lưu trữ thông tin quản lý bán hàng siêu thị Bình Minh Hà Nội gồm bảng có cấu trúc sau: Dữ liệu mẫu bảng NhaCungCap: Trung tâm đào tạo Lập trình viên Quốc tế AiTi-Aptech 35/115 Phố Định Công – Hoàng Mai Page 11 of 20 Dữ liệu mẫu bảng KhachHang: Dữ liệu mẫu bảng NhanVien: Dữ liệu mẫu bảng LoaiSanPham: Sách tập SQL Server AiTi-Aptech “Kiến tạo tương lai” Tài liệu lưu hành nội (xem tiếp trang 3)Cấu trúc bảng bảng có dạng (bạn thay kiểu nvarchar kiểu varchar): Trung tâm đào tạo Lập trình viên Quốc tế AiTi-Aptech 35/115 Phố Định Công – Hoàng Mai Page 13 of 20 (tiếp theo trang 1) Dữ liệu mẫu bảng SanPham: Lưu ý: Trường SoLuongTT có nghĩa số lượng tối thiểu phải có kho Nếu số lượng đến mức phải nhập hàng từ nhà cung cấp Dữ liệu mẫu bảng HoaDon: Dữ liệu mẫu bảng HoaDonChiTiet: Hãy viết lệnh T-SQL thực công việc sau: Tạo loại index cách thích hợp theo dõi tác động lệnh thực lệnh truy vấn (select) Sách tập SQL Server AiTi-Aptech “Kiến tạo tương lai” Tài liệu lưu hành nội Trong bảng HoaDonChiTiet cột thành tiền chưa tính toán, cập nhật trường ThanhTien= DonGia*SoLuong*(1-GiamGia) Sau có thông tin ThanhTien HoaDonChiTiet, cập nhật thông tin trường Tien hóa đơn = tổng số tiền mặt hàng có hóa đơn = tổng cột ThanhTien ghi HoaDonChiTiet có số hóa đơn (MaHD) Cập nhật trường TongSoTien=Tien*(1+Thue) Hiển thị danh sách mặt hàng với đầy đủ thông tin sau: Loại hàng, mã hàng, tên hàng xếp tăng dần theo tên hàng Liệt kê mặt hàng tổng số hàng bán (có hóa đơn chi tiết) theo mặt hàng Liệt kê mặt hàng tổng số tiền bán (có hóa đơn chi tiết) theo mặt hàng Liệt kê chi tiết mặt hàng bán bao gồm thông tin sau: Số hóa đơn, Mã sản phẩm (hàng), tên sản phẩm, đơn giá, số lượng, giảm giá thành tiền Chỉ liệt kê mặt hàng có giảm giá 1% (tức trường GiamGia > 0.01), ThanhTien [...]... sách bán Ví dụ, bảng SachBan có thể chứa các thông tin như sau: SoH D MaKH MaSach NgayBan Soluong 1 1 2 22/ 11 /20 06 5 2 1 3 15/7 /20 05 4 3 2 1 24 /5 /20 06 7 4 3 1 15/11 /20 05 9 Quan hệ giữa các bảng như sau: Trung tâm đào tạo Lập trình viên Quốc tế AiTi-Aptech 35/115 Phố Định Công – Hoàng Mai Page 17 of 20 Trong bảng SachBan thì field MaKH là khóa ngoại tham chiếu đến field MaKH trong bảng KhachHang, còn... Gia Phong Tinh yeu 120 11 2 Cay lua nuoc Le May Khoa hoc 30 24 3 Tam ly truoc mua thi Hai Dang Tam ly 42 32 KhachHang: Chứa danh sách khách hàng của cửa hàng Field Description MaKH Mã khách hàng, là Primary key TenKH Tên khách hàng DiaChi Địa chỉ kháchhàng Quan Tên quận hoặc huyện nơi khách hàng cư trú DienThoai Số điện thoại của kháchàng DonGia TrongKho Sách bài tập SQL Server 2 AiTi-Aptech “Kiến...Sách bài tập SQL Server 2 AiTi-Aptech “Kiến tạo tương lai” Tài liệu lưu hành nội bộ 8 Sử dụng cursor hiển thị classcode, rollno, fullname của các sinh viên tại các bản ghi chẵn trong bảng Student 9 Sử dụng cursor sửa lại giá trị mark của các sinh viên tại các bản ghi 3, 6, 9, thành 25 trong bảng Mark (câu này không có ý nghĩa thực tế, chủ yếu là để hiểu rõ hơn về cursor mà thôi) Bài thực hành SQLSDO... Page 11 of 20 Dữ liệu mẫu trong bảng KhachHang: Dữ liệu mẫu trong bảng NhanVien: Dữ liệu mẫu trong bảng LoaiSanPham: Sách bài tập SQL Server 2 AiTi-Aptech “Kiến tạo tương lai” Tài liệu lưu hành nội bộ (xem tiếp trang 3)Cấu trúc các bảng bảng có dạng (bạn có thể thay kiểu nvarchar bằng kiểu varchar): Trung tâm đào tạo Lập trình viên Quốc tế AiTi-Aptech 35/115 Phố Định Công – Hoàng Mai Page 13 of 20 (tiếp... liệu mẫu trong bảng HoaDon: Dữ liệu mẫu trong bảng HoaDonChiTiet: Hãy viết các lệnh T -SQL thực hiện các công việc sau: 1 Tạo các loại index một cách thích hợp và theo dõi tác động của các lệnh này khi thực hiện các lệnh truy vấn (select) Sách bài tập SQL Server 2 AiTi-Aptech “Kiến tạo tương lai” Tài liệu lưu hành nội bộ 2 Trong bảng HoaDonChiTiet cột thành tiền còn chưa được tính toán, hãy cập nhật trường... và nhập dữ liệu a Viết các câu SQL tạo bảng có đủ các khoá chính và khoá ngoại theo lược đồ và mô tả trên b Viết các câu SQL nhập đầy đủ và chính xác những dữ liệu theo mô tả trên vào các bảng vừa tạo (Lưu ý thứ tự nhập dữ liệu) c Tạo các loại index một cách thích hợp và theo dõi tác động của các lệnh này khi thực hiện các lệnh truy vấn (select) Sách bài tập SQL Server 2 AiTi-Aptech “Kiến tạo tương... trong các bảng liên quan (tức là các bảng có chứa khóa ngoại tham chiếu đến bảng LoaiSanPham Trung tâm đào tạo Lập trình viên Quốc tế AiTi-Aptech 35/115 Phố Định Công – Hoàng Mai Page 15 of 20 Bài tập thực hành SQLSDO - Quản lý bán sách Cho CSDL lưu trữ thông tin về quản lý sách ở cửa hàng sách Rạng Đông ở Hà Nội gồm ba bảng có cấu trúc như sau: Sach: Chứa danh sách các quyển sách có trong cửa hàng... “Kiến tạo tương lai” Tài liệu lưu hành nội bộ Ví dụ, bảng KhachHang có thể chứa các thông tin như sau: MaKH TenKH DiaChi Quan 1 Le Cong 22 Hang Buom Hoan Kiem 2 Van Nghe 19 Lo Duc Hoan Kiem 3 Tran Thong 19 Doi Can Ba Dinh 4 Hoang Tin 38 Linh Nam Hoang Mai DienThoai 098 123 654 NguoiGT Hoang Kim SachBan: Chứa danh sách các quyển sách đã bán ở cửa hàng Rạng Đông Field Description SoHD Số hóa đơn (là Primary... AiTi-Aptech “Kiến tạo tương lai” Tài liệu lưu hành nội bộ Câu 2: Viết các câu truy vấn dữ liệu (query) a Viết câu lệnh SQL cho kết quả là số đầu sách xuất bản bởi nhà xuất bản “KHKT” b Viết câu lệnh SQL cho kết quả là danh sách các nhà xuất bản cùng với số đầu sách tương ứng của từng NXB, theo thứ tự tăng dần của tên NXB c Viết câu lệnh SQL cho kết quả là danh sách các khách hàng sống trong quận "Ba... tiền và cuối cùng có tổng số tất cả mặt hàng đã bán và tổng số tiền 10 Liệt kê danh sách tất cả các khách hàng đã mua hàng trong tháng 11 /20 06 và tổng số tiền mà học đã mua 11 Liệt kê danh sách tất cả các nhân viên và số tiền hàng họ bán được trong tháng 11 /20 06 12 Viết Stored Procedure có tên là procProductList có hai tham số vào là pYear và pMonth Cả hai tham số là số nguyên chỉ năm và tháng Procedure ... of 20 Contents Bài thực hành SQLDO - Quản lý điểm Bài thực hành SQLSDO - Quản lý bán hàng Bài tập thực hành SQLSDO - Quản lý bán sách .10 Bài thực hành SQLDO... NgayBan Soluong 1 22 /11 /20 06 15/7 /20 05 24 /5 /20 06 15/11 /20 05 Quan hệ bảng sau: Trung tâm đào tạo Lập trình viên Quốc tế AiTi-Aptech 35/115 Phố Định Công – Hoàng Mai Page 17 of 20 Trong bảng SachBan... of 20 BÀI Câu 1: Tạo bảng nhập liệu Viết câu SQL tạo bảng có đủ khoá khoá ngoại theo lược đồ mô tả Viết câu SQL nhập đầy đủ xác liệu theo mô tả vào bảng vừa tạo (Lưu ý thứ tự nhập liệu) Câu 2: