Bài giảng Cơ sở dữ liệu: SQL nâng cao - ThS. Trịnh Hoàng Nam
Số trang: 9
Loại file: pdf
Dung lượng: 444.36 KB
Lượt xem: 2
Lượt tải: 0
Xem trước 2 trang đầu tiên của tài liệu này:
Thông tin tài liệu:
Bài giảng Cơ sở dữ liệu: SQL nâng cao trình bày những nội dung chính sau: Giá trị null, toán tử AS, truy vấn lồng, bảng kết trong SQL, bảng kết, các hàm thống kê trong SQL, mệnh đề gom nhóm. Mời các bạn cùng tham khảo.
Nội dung trích xuất từ tài liệu:
Bài giảng Cơ sở dữ liệu: SQL nâng cao - ThS. Trịnh Hoàng Nam9/5/2016CƠ SỞ DỮ LIỆUSQL NÂNG CAOCơ sở dữ liệu – Tổng quan hệ thống cơ sở dữ liệuGIÁ TRỊ NULLĐịnh nghĩa• Null là giá trị đặc biệt, không phải là hằng số, mà là giá trị khôngbiếtĐặc trưng• Các phép toán số học liên quan tới Null cho giá trị là Null• Các phép toán so sánh liên quan tới Null cho giá trị là Unknown• Phép toán so sánh IS NULL và IS NOT NULLVí dụ• Liệt kê danh sách nhân viên không có lãnh đạo trực tiếpSELECT *FROMEMPLOYEEWHERE supervisorSSN IS NULLThs. Trịnh Hoàng Nam, namth@buh.edu.vnCơ sở dữ liệu – Tổng quan hệ thống cơ sở dữ liệuTOÁN TỬ ASToán tử AS trong SQL• Được sử dụng để đổi tên cột hiển thị trong phần kếtquả của câu truy vấn mà không ảnh hưởng đến bảnthân các quan hệ trong mệnh đề WHERE của câutruy vấn đóVí dụ• Liệt kê danh sách nhân viên và tên lãnh đạo trực tiếpSELECT E.EName AS ‘Tên nhân viên’,S.EName AS ‘Tên lãnh đạo trực tiếp’FROM EMPLOYEE E, EMPLOYEE SWHERE E.supervisorSSN=S.ESSNThs. Trịnh Hoàng Nam, namth@buh.edu.vn19/5/2016Cơ sở dữ liệu – Tổng quan hệ thống cơ sở dữ liệuTRUY VẤN LỒNGĐịnh nghĩa• Câu lệnh truy vấn chứa câu lệnh truy vấn khác bêntrong các thành phần của nóĐặc trưng• Kết quả trả về của câu truy vấn này được sử dụngtrong một mệnh đề của câu truy vấn khác• Kết quả trả về của một câu truy vấn có thể là một giátrị đơn hoặc một quan hệ với nhiều bộ, nhiều thuộctính• Một số toán tử so sánh: IN, NOT IN, ANY, SOME, ALLThs. Trịnh Hoàng Nam, namth@buh.edu.vnCơ sở dữ liệu – Tổng quan hệ thống cơ sở dữ liệuTRUY VẤN LỒNGVí dụ• Cho biết danh sách các dự án có sự tham gia củanhân viên tên là ‘Lê Duy Anh’SELECTp.*FROMPROJECT p, EMPLOYEE e, WORKSON wWHEREp.ProNum = w.PNum AND w.ESSN = e.ESSNAND e.EName = N’Lê Duy Anh’?Độ phức tạp của truy vấnThs. Trịnh Hoàng Nam, namth@buh.edu.vnCơ sở dữ liệu – Tổng quan hệ thống cơ sở dữ liệuTRUY VẤN LỒNGVí dụ• Cho biết danh sách các dự án có sự tham gia củanhân viên tên là ‘Lê Duy Anh’SELECT *FROM PROJECTWHERE PNumber IN (SELECT w.PNumFROMWORKSON w, EMPLOYEE eWHERE w.ESSN=e. ESSNAND e.EName = N’Lê Duy Anh’)?Độ phức tạp của truy vấnThs. Trịnh Hoàng Nam, namth@buh.edu.vn29/5/2016Cơ sở dữ liệu – Tổng quan hệ thống cơ sở dữ liệuTRUY VẤN LỒNGVí dụ• Cho biết danh sách các dự án có sự tham gia củanhân viên tên là ‘Lê Duy Anh’SELECT *FROM PROJECTWHERE PNumber IN (SELECT w.PNumFROMWORKSON wWHERE w.ESSN IN (SELECT e.ESSNFROMEMPLOYEE eWHERE e.EName = N’…’))?Độ phức tạp của truy vấnThs. Trịnh Hoàng Nam, namth@buh.edu.vnCơ sở dữ liệu – Tổng quan hệ thống cơ sở dữ liệuTRUY VẤN LỒNGHàm EXISTS trong SQL• Được sử dụng để kiểm tra kết quả của câu truy vấn lồngxem có rỗng hay khôngVí dụ• Cho biết tên các nhân viên chưa tham gia bất kỳ dự án nàocủa công tySELECT ENameFROM EMPLOYEE EWHERE NOT EXISTS (SELECT *FROM WOKRSONWHERE E.ESSN=ESSN)Ths. Trịnh Hoàng Nam, namth@buh.edu.vnCơ sở dữ liệu – Tổng quan hệ thống cơ sở dữ liệuTRUY VẤN LỒNGHàm EXISTS trong SQL• Được sử dụng để kiểm tra kết quả của câu truy vấn lồng xemcó rỗng hay không• Có thể được viết lại bằng cách sử dụng toán tử so sánh INVí dụ• Cho biết tên các nhân viên chưa tham gia bất kỳ dự án nàocủa công tySELECT ENameFROM EMPLOYEEWHERE ESSN NOT IN (SELECT ESSNFROM WOKRSON)Ths. Trịnh Hoàng Nam, namth@buh.edu.vn39/5/2016Cơ sở dữ liệu – Tổng quan hệ thống cơ sở dữ liệuBẢNG KẾT TRONG SQLGiới thiệu• Phép kết thể hiện thông qua việc sử dụngnhiều quan hệ trong mệnh đề FROM và cácđiều kiện kết tương ứng trong mệnh đềWHERE• Phép kết được thực hiện ngay trong mệnhđề FROM thông qua việc sử dụng các toántử INNER JOIN, OUTER JOIN đi kèm điềukiện kết tương ứngThs. Trịnh Hoàng Nam, namth@buh.edu.vnCơ sở dữ liệu – Tổng quan hệ thống cơ sở dữ liệuBẢNG KẾTVí dụ• Hiển thị tên và mức lương của các nhân viên trongphòng ‘Nghiên cứu’• Sử dụng phép nhân chéo và phép chọn:SELECT EName, ESalaryFROM EMPLOYEE, DEPARTMENTWHERE DNum = DNumber AND DName=N’Phòng Nghiên cứu’• Sử dụng bảng kết:SELECT EName, ESalaryFROM EMPLOYEE JOIN DEPARTMENT ON DNum = DNumberWHERE DName=N’Phòng Nghiên cứu’Ths. Trịnh Hoàng Nam, namth@buh.edu.vnCơ sở dữ liệu – Tổng quan hệ thống cơ sở dữ liệuBẢNG KẾTVí dụSELECT EName, ESalaryFROM EMPLOYEE, DEPARTMENTWHERE DNum = DNumberAND DName=N’Phòng Nghiên cứu’SELECT EName, ESalaryFROM EMPLOYEE JOIN DEPARTMENTON DNum = DNumberWHERE DName=N’Phòng Nghiên cứu’Ths. Trịnh Hoàng Nam, namth@buh.edu.vn49/5/2016Cơ sở dữ liệu – Tổng quan hệ thống cơ sở dữ liệuBẢNG KẾTVí dụ• Với mỗi nhân viên hãy hiển thị tên của người đó vàtên của lãnh đạo trực tiếp của họ• Sử dụng phép nhân chéo và phép chọn:SELECT e.EName as ‘Employee’, s.EName as ‘Supervisor’FROM EMPLOYEE e, EMPLOYEE sWHERE 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 sON e.supervisorSSN = s.ESSNThs. Trịnh Hoàng Nam, namth@buh.edu.vnCơ sở dữ liệu – Tổng quan hệ thống cơ sở dữ liệuBẢNG KẾTVí dụSELECT e.EName as ‘Employee’,s.EName as ‘Supervisor’FROM EMPLOYEE e, EMPLOYEE sWHERE e.supervisorSSN = s.ESSNSELECT e.EName as ‘Employee’,s.EName as ‘Supervisor’FROM EMPLOYEE e JOIN EMPLOYEE sON e.supervisorSSN = s.ESSNThs. Trịnh Hoàng Nam, namth@buh.edu.vnCơ sở dữ liệu – Tổng quan hệ thống cơ sở dữ liệuBẢNG KẾTVí dụ• Với mỗi nhân viên hãy hiển thị tên của người đó vàtên của lãnh đạo trực tiếp của họ• Tuy nhiên, trong bảng EMPLOYEE có tất cả 21 bộ với15 bộ có giá trị khác NULL tại thuộc tính supervisorứng với 15 bộ trả về bởi câu truy vấnSELECT e.EName as ‘Employee’,s.EName as ‘Supervisor’FROM EMPLOYEE e JOIN EMPLOYEE sON e.supervisorSSN = s.ESSN• Làm thế nào để hiển thị hết đầy đủ 21 bộ của quan hệEMPLOYEE theo yêu cầu đề bài?Ths. Trịnh Hoàng Nam, namth@buh.edu.vn5 ...
Nội dung trích xuất từ tài liệu:
Bài giảng Cơ sở dữ liệu: SQL nâng cao - ThS. Trịnh Hoàng Nam9/5/2016CƠ SỞ DỮ LIỆUSQL NÂNG CAOCơ sở dữ liệu – Tổng quan hệ thống cơ sở dữ liệuGIÁ TRỊ NULLĐịnh nghĩa• Null là giá trị đặc biệt, không phải là hằng số, mà là giá trị khôngbiếtĐặc trưng• Các phép toán số học liên quan tới Null cho giá trị là Null• Các phép toán so sánh liên quan tới Null cho giá trị là Unknown• Phép toán so sánh IS NULL và IS NOT NULLVí dụ• Liệt kê danh sách nhân viên không có lãnh đạo trực tiếpSELECT *FROMEMPLOYEEWHERE supervisorSSN IS NULLThs. Trịnh Hoàng Nam, namth@buh.edu.vnCơ sở dữ liệu – Tổng quan hệ thống cơ sở dữ liệuTOÁN TỬ ASToán tử AS trong SQL• Được sử dụng để đổi tên cột hiển thị trong phần kếtquả của câu truy vấn mà không ảnh hưởng đến bảnthân các quan hệ trong mệnh đề WHERE của câutruy vấn đóVí dụ• Liệt kê danh sách nhân viên và tên lãnh đạo trực tiếpSELECT E.EName AS ‘Tên nhân viên’,S.EName AS ‘Tên lãnh đạo trực tiếp’FROM EMPLOYEE E, EMPLOYEE SWHERE E.supervisorSSN=S.ESSNThs. Trịnh Hoàng Nam, namth@buh.edu.vn19/5/2016Cơ sở dữ liệu – Tổng quan hệ thống cơ sở dữ liệuTRUY VẤN LỒNGĐịnh nghĩa• Câu lệnh truy vấn chứa câu lệnh truy vấn khác bêntrong các thành phần của nóĐặc trưng• Kết quả trả về của câu truy vấn này được sử dụngtrong một mệnh đề của câu truy vấn khác• Kết quả trả về của một câu truy vấn có thể là một giátrị đơn hoặc một quan hệ với nhiều bộ, nhiều thuộctính• Một số toán tử so sánh: IN, NOT IN, ANY, SOME, ALLThs. Trịnh Hoàng Nam, namth@buh.edu.vnCơ sở dữ liệu – Tổng quan hệ thống cơ sở dữ liệuTRUY VẤN LỒNGVí dụ• Cho biết danh sách các dự án có sự tham gia củanhân viên tên là ‘Lê Duy Anh’SELECTp.*FROMPROJECT p, EMPLOYEE e, WORKSON wWHEREp.ProNum = w.PNum AND w.ESSN = e.ESSNAND e.EName = N’Lê Duy Anh’?Độ phức tạp của truy vấnThs. Trịnh Hoàng Nam, namth@buh.edu.vnCơ sở dữ liệu – Tổng quan hệ thống cơ sở dữ liệuTRUY VẤN LỒNGVí dụ• Cho biết danh sách các dự án có sự tham gia củanhân viên tên là ‘Lê Duy Anh’SELECT *FROM PROJECTWHERE PNumber IN (SELECT w.PNumFROMWORKSON w, EMPLOYEE eWHERE w.ESSN=e. ESSNAND e.EName = N’Lê Duy Anh’)?Độ phức tạp của truy vấnThs. Trịnh Hoàng Nam, namth@buh.edu.vn29/5/2016Cơ sở dữ liệu – Tổng quan hệ thống cơ sở dữ liệuTRUY VẤN LỒNGVí dụ• Cho biết danh sách các dự án có sự tham gia củanhân viên tên là ‘Lê Duy Anh’SELECT *FROM PROJECTWHERE PNumber IN (SELECT w.PNumFROMWORKSON wWHERE w.ESSN IN (SELECT e.ESSNFROMEMPLOYEE eWHERE e.EName = N’…’))?Độ phức tạp của truy vấnThs. Trịnh Hoàng Nam, namth@buh.edu.vnCơ sở dữ liệu – Tổng quan hệ thống cơ sở dữ liệuTRUY VẤN LỒNGHàm EXISTS trong SQL• Được sử dụng để kiểm tra kết quả của câu truy vấn lồngxem có rỗng hay khôngVí dụ• Cho biết tên các nhân viên chưa tham gia bất kỳ dự án nàocủa công tySELECT ENameFROM EMPLOYEE EWHERE NOT EXISTS (SELECT *FROM WOKRSONWHERE E.ESSN=ESSN)Ths. Trịnh Hoàng Nam, namth@buh.edu.vnCơ sở dữ liệu – Tổng quan hệ thống cơ sở dữ liệuTRUY VẤN LỒNGHàm EXISTS trong SQL• Được sử dụng để kiểm tra kết quả của câu truy vấn lồng xemcó rỗng hay không• Có thể được viết lại bằng cách sử dụng toán tử so sánh INVí dụ• Cho biết tên các nhân viên chưa tham gia bất kỳ dự án nàocủa công tySELECT ENameFROM EMPLOYEEWHERE ESSN NOT IN (SELECT ESSNFROM WOKRSON)Ths. Trịnh Hoàng Nam, namth@buh.edu.vn39/5/2016Cơ sở dữ liệu – Tổng quan hệ thống cơ sở dữ liệuBẢNG KẾT TRONG SQLGiới thiệu• Phép kết thể hiện thông qua việc sử dụngnhiều quan hệ trong mệnh đề FROM và cácđiều kiện kết tương ứng trong mệnh đềWHERE• Phép kết được thực hiện ngay trong mệnhđề FROM thông qua việc sử dụng các toántử INNER JOIN, OUTER JOIN đi kèm điềukiện kết tương ứngThs. Trịnh Hoàng Nam, namth@buh.edu.vnCơ sở dữ liệu – Tổng quan hệ thống cơ sở dữ liệuBẢNG KẾTVí dụ• Hiển thị tên và mức lương của các nhân viên trongphòng ‘Nghiên cứu’• Sử dụng phép nhân chéo và phép chọn:SELECT EName, ESalaryFROM EMPLOYEE, DEPARTMENTWHERE DNum = DNumber AND DName=N’Phòng Nghiên cứu’• Sử dụng bảng kết:SELECT EName, ESalaryFROM EMPLOYEE JOIN DEPARTMENT ON DNum = DNumberWHERE DName=N’Phòng Nghiên cứu’Ths. Trịnh Hoàng Nam, namth@buh.edu.vnCơ sở dữ liệu – Tổng quan hệ thống cơ sở dữ liệuBẢNG KẾTVí dụSELECT EName, ESalaryFROM EMPLOYEE, DEPARTMENTWHERE DNum = DNumberAND DName=N’Phòng Nghiên cứu’SELECT EName, ESalaryFROM EMPLOYEE JOIN DEPARTMENTON DNum = DNumberWHERE DName=N’Phòng Nghiên cứu’Ths. Trịnh Hoàng Nam, namth@buh.edu.vn49/5/2016Cơ sở dữ liệu – Tổng quan hệ thống cơ sở dữ liệuBẢNG KẾTVí dụ• Với mỗi nhân viên hãy hiển thị tên của người đó vàtên của lãnh đạo trực tiếp của họ• Sử dụng phép nhân chéo và phép chọn:SELECT e.EName as ‘Employee’, s.EName as ‘Supervisor’FROM EMPLOYEE e, EMPLOYEE sWHERE 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 sON e.supervisorSSN = s.ESSNThs. Trịnh Hoàng Nam, namth@buh.edu.vnCơ sở dữ liệu – Tổng quan hệ thống cơ sở dữ liệuBẢNG KẾTVí dụSELECT e.EName as ‘Employee’,s.EName as ‘Supervisor’FROM EMPLOYEE e, EMPLOYEE sWHERE e.supervisorSSN = s.ESSNSELECT e.EName as ‘Employee’,s.EName as ‘Supervisor’FROM EMPLOYEE e JOIN EMPLOYEE sON e.supervisorSSN = s.ESSNThs. Trịnh Hoàng Nam, namth@buh.edu.vnCơ sở dữ liệu – Tổng quan hệ thống cơ sở dữ liệuBẢNG KẾTVí dụ• Với mỗi nhân viên hãy hiển thị tên của người đó vàtên của lãnh đạo trực tiếp của họ• Tuy nhiên, trong bảng EMPLOYEE có tất cả 21 bộ với15 bộ có giá trị khác NULL tại thuộc tính supervisorứng với 15 bộ trả về bởi câu truy vấnSELECT e.EName as ‘Employee’,s.EName as ‘Supervisor’FROM EMPLOYEE e JOIN EMPLOYEE sON e.supervisorSSN = s.ESSN• Làm thế nào để hiển thị hết đầy đủ 21 bộ của quan hệEMPLOYEE theo yêu cầu đề bài?Ths. Trịnh Hoàng Nam, namth@buh.edu.vn5 ...
Tìm kiếm theo từ khóa liên quan:
Cơ sở dữ liệu Bài giảng Cơ sở dữ liệu Hệ thống cơ sở dữ liệu SQL nâng cao Giá trị null Toán tử ASGợi ý tài liệu liên quan:
-
62 trang 401 3 0
-
Đề thi kết thúc học phần học kì 2 môn Cơ sở dữ liệu năm 2019-2020 có đáp án - Trường ĐH Đồng Tháp
5 trang 376 6 0 -
Giáo trình Cơ sở dữ liệu: Phần 2 - TS. Nguyễn Hoàng Sơn
158 trang 288 0 0 -
13 trang 288 0 0
-
Phân tích thiết kế hệ thống - Biểu đồ trạng thái
20 trang 281 0 0 -
Tài liệu học tập Tin học văn phòng: Phần 2 - Vũ Thu Uyên
85 trang 253 1 0 -
Đề cương chi tiết học phần Quản trị cơ sở dữ liệu (Database Management Systems - DBMS)
14 trang 242 0 0 -
8 trang 186 0 0
-
Giáo trình về dữ liệu và các mô hình cơ sở dữ liệu
62 trang 180 0 0 -
Giáo trình Cơ sở dữ liệu: Phần 2 - Đại học Kinh tế TP. HCM
115 trang 175 0 0