Bài tập cơ sở dữ liệu chương 3 năm 2024

Dưới đây là tổng hợp các file tài liệu môn Cơ sở dữ liệu mà mình sưu tầm được. Các bạn nhấn vào nút để tải file về nhé, File trên Scribd chỉ là để xem trước file.

1. Slide bài giảng

File bên dưới chỉ là demo, còn file gốc bản đẹp các bạn xem trong thư mục nhé.

2. Tổng hợp tài liệu thực hành CSDL

3. Bài tập CSDL

Web mới update thêm một số tài liệu bài tập cơ sở dữ liệu, các bạn xem đây nhé:

4. Đề thi cơ sở dữ liệu

Đề thi này mình mới cập nhật được, các bạn xem nhé

Bài tập cơ sở dữ liệu chương 3 năm 2024

5. Sách và giáo trình

Bài tập cơ sở dữ liệu chương 3 năm 2024

6. SQL Cheatsheet

7. Tài liệu trắc nghiệm

Tài liệu môn Công nghệ web và dịch vụ trực tuyến

  • 1. TÁC DỮ LIỆU-
  • 2. dữ liệu cho bảng  Chèn dữ liệu  Xem dữ liệu  Cập nhật dữ liệu  Xóa các dòng thỏa mãn điều kiện  Xóa các dòng nhưng giữ nguyên cấu trúc bảng 2
  • 3. liệu  Cú pháp: INSERT INTO (ds cột) VALUES (giá trị cần chèn của hàng 1), (giá trị cần chèn của hàng 2), … INSERT INTO VALUES (Giá trị cần chèn của một hàng) INSERT VALUES (Giá trị cần chèn của một hàng)  Chú ý: - Nếu dữ liệu kiểu text và kiểu Date, khi chèn phải có ‘ ‘, nếu là kiểu Nvachar thì phải có tiếp đầu ngữ N’ ’. - Dữ liệu kiểu Date yêu cầu nhập tháng/ngày/năm hoặc năm/tháng/ngày - Dữ liệu dạng tự tăng thì không cần nhập. - Với dữ liệu mặc định, nếu không thay đổi giá trị mặc định khi chèn dữ liệu cần liệt kê danh sách các cột mà không có cột có ràng buộc mặc 3
  • 4. tin vào bảng SINHVIEN 4Ngôn ngữ truy vấn  insert into sinhvien (TenSV,GT,Ngaysinh, Que, Lop) values (N'Trần Bảo Trọng‘ , 'Nam‘ , '1995/12/14', N'Hà Giang‘ , 'L02‘), (N'Lê Thùy Dung', N'Nữ‘, '05/12/1997', N'Hà Nội','L03')  insert into Sinhvien values (N'Lê Trường An‘ , N'Nam‘ , '11/20/1995‘ , N'Ninh Bình', 'L04').  insert sinhvien values ( N'Đoàn Duy Thức ‘ , N'Nam‘ , '4/12/1994', N'Hà Nội', 'L01')
  • 5. li u trên b ngữ ệ ả SELECT * FROM ả 3. C p nh t d li u:ậ ậ ữ ệ UPDATE SET = [ WHERE < i u ki n>]ớ Đ ề ệ 4. Xóa các dòng th a mãn i u ki n:ỏ đ ề ệ DELETE FROM table_name WHERE =;ộ ị 5. Xóa t t c các dòng nh ng v n gi nguyên c u trúc b ng:ấ ả ư ẫ ữ ấ ả DELETE FROM table_name; 5
  • 6. vấn
  • 7. để truy xuất dữ liệu từ các dòng, các cột của một hay nhiều bảng Thực hiện phép toán: Chọn - Chiếu- Kết nối - Tính toán cơ bản Ngôn ngữ truy vấn II. Mệnh đề Select..from..where
  • 8. đầy đủ SELECT [DISTINCT |Top n |* ] ],..> [INTO ] FROM as [],... [WHERE <điều kiện chọn>] [GROUP BY < ds tên cột gom nhóm>] [HAVING <điều kiện lọc nhóm>] [ORDER BY [ASC|DESC],…]; Ngôn ngữ truy vấn
  • 9. có ba loại: - Truy vấn trên một bảng - Truy vấn trên nhiều bảng - Truy vấn lồng Ngôn ngữ truy vấn
  • 10. trên một bảng  a. Truy v n n gi n:ấ đơ ả  ộ - Tên các thu c tính (c t) s c hi n th trong k t qu truy v n.ộ ộ ẽđượ ể ị ế ả ấ  ả - Tên các b ng liên quan l y k t quả để ấ ế ả  ể ứ đ ề ệ - là i u ki n a vào ch n l c d li u, th ng g m:đ ề ệ đư để ọ ọ ữ ệ ườ ồ  Các phép toán so sánh: < , > , ≤ , ≥ , ≠ , =  Các phép toán logic: AND, OR, và NOT  Các t khóa: BETWEEN … AND, IN, EXISTS, LIKE…ừ SELECT FROM [WHERE ] Ngôn ngữ truy vấn
  • 11. các cột> FROM WHERE <điều kiện> σ π × SELECT L FROM R WHERE C πL (σC (R))  SQL và ĐSQH Ngôn ngữ truy vấn
  • 12. dụ 1: Cho danh sách sinh viên gồm Mã SV, Họ tên, Ngày sinh của tất cả các sinh viên Select MaSV, TenSV, Ngaysinh from Sinhvien  Ví dụ 2: Cho danh sách sinh viên nữ thuộc lớp L02 Select * From Sinhvien Where (GT=N'Nữ') and (Lop='L02‘)  Ví dụ 3: Thêm định danh cho bảng và cho cột (sử dụng từ khóa as) select sv.MaSV, TenSV as 'Tên Sinh Viên' from Sinhvien as sv /* sau khi định danh cho bảng thì từ đó sử dụng tên định danh*/ Ngôn ngữ truy vấn
  • 13. 4: Xử lý dữ liệu kiểu chuỗi dùng Like hoặc not like để tìm chuỗi gần đúng %: Thay thế 1 chuỗi -: thay thế 1 ký tự  VD 4.1: Cho danh sách các sinh viên có tên là ‘Nga’ select * from sinhvien where TenSV like N'% Nga'  VD 4.2: Cho danh sách những sinh viên họ Trần select * from sinhvien where TenSV like N'Trần %' 13Ngôn ngữ truy vấn
  • 14. 5: Sử dụng BETWEEN AND để lấy những bản ghi thỏa mãn nằm giữa GT1 và GT2. Cho danh sách gồm mã sinh viên, ma môn học của sinh viên có điểm từ 5 đến 7 select MaSv, MaMH from ketqua where diem between 5 and 7  Note: Not Between .. and … có ý nghĩa ngược lại. 14Ngôn ngữ truy vấn
  • 15. 6: Sử dụng NULL/NOT NULL cho các trường hợp sau: - Không biết - không xác định (value unknown) - Không thể áp dụng (value inapplicable) - Không tồn tại (value withheld)  VD: Cho danh sách gồm Mã Sinh viên và mã môn học của sinh viên không có điểm thi select MaSV, MaMH from ketqua where Diem is Null 15Ngôn ngữ truy vấn
  • 16. 7: Sử dụng in: Cho danh sách các sinh viên có quê ở Hà Nội hoặc Phú Thọ Select * From Sinhvien where que in (N'Hà nội', N'Phú Thọ')  Ví dụ 8: Sử dụng các toán tử - Distinct : loại bỏ các dòng dữ liệu trùng - Top n : lấy n dòng đầu tiên  VD 8.1: Liệt kê danh sách các tỉnh có sinh viên theo học tại trường select distinct Que from Sinhvien 16Ngôn ngữ truy vấn
  • 17. Cho thông tin của hai sinh viên đầu tiên trong danh sách sinh viên select top (2) MaSV, TenSV,Que from Sinhvien 17Ngôn ngữ truy vấn
  • 18. Bảng KHACHHANG( MK, TenK, DChi, SoDT )  Bảng BAOCHI( MB, TenBao, Gia)  Bảng DATBAO( MK, MB, NgayDat, SoLuong) Viết câu lệnh SQL các truy vấn thực hiện các yêu cầu sau: 1. Cho biết tên và thành tiền đặt mua báo của khách hàng tương ứng với từng ngày đặt 2. Cho biết họ tên – địa chỉ của khách hàng đặt mua báo có tên Nhân Dân trong năm 2014 3. Thông tin về các loại báo khách hàng đã đặt mua trong năm 2000. 4. Cho thông tin của báo chí có giá đắt nhất 19
  • 19. hợp  Được sử dụng để tính giá trị thống kê trên toàn bảng hoặc trên mỗi nhóm dữ liệu  Các hàm cơ bản: - Sum( [All | Distinct] biểu-thức), Avg( [All | Distinct] biểu-thức) - Count( [All | Distinct] biểu-thức) : đếm số dòng khác Null trong cột, biểu thức. - Count(*) : đếm số dòng được chọn trong bảng, kể cả Null - Max( biểu-thức ), Min( biểu-thức )  Các hàm thực hiện tính toán trên toàn bộ dữ liệu, bỏ bớt giá trị trùng nhau thêm từ distinct Ngôn ngữ truy vấn 20
  • 20. Tìm tổng lương, lương cao nhất, lương thấp nhất và lương trung bình của các nhân viên  NHANVIEN(MaNV, TenNV, GT, NS, DChi, Luong, MaPB) SELECT sum(Luong) AS [Tổng lương] , max(Luong) AS [Lương cao nhất] , min(Luong) AS [Lương thấp nhất] , avg(Luong) AS [Lương trung bình] FROM NhanVien LUONG 3.000.000 2.500.000 2.500.000 4.000.000 Tổng lương Lương cao nhất Lương thấp nhất Lương trung bình 12.000.00 0 3.000.0002.500.0004.000.000 Ngôn ngữ truy vấn
  • 21. sum(distinct Luong) AS [Tổng lương] FROM NhanVien LUONG 3.000.000 2.500.000 2.500.000 4.000.000 Ngôn ngữ truy vấn
  • 22. 11: Cho biết số lượng nhân viên của phòng 5  NHANVIEN(MaNV, TenNV, GT, NS, DChi, Luong, MaPB) SELECT count(MNV) AS [Số nhân viên] FROM NhanVien WHERE MaPB = 5 Ngôn ngữ truy vấn
  • 23. GROUP BY  Để thực hiện gom nhóm các bộ theo một tiêu chí xác định để thực hiện tính toán  Cú pháp  Sau khi gom nhóm - Mỗi nhóm các bộ sẽ có cùng giá trị tại các thuộc tính gom nhóm  CSDL gồm: - NHANVIEN(MaNV, TenNV, GT, NS, DChi, Luong, MaPB) - PHONG(MaP, TenP, DIADIEM) - DU_An(MaDA, TenDA, DiaDiem, MAPB) SELECT , FROM [WHERE ] GROUP BY HAVING <điều kiện tính toán nhóm> Ngôn ngữ truy vấn
  • 24. Với mỗi phòng, cho biết số dự án mà phòng đó điều phối MaPB So du an 5 4 1 3 2 1 SELECT MaPB, count (Ma_DuAn) AS [So du an] FROM DUAN GROUP BY MaPB Kết quả: Cột gom nhóm [Group By (MaPB)]Cột tính toán [count (Ma_DuAn)] X Y Z 1 2 3 Da Nang Chu Lai Hue 5 5 5 Tin học hóa Phúc lợi 10 20 Quang Nam Quang Tri 4 4 Tái tổ chức 15 Da Nang 1 DUAN Ten_DuAn Ma_DuAn DiaDiem MaPB Ngôn ngữ truy vấn
  • 25. Cho biết số lượng nhân viên của từng phòng ban Số NV 5 4 3 3 PHG 1 1 TENNV NGSINH DCHI PHAI LUONG MaPB TungNguyen 12/08/1955 638 NVC Q5 Nam 40000 5 HungNguyen 09/15/1962 Ba Ria VT Nam 38000 5 33344555 5 98798798 7 MANV MA_NQL 88866555 5 33344555 5 Thanh Manh TamTran 07/31/1972 543 MTL Q1 Nu 25000 5 HangBui 07/19/1968 33 NTH Q1 Nu 38000 4 45345345 3 99988777 7 33344555 5 98765432 1 Thanh Ngoc NhuLe 07620/1951 219 TD Q3 Nu 43000 498765432 1 88866555 5 Quynh QuangTran 04/08/1969 980 LHP Q5 Nam 25000 4 VinhPham 11/10/1945 450 TV HN Nam 55000 1 98798798 7 88866555 5 98765432 1 NULL Hong Van SELECT PHG, count (MaNV) AS [Số NV] FROM NHANVIEN GROUP BY MaPB Ngôn ngữ truy vấn
  • 26. Cho biết những phòng ban tham gia từ 2 đề án trở lên SELECT MaPB, count (Ma_DuAn) AS [So du an] FROM DUAN GROUP BY MaPB HAVING Count (Ma_DuAn) >= 2 X Y Z 1 2 3 Da Nang Chu Lai Hue 5 5 5 Tin học hóa Phúc lợi 10 20 Quang Nam Quang Tri 4 4 Tái tổ chức 15 Da Nang 1 DUAN Ten_DuAn Ma_DuAn DiaDiem MaPB MaPB So du an Kết quả: 5 4 3 2 bị loại ra Ngôn ngữ truy vấn
  • 27. tự thực hiện câu truy vấn có mệnh đề GROUP BY và HAVING - (1) Chọn ra những dòng thỏa điều kiện trong mệnh đề WHERE - (2) Những dòng này sẽ được gom thành nhiều nhóm tương ứng với mệnh đề GROUP BY - (3) Áp dụng các hàm kết hợp cho mỗi nhóm - (4) Bỏ qua những nhóm không thỏa điều kiện trong mệnh đề HAVING - (5) Rút trích các giá trị của các cột và hàm kết hợp trong mệnh đề SELECT 29Ngôn ngữ truy vấn
  • 28. ORDER BY  Hiển thị kết quả câu truy vấn theo một thứ tự nào đó trên các cột  Cú pháp - ASC (ASCending): tăng (mặc định) - DESC (DESCending): giảm SELECT FROM WHERE ORDER BY [ASC | DESC] Ngôn ngữ truy vấn
  • 29. Với mỗi phòng ban, cho biết mã phòng và mã nhân viên trong phòng đó. Sắp xếp theo thứ tự giảm dần của mã phòng và tăng dần của mã nhân viên. 02 03 05 04 06 Nguyen Tung Le Loi -DN Nam 5 Le Thi Buoi Tran Phu -DN Nu 5 01 TENNV DCHI GT MaPBMANV Le Nam Yen Bay -DN Nam 4 Tran Thi B Le Duan -DN Nu 4 Thai Thi Hoa Hoa Khanh -DNNu 1 Tran A Dien Ban -QN Nam 5 SELECT MaPB, MaNV FROM NHANVIEN ORDER BY MaPB DESC, MaNV Ngôn ngữ truy vấn
  • 30. dữ liệu trên nhiều bảng  Có hai cách kết nối bảng: - Sử dụng mệnh đề where - Sử dụng Join/inner Join/Left Join/Right Join/Full Join  Trong đó: Join, inner Join và where là tương đương nhau  Cú pháp: SELECT FROM WHERE <điều kiện nối hai bảng>  Ví dụ: SELECT TENNV, TENPB FROM NHANVIEN, PHONGBAN WHERE NHANVIEN.MAPB = PHONGBAN.MAPB 32Ngôn ngữ truy vấn
  • 31. INNER|LEFT|RIGHT|FULL JOIN  Cú pháp: SELECT FROM table1 INNER|LEFT|RIGHT|FULL JOIN table2 ON <điều kiện nối> 33Ngôn ngữ truy vấn
  • 32. INNER|LEFT|RIGHT|FULL JOIN  INNER JOIN/JOIN: trả về các dòng của hai bảng thỏa mãn điều kiện nối  LEFT JOIN: trả về các dòng của bảng thứ nhất dù ở bảng 2 không thỏa mãn điều kiện nối. Nếu dữ liệu có ở bảng 1 không có ở bảng 2 vẫn hiển thị  RIGHT JOIN: trả về các dòng của bảng2 dù ở bảng 1 không thỏa mãn điều kiện nối. Nếu dữ liệu có ở bảng 2 không có ở bảng 1 vẫn hiển thị.  FULL JOIN: trả về các dòng của hai bảng, nếu không có dữ liệu thỏa mãn điều kiện thì gán bằng NULL. 34Ngôn ngữ truy vấn
  • 33. bảng dữ liệu: Khachhang và Hoadon 35 MaKH TenKH 01 Trần Nhật Lệ 02 Lê Thị Nhàn 03 Hoàng Lê Minh 04 Bùi Ngọc Quang MaKH MaSP TenSP 01 A100 Quạt máy 01 A102 Tủ lạnh 03 A120 Máy giặt 05 A230 Ti vi Ngôn ngữ truy vấn
  • 34. TenSP FROM Khachhang INNER JOIN hoadon ON Khachhang.MaKH = Hoadon.MaKH 36 TenKH TenSP Trần Nhật Lệ Quạt máy Trần Nhật Lệ Tủ lạnh Hoàng Lê Minh Máy giặt Ngôn ngữ truy vấn
  • 35. Khachhang LEFT JOIN hoadon ON Khachhang.MaKH = Hoadon.MaKH 37 TenKH TenSP Trần Nhật Lệ Quạt máy Trần Nhật Lệ Tủ lạnh Lê Thị Nhàn NULL Hoàng Lê Minh Máy giặt Bùi Ngọc Quang NULL Ngôn ngữ truy vấn
  • 36. Khachhang RIGHT JOIN hoadon ON Khachhang.MaKH = Hoadon.MaKH 38 TenKH TenSP Trần Nhật Lệ Quạt máy Trần Nhật Lệ Tủ lạnh Hoàng Lê Minh Máy giặt NULL Tivi Ngôn ngữ truy vấn
  • 37. Khachhang FULL JOIN hoadon ON Khachhang.MaKH = Hoadon.MaKH 39 TenKH TenSP Trần Nhật Lệ Quạt máy Trần Nhật Lệ Tủ lạnh Lê Thị Nhàn NULL Hoàng Lê Minh Máy giặt Bùi Ngọc Quang NULL NULL Tivi Ngôn ngữ truy vấn
  • 38. lý của lệnh SELECT 40Ngôn ngữ truy vấn
  • 39. lồng  Là thực hiện lồng ghép nhiều câu lệnh SELECT với nhau  Câu truy vấn con thường trả về một tập các giá trị  Các câu truy vấn con trong cùng một mệnh đề WHERE được kết hợp bằng phép nối logic với Mệnh đề WHERE của câu truy vấn cha: - - So sánh tập hợp thường đi cùng với một số toán tử  IN, NOT IN  ALL  ANY hoặc SOME - Kiểm tra sự tồn tại  EXISTS  NOT EXISTS 41Ngôn ngữ truy vấn
  • 40. truy vấn lồng: 42 SELECT FROM WHERE ( SELECT FROM WHERE <điều kiện>) Câu truy vấn cha (Outer query) Câu truy vấn con (Subquery) Ngôn ngữ truy vấn
  • 41. loại truy vấn lồng - Lồng phân cấp  Mệnh đề WHERE của truy vấn con không tham chiếu đến thuộc tính của các quan hệ trong mệnh đề FROM ở truy vấn cha  Khi thực hiện, câu truy vấn con sẽ được thực hiện trước - Lồng tương quan  Mệnh đề WHERE của truy vấn con tham chiếu ít nhất một thuộc tính của các quan hệ trong mệnh đề FROM ở truy vấn cha  Khi thực hiện, câu truy vấn con sẽ được thực hiện nhiều lần, mỗi lần tương ứng với một bộ của truy vấn cha 43Ngôn ngữ truy vấn
  • 42. cho danh sách mã sinh viên, tên sv có điểm thi >8  Cách 1: sử dụng truy vấn thông thường select a.masv, tensv from sinhvien as a, ketqua as b where (a.masv=b.masv) and (diem>8)  Cách 2: sử dụng truy vấn lồng phân cấp select Masv, tensv from sinhvien where Masv in ( select Masv from ketqua where (diem>8)) Ngôn ngữ truy vấn
  • 43. Masv, tensv from sinhvien as a where exists (select * from ketqua as b where (a.MaSV=b.MaSV) and (diem>8)) Ngôn ngữ truy vấn
  • 44. có các bảng CSDL như sau: - Nhanvien(MaNV, HT, NS, GT, Luong, MaP) - Phong(MaP, TenP, MNQL, NgayQL) - DuAn(MaDa,TenDA, DiaDiem,MaP) - NV_DA(MaNV, MaDA, Sogio) 46Ngôn ngữ truy vấn
  • 45. 2: Tìm những nhân viên thực hiện ít nhất một dự án nào đó SELECT * FROM NHANVIEN WHERE EXISTS (SELECT * FROM NV_DA WHERE NHANVIEN.manv= NV_DA.manv); 47Ngôn ngữ truy vấn
  • 46. 3: Tìm tên nhân viên có lương cao hơn tất cả các nhân viên khác? SELECT Hoten FROM NHANVIEN WHERE luong >= ALL (SELECT luong FROM NHANVIEN); Mệnh đề trên tương đương với SELECT Hoten FROM NHANVIEN WHERE luong = (SELECT MAX (luong) FROM NHANVIEN); 48Ngôn ngữ truy vấn
  • 47. 4: Tìm tên những dự án mà nhân viên có mã số 7 đã thực hiện? SELECT tenda FROM DUAN WHERE mada= ANY(SELECT mada FROM NV_DA WHERE manv = 7); Select tenda from Duan, NV_DA Where Duan.MaDA=NV_DA.MaDA and MaNV=7 49Ngôn ngữ truy vấn
  • 48. tập hợp  Gồm: - UNION Hợp - INTERSECT Giao - EXCEPT Trừ  Chú ý: Các trường trong select phải giống nhau mới thực hiện được 50Ngôn ngữ truy vấn
  • 49. Ví dụ 1: Cho danh sách mã sinh viên của những sinh viên không có bất kỳ một điểm thi của một môn học nào. select MasV from Sinhvien Except select Masv from ketqua where diem not null 51Ngôn ngữ truy vấn
  • 50. Cho danh sách tên của các sinh viên có đủ điểm hai môn với mã môn học là 1 và 3 select distinct tensv from Sinhvien as a, Ketqua as b where a.MaSV = b.MaSV and MaMH=1 Intersect select distinct tensv from Sinhvien as a, Ketqua as b where a.MaSV = b.MaSV and MaMH=3 52Ngôn ngữ truy vấn
  • 51. SQL  SQL có các loại hàm sau: - Các hàm tập hợp - Hàm chuyển đổi kiểu dữ liệu - Hàm ngày tháng - Hàm toán học - … 53Ngôn ngữ truy vấn
  • 52. col_name ) AVG( col_name ) COUNT ( col_name ) | COUNT( * ) MAX( col_name ) MIN( col_name ) Ngôn ngữ truy vấn 54
  • 53. num_expr ) POWER( num_expr, y ) ROUND( num_expr, length ) SQRT( float_expr) Ngôn ngữ truy vấn 55
  • 54. để thao tác giá trị ngày tháng  Gồm: - GETDATE( ) - DAY( date ), MONTH( date ), YEAR( date ) - DATEDIFF( datepart, date1, date2 ) - DATEADD( datepart, number, date ) - DATENAME( datepart, date ) - DATEPART( datepart, date ) *Hàm ngày tháng 58Ngôn ngữ truy vấn
  • 55. vấn Đơn vị thời gian Ký hiệu Values Hour hh 0-23 Minute Mi, n 0-59 Second Ss, s 0-59 Day of Year Dy, y 1-366 Day Dd, d 1-31 Week Wk, www 1-53 Month Mm, m 1-12 Quarter Qq, q 1-4 Year Yy, yyyy 1753-9999
  • 56. chuỗi  Dùng để tách, thay thế và tương tác với chuỗi ký tự  Gồm: - LEFT( string, number), RIGHT( string, number ) - LOWER( string ), UPPER( string ) - LTRIM( string ), RTRIM( string ) - LEN( string ) Ngôn ngữ truy vấn 60
  • 57. cơ sở dữ liệu gồm các bảng và các trường tương ứng như sau:  SACH ( Masach, Tensach, Tentacgia, Nhaxuatban, Soluong)  DOCGIA( Sothe, Tendocgia, Khoa, Khoahoc, Thoihanthe)  PHIEUMUON( Masach, Sothe, ngaymuon, ngaytra, datra, ghichu) - Thiết lập các ràng buộc dữ liệu trên các bảng: PK, FK, CHECK, DEFAULT,.. - Nhập 1 bản ghi vào mỗi bảng - Thực hiện xóa, cập nhật dữ liệu trên một bảng bất kì với điều kiện phù hợp. - Hiển thị tên, khoa của các độc giả và sắp xếp theo khoa? - Tìm những độc giả mượn sách Toán cao cấp vào ngày 20/5/2003? - Hiển thị tên, số thẻ, tên sách của tất cả độc giả mượn sách trong tháng 5/2003 - Danh sách các sách không ai mượn - Cho biết độc giả tên A mượn sách bao nhiêu lần Ngôn ngữ truy vấn 61
  • 58. dụng  NHANVIEN(MaNV, Hoten, DiaChi, SDT, NgaySinh, GT, HSL)  HANG(MaHang, TenHang, NhaSX, TGianBaoHanh)  KHACHHANG(MaKH, TenKH, CMT, DiaChi, SoDienThoai, Email)  HOADONXUAT(MaHD, MaKH, NgayLapHD, MaNV, PhuongThucTT)  CT_HOADON(MaHD, MaHang, SoLuongMua, DonGia)  Viết câu lệnh truy vấn đầy đủ thực hiện yêu cầu sau: - Cho danh sách họ tên của nhân viên sinh vào tháng 3 hoặc tháng 10 - Cho danh sách họ tên và địa chỉ của các khách hàng có sử dụng gmail - Cho biết tuổi cao nhất hiện nay của các nhân viên - Cho danh sách khách hàng có địa chỉ không thuộc quận Đống Đa hoặc quận Hoàng Mai - Cho danh sách các tên hàng không bán được mặt hàng nào - Tính tổng số tiền của từng hóa đơn xuất - Liệt kê danh sách các khách hàng đã mua trên 10 triệu - Cho danh sách các mặt hàng đã được mua trong năm 2014 và tổng tiền trên 10 triệu Ngôn ngữ truy vấn 62
  • 59. dụng (tiếp)  NHANVIEN(MaNV, Hoten, DiaChi, SDT, NgaySinh, GT, HSL)  HANG(MaHang, TenHang, NhaSX, TGianBaoHanh)  KHACHHANG(MaKH, TenKH, CMT, DiaChi, SoDienThoai, Email)  HOADONXUAT(MaHD, MaKH, NgayLapHD, MaNV, PhuongThucTT)  CT_HOADON(MaHD, MaHang, SoLuongMua, DonGia)  Viết câu lệnh truy vấn đầy đủ thực hiện yêu cầu sau: - Tính tổng số tiền đã bán được của từng hóa đơn - Tính tổng số lượng và tổng số tiền đã bán được của từng mặt hàng - Tính tổng số lượng và tổng số tiền đã bán được của từng mặt hàng trong năm 2013 - Tính tổng số tiền đã mua hàng của từng khách hàng, thống kê dựa vào tên khách hàng - Cho biết tên mặt hàng đã bán với số lượng nhiều nhất Ngôn ngữ truy vấn 63
  • 60. ( MANV, HOTen, NS, GT, HSL, DC, MAPB, NgayVL)  PHONGBAN ( MAPB, TENDV , MaTP, NgayBD, SoNV)  DIADIEM_PB ( MaPB, DiaDiem)  DUAN ( MADA, TENDA, DIADIEM, NgBD, MAPB)  THANNHAN ( HOTEN, NS, GT, QuanHe, MANV)  PHANCONG ( MADA, MANV, SoGio, NgLamDA)  Xây dựng câu lệnh truy vấn thực hiện yêu cầu sau: 1. Cho biết tổng lương của từng phòng ban 2. Cho tên phòng ban có tổng lương trên 10 triệu 3. Cho tên phòng ban có tổng số nhân viên dưới 5 4. Cho biết tên nhân viên và tổng số giờ đã tham gia dự án của nhân viên đó 5. Cho biết tổng số nhân viên đã tham gia làm cho từng dự án theo tên dự án 6. Cho biết số dự án đã thực hiện của từng phòng ban 7. Cho biết tên dự án và tổng số giờ làm của các nhân viên cho dự án đó 8. Cho biết tên của nhân viên có số giờ làm cho dự án là nhiều nhất 9. Cho biết tên của phòng ban có tổng lương thấp nhất Ngôn ngữ truy vấn 64
  • 61. nhà Thiết kế CSDL của Bài tập lớn Sử dụng câu lệnh Create để tạo các bảng tương ứng In (vẽ) sơ đồ liên kết giữa các bảng nộp đầu giờ cho GV kiểm tra - Ghi rõ tên đề bài - Tên sinh viên và tên lớp tương ứng Chuẩn bị bộ dữ liệu có nghĩa để chèn vào các bảng Ngôn ngữ truy vấn 65
  • 62. dụng  NHANVIEN( MaNV, Hoten, DiaChi, SDT, NgaySinh, GT, HSL)  HANG( MaHang, TenHang, NhaSX, TGianBaoHanh, DonGia)  KHACHHANG( MaKH, TenKH, CMT, DiaChi, SoDienThoai, Email)  HOADONXUAT( MaHD, MaKH, NgayLapHD, MaNV, PhuongThucTT)  CT_HOADON( MaHD, MaHang, SoLuongMua, GiamGia)  Viết câu lệnh truy vấn đầy đủ thực hiện yêu cầu sau: - Cho danh sách các nhân viên nữ đã bán được hàng vào tháng 3 - Cho danh sách khách hàng sử dụng thuê bao Viettel đã thanh toán tiền trực tiếp khi mua hàng - Cho danh sách tên các mặt hàng chưa bán được hàng nào - Cho danh sách nhân viên có lương cao nhất - Cho danh sách khách hàng ở Đống Đa đã đến mua hàng - Thống kê tổng số tiền của từng hóa đơn đã bán trong tháng 3 - In ra danh sách các hóa đơn trong tháng 3 đã tổng trị giá > 10 triệu - Cho biết tổng số loại hàng đã được bán của từng hóa dơn Ngôn ngữ truy vấn 66
  • 63. hành (tiếp)  NHANVIEN( MaNV, Hoten, DiaChi, SDT, NgaySinh, GT, HSL)  HANG( MaHang, TenHang, NhaSX, TGianBaoHanh, DonGia)  KHACHHANG( MaKH, TenKH, CMT, DiaChi, SoDienThoai, Email)  HOADONXUAT( MaHD, MaKH, NgayLapHD, MaNV, PhuongThucTT)  CT_HOADON( MaHD, MaHang, SoLuongMua, GiamGia)  Viết câu lệnh truy vấn đầy đủ thực hiện yêu cầu sau (tiếp) - Cho biết tổng số hóa đơn đã được lập của mỗi nhân viên - Cho biết tổng số tiền đã bán hàng của mỗi nhân viên trong tháng 3 - Cho biết tổng số tiền đã mua hàng của từng khách hàng theo tên khách hàng - Cho biết tổng số lượng đã bán của từng mặt hàng, theo tên trong tháng 3 - Cho biết đã lập bao nhiêu hóa đơn trong năm 2012 Ngôn ngữ truy vấn 67