Bài giảng Cơ sở dữ liệu - Chương 5: Ngôn ngữ truy vấn có cấu trúc cung cấp cho người học các kiến thức: Định nghĩa dữ liệu và các kiểu dữ liệu, các ràng buộc cơ bản trong SQL, các câu lệnh thay đổi lược đồ cơ sở dữ liệu,... Mời các bạn cùng tham khảo.
11/22/2018 CƠ SỞ DỮ LIỆU NGƠN NGỮ TRUY VẤN CĨ CẤU TRÚC Cơ sở liệu – Tổng quan hệ thống sở liệu NỘI DUNG • Định nghĩa liệu kiểu liệu • Các ràng buộc SQL • Các câu lệnh thay đổi lược đồ sở liệu • Các câu truy vấn SQL • Các câu truy vấn phức tạp • Các lệnh cập nhật liệu SQL Ths Trịnh Hoàng Nam, namth@buh.edu.vn Cơ sở liệu – Tổng quan hệ thống sở liệu ĐỊNH NGHĨA DỮ LIỆU & CÁC KIỂU DỮ LIỆU Định nghĩa lược đồ CSDL SQL • Tập hợp bảng liệu phục vụ cho ứng dụng Thành phần lược đồ CSDL • • • • Bảng liệu Ràng buộc tồn vẹn Khung nhìn … Câu lệnh tạo lược đồ CSDL CREATE SCHEMA COMPANY AUTHORIZATION SA Ths Trịnh Hoàng Nam, namth@buh.edu.vn 11/22/2018 Cơ sở liệu – Tổng quan hệ thống sở liệu ĐỊNH NGHĨA DỮ LIỆU & CÁC KIỂU DỮ LIỆU Bảng liệu SQL • Quan hệ liệu tạo lưu trữ vật lý tệp liệu DBMS Thành phần bảng liệu • • • • Các thuộc tính Miền giá trị thuộc tính Các ràng buộc tồn vẹn bảng … Ths Trịnh Hoàng Nam, namth@buh.edu.vn Cơ sở liệu – Tổng quan hệ thống sở liệu ĐỊNH NGHĨA DỮ LIỆU & CÁC KIỂU DỮ LIỆU Bảng liệu SQL • Cho phép có trùng Câu lệnh tạo bảng liệu SQL CREATE TABLE tên_bảng () Ths Trịnh Hồng Nam, namth@buh.edu.vn Cơ sở liệu – Tổng quan hệ thống sở liệu ĐỊNH NGHĨA DỮ LIỆU & CÁC KIỂU DỮ LIỆU Các kiểu liệu SQL • • • • • Kiểu liệu số Kiểu liệu chuỗi ký tự Kiểu liệu chuỗi bit Kiểu liệu Boolean Kiểu liệu Datetime Ths Trịnh Hoàng Nam, namth@buh.edu.vn 11/22/2018 Cơ sở liệu – Tổng quan hệ thống sở liệu ĐỊNH NGHĨA DỮ LIỆU & CÁC KIỂU DỮ LIỆU Ví dụ lệnh tạo bảng liệu Ths Trịnh Hoàng Nam, namth@buh.edu.vn Cơ sở liệu – Tổng quan hệ thống sở liệu CÁC LOẠI RÀNG BUỘC TOÀN VẸN DỮ LIỆU Ràng buộc NOT NULL • u cầu thuộc tính khơng phép có giá trị null • Một thuộc tính thành phần khóa not null Ví dụ Ths Trịnh Hồng Nam, namth@buh.edu.vn Cơ sở liệu – Tổng quan hệ thống sở liệu CÁC LOẠI RÀNG BUỘC TOÀN VẸN DỮ LIỆU Giá trị mặc định • Giá trị sử dụng trường hợp thêm vào nhận giá trị null thuộc tính khai báo mặc định Ví dụ Ths Trịnh Hồng Nam, namth@buh.edu.vn 11/22/2018 Cơ sở liệu – Tổng quan hệ thống sở liệu CÁC LOẠI RÀNG BUỘC TOÀN VẸN DỮ LIỆU Ràng buộc miền giá trị • Giá trị thuộc tính phải nằm miền giá trị thuộc tính Ví dụ Ths Trịnh Hồng Nam, namth@buh.edu.vn Cơ sở liệu – Tổng quan hệ thống sở liệu CÁC LOẠI RÀNG BUỘC TOÀN VẸN DỮ LIỆU Ràng buộc khóa SQL • Hai liệu quan hệ khơng thể có giá trị (các) thuộc tính khóa • Quan hệ có nhiều khóa, gồm khóa nhiều khóa phụ (duy nhất) Ví dụ Ths Trịnh Hồng Nam, namth@buh.edu.vn Cơ sở liệu – Tổng quan hệ thống sở liệu CÁC LOẠI RÀNG BUỘC TOÀN VẸN DỮ LIỆU Ràng buộc tham chiếu SQL • Một giá trị muốn xuất khung cảnh cần phải xuất khung cảnh khác • Thuộc tính tham chiếu khóa ngoại, thuộc tính tham chiếu tới phải khóa (chính phụ) Ví dụ Ths Trịnh Hồng Nam, namth@buh.edu.vn 11/22/2018 Cơ sở liệu – Tổng quan hệ thống sở liệu CÁC LOẠI RÀNG BUỘC TOÀN VẸN DỮ LIỆU Đặt tên cho ràng buộc tồn vẹn SQL • Tên tường minh ràng buộc toàn vẹn hữu ích có nhu cầu muốn chỉnh sửa xóa ràng buộc hữu Ví dụ Ths Trịnh Hồng Nam, namth@buh.edu.vn Cơ sở liệu – Tổng quan hệ thống sở liệu CÁC LOẠI RÀNG BUỘC TOÀN VẸN DỮ LIỆU Ràng buộc toàn vẹn SQL • Ràng buộc liên quan đến giá trị thành phần liệu xét Ví dụ Ths Trịnh Hoàng Nam, namth@buh.edu.vn Cơ sở liệu – Tổng quan hệ thống sở liệu CÁC CÂU LỆNH THAY ĐỔI LƯỢC ĐỒ CƠ SỞ DỮ LIỆU Lệnh xóa bảng liệu SQL • Xóa tồn liệu bảng với lược đồ bảng • Việc xóa bảng thành cơng khơng khơng tham chiếu tới bảng khác Ví dụ Ths Trịnh Hồng Nam, namth@buh.edu.vn 11/22/2018 Cơ sở liệu – Tổng quan hệ thống sở liệu CÁC CÂU LỆNH THAY ĐỔI LƯỢC ĐỒ CƠ SỞ DỮ LIỆU Lệnh sửa cấu trúc bảng liệu SQL • Thay đổi cấu trúc bảng liệu cách thêm mới, sửa, xóa thuộc tính, ràng buộc tồn vẹn, … Ví dụ Ths Trịnh Hoàng Nam, namth@buh.edu.vn Cơ sở liệu – Tổng quan hệ thống sở liệu CÁC CÂU TRUY VẤN CƠ BẢN TRONG SQL Phát biểu SELECT FROM WHERE SELECT EName, ESalary FROM EMPLOYEE WHERE dNum=1 Ví dụ Ths Trịnh Hồng Nam, namth@buh.edu.vn Cơ sở liệu – Tổng quan hệ thống sở liệu CÁC CÂU TRUY VẤN CƠ BẢN TRONG SQL SQL vs Đại số quan hệ SELECT L FROM R WHERE C L C (R) Ví dụ SELECT EName, ESalary FROM EMPLOYEE EName, ESalary dNum = (EMPLOYEE) WHERE dNum=1 Điều kiện chọn Ths Trịnh Hoàng Nam, namth@buh.edu.vn 11/22/2018 Cơ sở liệu – Tổng quan hệ thống sở liệu CÁC CÂU TRUY VẤN CƠ BẢN TRONG SQL Ví dụ • Cho biết mã số tên dự án phòng Kinh doanh quản lý Điều kiện kết SELECT PNumber, PName FROM PROJECT, DEPARTMENT WHERE DNumber = dNum AND DName = N’Phòng Kinh doanh’ Điều kiện chọn Ths Trịnh Hoàng Nam, namth@buh.edu.vn Cơ sở liệu – Tổng quan hệ thống sở liệu CÁC CÂU TRUY VẤN CƠ BẢN TRONG SQL Ví dụ • Cho biết họ tên nhân viên họ tên người trực tiếp quản lý SELECT EName, EName FROM EMPLOYEE, EMPLOYEE WHERE supervisorSSN = ESSN Nhân viên xét ? Người trực tiếp quản lý Ths Trịnh Hoàng Nam, namth@buh.edu.vn Cơ sở liệu – Tổng quan hệ thống sở liệu CÁC CÂU TRUY VẤN CƠ BẢN TRONG SQL Ví dụ • Cho biết họ tên nhân viên họ tên người trực tiếp quản lý SELECT e.EName, s.EName FROM EMPLOYEE e, EMPLOYEE s WHERE e.supervisorSSN = s.ESSN Ths Trịnh Hoàng Nam, namth@buh.edu.vn 11/22/2018 Cơ sở liệu – Tổng quan hệ thống sở liệu CÁC CÂU TRUY VẤN CƠ BẢN TRONG SQL Ví dụ • Với dự án ‘TP Hồ Chí Minh’, liệt kê số hiệu dự án, số hiệu đơn vị quản lý dự án, tên, mức lương trưởng đơn vị quản lý dự án SELECT e.EName, s.EName FROM PROJECT p, DEPARTMENT d, EMPLOYEE e WHERE p.DNum = d.DNumber AND mgrSSN = ESSN AND Location = N'TP Hồ Chí Minh' Ths Trịnh Hồng Nam, namth@buh.edu.vn Cơ sở liệu – Tổng quan hệ thống sở liệu CÁC CÂU TRUY VẤN CƠ BẢN TRONG SQL SQL phép tốn tập hợp • Chỉ áp dụng trường hợp hai quan hệ khả hợp • Bao gồm phép hợp (UNION), phép giao (INTERSECT) phép trừ (EXCEPT) Ví dụ • Tìm nhân viên tham gia hai dự án số số SELECT e.EName FROM EMPLOYEE e, WORKSON w WHERE e.ESSN=w.ESSN AND w.PNum=1 AND w.PNum=2 Ths Trịnh Hoàng Nam, namth@buh.edu.vn Cơ sở liệu – Tổng quan hệ thống sở liệu CÁC CÂU TRUY VẤN CƠ BẢN TRONG SQL Ví dụ (tt) • Tìm nhân viên tham gia hai dự án số số SELECT e.EName FROM EMPLOYEE e, WORKSON w WHERE e.ESSN=w.ESSN AND w.PNum=1 INTERSECT SELECT e.EName FROM EMPLOYEE e, WORKSON w WHERE e.ESSN=w.ESSN AND w.PNum=2 Ths Trịnh Hoàng Nam, namth@buh.edu.vn 11/22/2018 Cơ sở liệu – Tổng quan hệ thống sở liệu CÁC CÂU TRUY VẤN CƠ BẢN TRONG SQL SQL phép tốn so sánh chuỗi • Tốn tử LIKE NOT LIKE • Ký tự đặc biệt _ % Ví dụ • Liệt kê nhân viên có tên Anh SELECT * FROM EMPLOYEE WHERE EName LIKE N‘%Anh’ Ths Trịnh Hoàng Nam, namth@buh.edu.vn Cơ sở liệu – Tổng quan hệ thống sở liệu CÁC CÂU TRUY VẤN CƠ BẢN TRONG SQL SQL phép xếp liệu • Sử dụng mệnh đề ORDER BY • Sắp xếp tăng dần (ASC), giảm dần (DESC) Ví dụ • Liệt kê nhân viên phòng số theo thứ tự giảm dần lương SELECT * FROM EMPLOYEE WHERE dNum = ORDER BY ESalary DESC Ths Trịnh Hoàng Nam, namth@buh.edu.vn Cơ sở liệu – Tổng quan hệ thống sở liệu CÁC CÂU TRUY VẤN PHỨC TẠP TRONG SQL SQL giá trị NULL • Null giá trị đặc biệt, số, mà giá trị khơng biết • Các phép tốn số học liên quan tới Null cho giá trị Null • Các phép toán so sánh liên quan tới Null cho giá trị Unknown • Phép tốn so sánh IS NULL IS NOT NULL Ví dụ • Liệt kê danh sách nhân viên khơng có lãnh đạo trực tiếp SELECT * FROM EMPLOYEE WHERE supervisorSSN IS NULL Ths Trịnh Hoàng Nam, namth@buh.edu.vn 11/22/2018 Cơ sở liệu – Tổng quan hệ thống sở liệu CÁC CÂU TRUY VẤN PHỨC TẠP TRONG SQL Truy vấn lồng SQL • Kết trả câu truy vấn sử dụng mệnh đề câu truy vấn khác • Kết trả câu truy vấn giá trị đơn quan hệ với nhiều bộ, nhiều thuộc tính • Một số tốn tử so sánh: IN, NOT IN, ANY, SOME, ALL Ths Trịnh Hoàng Nam, namth@buh.edu.vn Cơ sở liệu – Tổng quan hệ thống sở liệu CÁC CÂU TRUY VẤN PHỨC TẠP TRONG SQL Ví dụ 10 • Cho biết danh sách dự án có tham gia nhân viên tên ‘Lê Duy Anh’ SELECT p.* FROM PROJECT p, EMPLOYEE e, WORKSON w WHERE p.ProNum = w.PNum AND w.ESSN = e.ESSN AND e.EName = N’Lê Duy Anh’ ? Độ phức tạp truy vấn Ths Trịnh Hoàng Nam, namth@buh.edu.vn Cơ sở liệu – Tổng quan hệ thống sở liệu CÁC CÂU TRUY VẤN PHỨC TẠP TRONG SQL Ví dụ 10 (tt) • Cho biết danh sách dự án có tham gia nhân viên tên ‘Lê Duy Anh’ SELECT * FROM PROJECT WHERE PNumber IN (SELECT w.PNum FROM WORKSON w, EMPLOYEE e WHERE w.ESSN=e ESSN AND e.EName = N’Lê Duy Anh’) ? Độ phức tạp truy vấn Ths Trịnh Hoàng Nam, namth@buh.edu.vn 10 11/22/2018 Cơ sở liệu – Tổng quan hệ thống sở liệu CÁC CÂU TRUY VẤN PHỨC TẠP TRONG SQL Ví dụ 10 (tt) • Cho biết danh sách dự án có tham gia nhân viên tên ‘Lê Duy Anh’ SELECT * FROM PROJECT WHERE PNumber IN (SELECT w.PNum FROM WORKSON w WHERE w.ESSN IN (SELECT e.ESSN FROM EMPLOYEE e WHERE e.EName = N’…’) ) ? Độ phức tạp truy vấn Ths Trịnh Hoàng Nam, namth@buh.edu.vn Cơ sở liệu – Tổng quan hệ thống sở liệu CÁC CÂU TRUY VẤN PHỨC TẠP TRONG SQL Hàm EXISTS SQL • Được sử dụng để kiểm tra kết câu truy vấn lồng xem có rỗng hay khơng Ví dụ 11 • Cho biết tên nhân viên chưa tham gia dự án công ty SELECTEName FROM EMPLOYEE E WHERE NOT EXISTS (SELECT * FROM WOKRSON WHERE E.ESSN=ESSN) Ths Trịnh Hoàng Nam, namth@buh.edu.vn Cơ sở liệu – Tổng quan hệ thống sở liệu CÁC CÂU TRUY VẤN PHỨC TẠP TRONG SQL Hàm EXISTS SQL • Được sử dụng để kiểm tra kết câu truy vấn lồng xem có rỗng hay khơng • Có thể viết lại cách sử dụng tốn tử so sánh IN Ví dụ 11 • Cho biết tên nhân viên chưa tham gia dự án công ty SELECTEName FROM EMPLOYEE WHERE ESSN NOT IN (SELECT ESSN FROM WOKRSON) Ths Trịnh Hoàng Nam, namth@buh.edu.vn 11 11/22/2018 Cơ sở liệu – Tổng quan hệ thống sở liệu CÁC CÂU TRUY VẤN PHỨC TẠP TRONG SQL Tốn tử AS SQL • Được sử dụng để đổi tên cột hiển thị phần kết câu truy vấn mà không ảnh hưởng đến thân quan hệ mệnh đề WHERE câu truy vấn Ví dụ 12 SELECTE.EName AS ‘Tên nhân viên’, S.EName AS ‘Tên lãnh đạo trực tiếp’ FROM EMPLOYEE E, EMPLOYEE S WHERE E.supervisorSSN=S.ESSN Ths Trịnh Hoàng Nam, namth@buh.edu.vn Cơ sở liệu – Tổng quan hệ thống sở liệu CÁC CÂU TRUY VẤN PHỨC TẠP TRONG SQL Bảng kết SQL • Phép kết thể thông qua việc sử dụng nhiều quan hệ mệnh đề FROM điều kiện kết tương ứng mệnh đề WHERE • Phép kết thực mệnh đề FROM thông qua việc sử dụng toán tử INNER JOIN, OUTER JOIN kèm điều kiện kết tương ứng Ths Trịnh Hoàng Nam, namth@buh.edu.vn Cơ sở liệu – Tổng quan hệ thống sở liệu CÁC CÂU TRUY VẤN PHỨC TẠP TRONG SQL Ví dụ 13 • Hiển thị tên mức lương nhân viên phòng ‘Nghiên cứu’ • Sử dụng phép nhân chéo phép chọn: SELECTEName, ESalary FROM EMPLOYEE, DEPARTMENT WHERE DNum = DNumber AND DName=N’Phòng Nghiên cứu’ • Sử dụng bảng kết: SELECTEName, ESalary FROM EMPLOYEE JOIN DEPARTMENT ON DNum = DNumber WHERE DName=N’Phòng Nghiên cứu’ Ths Trịnh Hoàng Nam, namth@buh.edu.vn 12 11/22/2018 Cơ sở liệu – Tổng quan hệ thống sở liệu CÁC CÂU TRUY VẤN PHỨC TẠP TRONG SQL Ví dụ 13 (tt) SELECTEName, ESalary FROM EMPLOYEE, DEPARTMENT WHERE DNum = DNumber AND DName=N’Phòng Nghiên cứu’ SELECTEName, ESalary FROM EMPLOYEE JOIN DEPARTMENT ON DNum = DNumber WHERE DName=N’Phòng Nghiên cứu’ Ths Trịnh Hoàng Nam, namth@buh.edu.vn Cơ sở liệu – Tổng quan hệ thống sở liệu CÁC CÂU TRUY VẤN PHỨC TẠP TRONG SQL Ví dụ 14 • Với nhân viên hiển thị tên người tên lãnh đạo trực tiếp họ • Sử dụng phép nhân chéo phép chọn: SELECTe.EName as ‘Employee’, s.EName as ‘Supervisor’ FROM EMPLOYEE e, EMPLOYEE s WHERE e.supervisorSSN = s.ESSN • Sử dụng bảng kết: SELECT e.EName as ‘Employee’, s.EName as ‘Supervisor’ FROM EMPLOYEE e JOIN EMPLOYEE s ON e.supervisorSSN = s.ESSN Ths Trịnh Hoàng Nam, namth@buh.edu.vn Cơ sở liệu – Tổng quan hệ thống sở liệu CÁC CÂU TRUY VẤN PHỨC TẠP TRONG SQL Ví dụ 14 (tt) SELECTe.EName as ‘Employee’, s.EName as ‘Supervisor’ FROM EMPLOYEE e, EMPLOYEE s WHERE e.supervisorSSN = s.ESSN SELECT e.EName as ‘Employee’, s.EName as ‘Supervisor’ FROM EMPLOYEE e JOIN EMPLOYEE s ON e.supervisorSSN = s.ESSN Ths Trịnh Hoàng Nam, namth@buh.edu.vn 13 11/22/2018 Cơ sở liệu – Tổng quan hệ thống sở liệu CÁC CÂU TRUY VẤN PHỨC TẠP TRONG SQL Ví dụ 14 (tt) • Với nhân viên hiển thị tên người tên lãnh đạo trực tiếp họ • Tuy nhiên, bảng EMPLOYEE có tất 21 với 15 có giá trị khác NULL thuộc tính supervisor ứng với 15 trả câu truy vấn SELECT e.EName as ‘Employee’, s.EName as ‘Supervisor’ FROM EMPLOYEE e JOIN EMPLOYEE s ON e.supervisorSSN = s.ESSN • Làm để hiển thị hết đầy đủ 21 quan hệ EMPLOYEE theo yêu cầu đề bài? Ths Trịnh Hoàng Nam, namth@buh.edu.vn Cơ sở liệu – Tổng quan hệ thống sở liệu CÁC CÂU TRUY VẤN PHỨC TẠP TRONG SQL Ví dụ 14 (tt) • Với nhân viên hiển thị tên người tên lãnh đạo trực tiếp họ • Sử dụng bảng kết trong: SELECT e.EName as ‘Employee’, s.EName as ‘Supervisor’ FROM EMPLOYEE e JOIN EMPLOYEE s ON e.supervisorSSN = s.ESSN • Sử dụng bảng kết SELECT e.EName as ‘Employee’, s.EName as ‘Supervisor’ FROM EMPLOYEE e LEFT JOIN EMPLOYEE s ON e.supervisorSSN = s.ESSN Ths Trịnh Hoàng Nam, namth@buh.edu.vn Cơ sở liệu – Tổng quan hệ thống sở liệu CÁC CÂU TRUY VẤN PHỨC TẠP TRONG SQL Ví dụ 14 (tt) SELECT e.EName as ‘Employee’, s.EName as ‘Supervisor’ FROM EMPLOYEE e LEFT JOIN EMPLOYEE s ON e.supervisorSSN = s.ESSN Ths Trịnh Hoàng Nam, namth@buh.edu.vn 14 11/22/2018 Cơ sở liệu – Tổng quan hệ thống sở liệu CÁC CÂU TRUY VẤN PHỨC TẠP TRONG SQL Ví dụ 15 • Với dự án ‘TP Hồ Chí Minh’, liệt kê số hiệu dự án, số hiệu đơn vị quản lý dự án, tên, ngày sinh trưởng đơn vị quản lý dự án SELECT PNumber, DNumber, EName, EBirthdate FROM ((PROJECT JOIN DEPARTMENT ON dNum=DNumber) JOIN EMPLOYEE ON mgrSSN=ESSN) WHERE PLocation = N’TP Hồ Chí Minh’ Ths Trịnh Hồng Nam, namth@buh.edu.vn Cơ sở liệu – Tổng quan hệ thống sở liệu CÁC CÂU TRUY VẤN PHỨC TẠP TRONG SQL Tốn tử AS SQL • Các hàm số học thực theo nhóm • Các hàm MAX, MIN, AVG, SUM thực thuộc tính số học • Hàm COUNT thực nhiều thuộc tính Ví dụ 16 • Cho biết tổng lương, lương trung bình nhân viên công ty SELECTSUM(ESalary) AS ‘Tổng lương’, AVG(ESalary) AS ‘Lương trung bình’ FROM EMPLOYEE Ths Trịnh Hồng Nam, namth@buh.edu.vn Cơ sở liệu – Tổng quan hệ thống sở liệu CÁC CÂU TRUY VẤN PHỨC TẠP TRONG SQL Ví dụ 17 • Cho biết tổng lương, mức lương cao nhất, mức lương thấp nhất, nhân viên tham gia dự án có mã số SELECTSUM(E.ESalary), MAX(E.ESalary), MIN(E.ESalary) FROM (EMPLOYEE E JOIN WORKSON W ON E.ESSN=W.ESSN) WHERE W.PNUM = Ths Trịnh Hoàng Nam, namth@buh.edu.vn 15 11/22/2018 Cơ sở liệu – Tổng quan hệ thống sở liệu CÁC CÂU TRUY VẤN PHỨC TẠP TRONG SQL GROUP BY HAVING SQL • Gom quan hệ thành nhóm theo (số) thuộc tính • Các có giá trị (các) thuộc tính gom nhóm xếp gần • Điều kiện để chọn nhóm đặt mệnh đề HAVING • Các hàm kết hợp áp dụng cho nhóm sau gom Ths Trịnh Hoàng Nam, namth@buh.edu.vn Cơ sở liệu – Tổng quan hệ thống sở liệu CÁC CÂU TRUY VẤN PHỨC TẠP TRONG SQL Ví dụ 18 • Với phòng ban cho biết mã số phòng ban, số nhân viên thuộc quyền quản lý phịng ban đó, mức lương trung bình họ SELECT FROM GROUP BY DNum, COUNT(*), AVG(ESalary) EMPLOYEE DNum Ths Trịnh Hoàng Nam, namth@buh.edu.vn Cơ sở liệu – Tổng quan hệ thống sở liệu CÁC CÂU TRUY VẤN PHỨC TẠP TRONG SQL Ví dụ 19 • Với dự án, cho biết mã số dự án, tên dự án, số nhân viên tham gia dự án SELECT FROM WHERE GROUP BY p PNumber, p PName, COUNT(*) PROJECT p, WORKSON w p.PNumber = w.PNum p PNumber, p.PName Ths Trịnh Hoàng Nam, namth@buh.edu.vn 16 11/22/2018 Cơ sở liệu – Tổng quan hệ thống sở liệu CÁC CÂU TRUY VẤN PHỨC TẠP TRONG SQL Ví dụ 20 • Với dự án có nhiều hai nhân viên tham gia, cho biết mã số dự án, tên dự án, số nhân viên tham gia dự án SELECT FROM WHERE GROUP BY HAVING p.PNumber, p.PName, COUNT(*) PROJECT p, WORKSON w p.PNumber = w.PNum p.PNumber, p.PName COUNT(*) > Ths Trịnh Hoàng Nam, namth@buh.edu.vn Cơ sở liệu – Tổng quan hệ thống sở liệu CÁC CÂU TRUY VẤN PHỨC TẠP TRONG SQL Công thức chung câu truy vấn SQL SELECT FROM [WHERE [GROUP BY [HAVING [ORDER BY ] ] ] ] Ths Trịnh Hồng Nam, namth@buh.edu.vn Cơ sở liệu – Tổng quan hệ thống sở liệu CÁC LỆNH CẬP NHẬT TRONG SQL Lệnh INSERT • Thêm (số) liệu vào quan hệ • Bộ liệu với giá trị liệt kê trình tự với thuộc tính tương ứng xác định câu lệnh tạo quan hệ • Bắt buộc phải cung cấp giá trị thuộc tính khai báo khác NULL khơng có giá trị mặc định Ths Trịnh Hồng Nam, namth@buh.edu.vn 17 11/22/2018 Cơ sở liệu – Tổng quan hệ thống sở liệu CÁC LỆNH CẬP NHẬT TRONG SQL Ví dụ 21 • Thêm liệu vào quan hệ EMPLOYEE INSERT INTO EMPLOYEE VALUES (‘30121050004’,N’Mai Duy An’, 30000, ‘F’, ’17/02/1968’, ‘30121050037’, 1, ‘15/06/2010’) INSERT INTO EMPLOYEE (ESSN, EName, DNum) VALUES (‘30121050004’, N‘Mai Duy An’,1) Ths Trịnh Hoàng Nam, namth@buh.edu.vn Cơ sở liệu – Tổng quan hệ thống sở liệu CÁC LỆNH CẬP NHẬT TRONG SQL Lệnh DELETE • Xóa (số) thỏa mãn điều kiện xác định mệnh đề WHERE khỏi quan hệ • Xóa tất khỏi quan hệ khơng có mệnh đề WHERE câu lệnh Ví dụ 21 • Câu lệnh sau xóa thân nhân nhân viên có mã số ‘30121050180’ DELETE FROM DEPENDENT WHERE ESSN = ‘30121050180’ Ths Trịnh Hoàng Nam, namth@buh.edu.vn Cơ sở liệu – Tổng quan hệ thống sở liệu CÁC LỆNH CẬP NHẬT TRONG SQL Lệnh DELETE • Xóa (số) thỏa mãn điều kiện xác định mệnh đề WHERE khỏi quan hệ • Xóa tất khỏi quan hệ khơng có mệnh đề WHERE câu lệnh Ví dụ 22 • Câu lệnh sau xóa tất thân nhân nhân viên phịng có mã số DELETE FROM DEPENDENT WHERE ESSN IN (SELECT ESSN FROM EMPLOYEE WHERE DNum=1) Ths Trịnh Hoàng Nam, namth@buh.edu.vn 18 11/22/2018 Cơ sở liệu – Tổng quan hệ thống sở liệu CÁC LỆNH CẬP NHẬT TRONG SQL Lệnh UPDATE • Thay đổi giá trị (số) thuộc tính (số) thỏa mãn điều kiện xác định mệnh đề WHERE • Thay đổi tất quan hệ khơng có mệnh đề WHERE câu lệnh Ví dụ 23 • Thay đổi địa điểm đơn vị quản lý dự án có mã số 10 với giá trị ‘Hà Nội’ UPDATE SET WHERE PROJECT PLocation = N’Hà Nội’, DNum=5 PNumber = 10 Ths Trịnh Hoàng Nam, namth@buh.edu.vn Cơ sở liệu – Tổng quan hệ thống sở liệu CÁC LỆNH CẬP NHẬT TRONG SQL Lệnh UPDATE • Thay đổi giá trị (số) thuộc tính (số) thỏa mãn điều kiện xác định mệnh đề WHERE • Thay đổi tất quan hệ khơng có mệnh đề WHERE câu lệnh Ví dụ 23 • Tăng lương cho nhân viên phòng Nghiên cứu lên 10% lương UPDATEEMPLOYEE SET ESalary = ESalary *1.1 WHERE DNum IN (SELECT DNumber FROM DEPARTMENT WHERE DName = N’Phịng Nghiên cứu’) Ths Trịnh Hồng Nam, namth@buh.edu.vn Cơ sở liệu – Tổng quan hệ thống sở liệu BÀI TẬP TỔNG HỢP Cơ sở liệu • • • • Hotel(hotelNo, hotelName, city) Room(roomNo, hotelNo, type, price) Booking(hotelNo, guestNo, dateFrom, dateTo, roomNo) Guest(guestNo, guestName, guestAddress) Yêu cầu • • • • Liệt kê danh sách tất khách sạn hệ thống Liệt kê danh sách phịng đơn có giá từ 300.000 đến 450.000 Liệt kê số lượng phòng đơn khách sạn Liệt kê giá loại phòng phòng trống khách sạn Yasaka khoảng thời gian từ 01/09/2011 đến 08/09/2011 Ths Trịnh Hoàng Nam, namth@buh.edu.vn 19 11/22/2018 Cơ sở liệu – Tổng quan hệ thống sở liệu BÀI TẬP TỔNG HỢP Cơ sở liệu mẫu • • • • Product(maker, model, type) PC(model, speed, ram, hd, price) Laptop(model, speed, ram, hd, screen, price) Printer(model, color, type, price) Các yêu cầu truy vấn • Liệt kê máy tính xách tay có RAM từ 2.0GB trở lên • Liệt kê máy in laser trắng đen • Liệt kê nhà cung cấp máy tính để bàn có ổ cứng 160GB Ths Trịnh Hồng Nam, namth@buh.edu.vn Cơ sở liệu – Tổng quan hệ thống sở liệu BÀI TẬP TỔNG HỢP Cơ sở liệu mẫu • • • • Product(maker, model, type) PC(model, speed, ram, hd, price) Laptop(model, speed, ram, hd, screen, price) Printer(model, color, type, price) Các yêu cầu truy vấn • Liệt kê sản phẩm (mã sản xuất, giá) cơng ty SS sản xuất • Liệt kê cơng ty sản xuất máy tính để bàn khơng sản xuất máy tính xách tay • Liệt kê cặp máy tính để bàn có tốc độ xử lý kích thước ổ cứng Ths Trịnh Hồng Nam, namth@buh.edu.vn Cơ sở liệu – Tổng quan hệ thống sở liệu BÀI TẬP TỔNG HỢP Cơ sở liệu mẫu • • • • Product(maker, model, type) PC(model, speed, ram, hd, price) Laptop(model, speed, ram, hd, screen, price) Printer(model, color, type, price) Các yêu cầu truy vấn • Liệt kê cơng ty sản xuất máy tính, khơng sản xuất máy tính có tốc độ 1.6GHz • Liệt kê cơng ty sản xuất ba sản phẩm máy tính để bàn có tốc độ xử lý khác • Liệt kê máy để bàn có tốc độ xử lý nhanh Ths Trịnh Hoàng Nam, namth@buh.edu.vn 20 11/22/2018 Cơ sở liệu – Tổng quan hệ thống sở liệu BÀI TẬP TỔNG HỢP DEPENDENT PROJECT EMPLOYEE DEPARTMENT DName PNumber ESSN DNumber ESSN PName EName DName DSex PLocation ESalary mgrSSN DBirthdate DNum ESex mgrStartdate EBirthdate DRelationship EStartdate WORKSON ESSN DNum supervisorSSN PNum DEPLOCATION DNum DLocation workHours Liệt kê tất Liệt kê tất Liệt kê tất Liệt kê tất nhân nhân nhân nhân viên nữ cơng ty viên nữ có mức lương 30.000 viên nữ độ tuổi từ 25 đến 40 viên nữ vừa tuyển dụng năm Ths Trịnh Hoàng Nam, namth@buh.edu.vn Cơ sở liệu – Tổng quan hệ thống sở liệu BÀI TẬP TỔNG HỢP DEPENDENT PROJECT EMPLOYEE DEPARTMENT DName PNumber ESSN DNumber ESSN PName EName DName DSex PLocation ESalary mgrSSN DBirthdate DNum ESex mgrStartdate EBirthdate DRelationship EStartdate WORKSON ESSN DNum supervisorSSN PNum DEPLOCATION DNum DLocation workHours Liệt kê tên, tuổi nhân viên có từ năm kinh nghiệm trở lên Liệt kê tên, số năm công tác nhân viên có mức lương 45.000 Ths Trịnh Hoàng Nam, namth@buh.edu.vn Cơ sở liệu – Tổng quan hệ thống sở liệu BÀI TẬP TỔNG HỢP DEPENDENT PROJECT EMPLOYEE DEPARTMENT DName PNumber ESSN DNumber ESSN PName EName DName DSex PLocation ESalary mgrSSN DBirthdate DNum ESex mgrStartdate EBirthdate DRelationship EStartdate WORKSON ESSN PNum DNum supervisorSSN DEPLOCATION DNum DLocation workHours Liệt kê nhân viên tham gia dự án với nhân viên có mã số 001 Liệt kê nhân viên chưa tham gia dự án đơn vị số quản lý Ths Trịnh Hoàng Nam, namth@buh.edu.vn 21 11/22/2018 Cơ sở liệu – Tổng quan hệ thống sở liệu BÀI TẬP TỔNG HỢP DEPENDENT PROJECT EMPLOYEE DEPARTMENT DName PNumber ESSN DNumber ESSN PName EName DName DSex PLocation ESalary mgrSSN DBirthdate DNum ESex mgrStartdate EBirthdate DRelationship EStartdate WORKSON ESSN DNum supervisorSSN PNum DEPLOCATION DNum DLocation workHours Liệt kê dự án khơng có nhân viên phịng số tham gia Liệt kê nhân viên đơn vị với nhân viên mã số 001 chưa tham gia dự án với người Ths Trịnh Hoàng Nam, namth@buh.edu.vn Cơ sở liệu – Tổng quan hệ thống sở liệu BÀI TẬP TỔNG HỢP DEPENDENT PROJECT EMPLOYEE DEPARTMENT DName PNumber ESSN DNumber ESSN PName EName DName DSex PLocation ESalary mgrSSN DBirthdate DNum ESex mgrStartdate EBirthdate DRelationship EStartdate WORKSON ESSN DNum supervisorSSN PNum DEPLOCATION DNum DLocation workHours Liệt kê tên, tuổi, mức lương nhân viên phòng Kinh doanh Liệt kê dự án phòng Kinh doanh quản lý Liệt kê tên, tuổi nhân viên tham gia dự án phòng Kinh doanh quản lý Ths Trịnh Hoàng Nam, namth@buh.edu.vn Cơ sở liệu – Tổng quan hệ thống sở liệu BÀI TẬP TỔNG HỢP DEPENDENT PROJECT EMPLOYEE DEPARTMENT DName PNumber ESSN DNumber ESSN PName EName DName DSex PLocation ESalary mgrSSN DBirthdate DNum ESex mgrStartdate EBirthdate DRelationship EStartdate WORKSON ESSN PNum DNum supervisorSSN DEPLOCATION DNum DLocation workHours Liệt kê tên, tuổi, mức lương, đơn vị công tác trưởng đơn vị Liệt kê tên, tuổi, mức lương nhân viên phòng Kinh doanh chưa tham gia dự án phòng quản lý Ths Trịnh Hoàng Nam, namth@buh.edu.vn 22 11/22/2018 Cơ sở liệu – Tổng quan hệ thống sở liệu BÀI TẬP TỔNG HỢP DEPENDENT PROJECT EMPLOYEE DEPARTMENT DName PNumber ESSN DNumber ESSN PName EName DName DSex PLocation ESalary mgrSSN DBirthdate DNum ESex mgrStartdate EBirthdate DRelationship EStartdate WORKSON ESSN DNum supervisorSSN PNum DEPLOCATION DNum DLocation workHours Cho biết tên đơn vị, tên dự án đơn vị quản lý (nếu có) Cho biết tên đơn vị, tên trưởng đơn vị, tên dự án đơn vị quản lý (nếu có) Ths Trịnh Hồng Nam, namth@buh.edu.vn Cơ sở liệu – Tổng quan hệ thống sở liệu BÀI TẬP TỔNG HỢP DEPENDENT PROJECT EMPLOYEE DEPARTMENT DName PNumber ESSN DNumber ESSN PName EName DName DSex PLocation ESalary mgrSSN DBirthdate DNum ESex mgrStartdate EBirthdate DRelationship EStartdate WORKSON ESSN PNum DNum supervisorSSN DEPLOCATION DNum DLocation workHours Cho biết tên, mã số mức lương trung bình đơn vị Cho biết tên, mã số số tham gia dự án nhân viên Ths Trịnh Hoàng Nam, namth@buh.edu.vn 23 ... Ths Trịnh Hoàng Nam, namth@buh.edu.vn 11/22/2018 Cơ sở liệu – Tổng quan hệ thống sở liệu ĐỊNH NGHĨA DỮ LIỆU & CÁC KIỂU DỮ LIỆU Ví dụ lệnh tạo bảng liệu Ths Trịnh Hoàng Nam, namth@buh.edu.vn Cơ sở. .. DEPARTMENT WHERE DName = N’Phòng Nghiên cứu’) Ths Trịnh Hoàng Nam, namth@buh.edu.vn Cơ sở liệu – Tổng quan hệ thống sở liệu BÀI TẬP TỔNG HỢP Cơ sở liệu • • • • Hotel(hotelNo, hotelName, city) Room(roomNo,... Ths Trịnh Hoàng Nam, namth@buh.edu.vn 20 11/22/2018 Cơ sở liệu – Tổng quan hệ thống sở liệu BÀI TẬP TỔNG HỢP DEPENDENT PROJECT EMPLOYEE DEPARTMENT DName PNumber ESSN DNumber ESSN PName EName DName