Bài giảng Cơ sở dữ liệu quan hệ và SQL: Chương 5 - CĐ CNTT Hữu nghị Việt Hàn
Số trang: 28
Loại file: pdf
Dung lượng: 353.04 KB
Lượt xem: 18
Lượt tải: 0
Xem trước 3 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 quan hệ và SQL: Chương 5 truy vấn con giúp bạn nắm vững kiến thức và thực hành thành thạo các lênh truy vấn trong môi trường cơ sở dữ liệu SQL.
Nội dung trích xuất từ tài liệu:
Bài giảng Cơ sở dữ liệu quan hệ và SQL: Chương 5 - CĐ CNTT Hữu nghị Việt HànChương 5 TRUY VẤN CON - Lý thuyết: 3 tiết - Thực hành: 2 tiết Chương 5. Truy vấn con 5-1 Truy vấn con5.1 Định nghĩa5.2 Truy vấn con hàng đơn5.3 Truy vấn con nhiều hàng5.4 Truy vấn con trên nhiều cột5.5 Truy vấn con tương quan5.6 Truy vấn con phân cấp Chương 5. Truy vấn con 5-2 Truy vấn con5.1 Định nghĩa câu lệnh SELECT được lồng vào trong một mệnh đềcủa câu lệnh khác. SELECT select_list FROM table WHERE expr operator (SELECT sel_list FROM table); Chương 5. Truy vấn con 5-3 Truy vấn con5.1 Định nghĩa Mục đích Cung cấp giá trị cho WHERE, HAVING và START WITH Định nghĩa một tập hợp các hàng để chèn vào bảng trong câu lệnh INSERT hay CREATE TABLE. Định nghĩa một hay nhiều giá trị để gán cho một hàng đã tồn tại trong câu lệnh UPDATE. Chương 5. Truy vấn con 5-4 Truy vấn con5.1 Định nghĩa Một số quy tắc trong cặp dấu ngoặc đơn (). bên phải điều kiện so sánh. Mệnh đề ORDER BY trong câu lệnh truy vấn con là không cần thiết trừ khi chúng ta thực hiện phân tích top-n. Sử dụng các phép toán. Chương 5. Truy vấn con 5-5 Truy vấn con5.1 Định nghĩa Trong mệnh đề WHEREVí dụ Tìm những nhân viên làm cùng công việc với BLAKE SELECT Fname, JobId FROM Emp WHERE JobId = (SELECT JobId FROM Emp WHERE Fname = ‘BLAKE’); Fname JobId BLAKE MANAGER CLARK MANAGER Chương 5. Truy vấn con 5-6 Truy vấn con5.1 Định nghĩa Trong mệnh đề HAVINGVí dụ Tìm phòng có mức lương tb > mức lương tb của phòng30. SELECT DeptId, AVG(Sal) DEPTNO AVG(SAL) FROM Emp 10 2916.66667 GROUP BY DeptId 20 2175 HAVING AVG(Sal) > (SELECT AVG(Sal) FROM Emp WHERE DeptId =30); Chương 5. Truy vấn con 5-7 Truy vấn con5.2 Truy vấn con hàng đơn chỉ trả về một hàng từ câu lệnh SELECT con.Ví dụ Tìm nhân viên có mã công việc giống với nhân viên số141. SELECT Ename, job_id FROM Emp WHERE job_id = (SELECT job_id FROM Emp WHERE emp_id = 141); Chương 5. Truy vấn con 5-8 Truy vấn con5.2 Truy vấn con hàng đơn Chú ý: Một số lỗi thường gặp Câu lệnh con trả về nhiều hơn một hàng. Câu lệnh con không trả về hàng nào. Các phép toán thường dùng Toán tử Diễn giải = Bằng > Lớn hơn >= Lớn hơn hoặc bằng < Nhỏ hơn Truy vấn con5.3 Truy vấn con nhiều hàng kết quả trả về nhiều hơn một hàng. Một số toán tử thường được sử dụng Toán tử Diễn giải IN Nằm trong danh sách So sánh với bất kỳ giá trị nào ANY trong kết quả của lệnh truy vấn con So sánh với tất cả các giá trị trong ALL kết quả lệnh truy vấn con EXISTS Trả về TRUE nếu có tồn tại Chương 5. Truy vấn con 5 - 10 Truy vấn con5.3 Truy vấn con nhiều hàngVí dụ: Tìm những nhân viên có thu nhập bằng với mức lươngtối thiểu của các phòng ban. SELECT ename, salary, dept_id FROM Emp WHERE salary IN (SELECT MIN(salary) FROM emp GROUP BY dept_id); Chương 5. Truy vấn con 5 - 11 Truy vấn con5.3 Truy vấn con nhiều hàngVí dụ: Tìm nhân viên không phải lập trình viên (ST_PROG’)và mức lương thấp hơn bất kỳ một lập trình viên nào (sử dụngtoán tử ANY). SELECT emp_id, ename, job_id, salary FROM Emp WHERE salary < ANY (SELECT salary FROM emp WHERE job_id = ST_PROG) AND job_id ‘ST_PROG’; Chương 5. Truy vấn con 5 - 12 Truy vấn con5.3 Truy vấn con nhiều hàng Chú ý: < ANY: nhỏ hơn phần tử lớn nhất > ANY: lớn phần tử nhỏ nhất = ANY: tương đương với bất kỳ phần tử nào < ALL: nhỏ hơn phần tử nhỏ nhất > ALL: lớn hơn phần tử lớn nhất điều kiện so sánh với giá trị NULL trả về NULL (dùng IN) Chương 5. Truy vấn con 5 - 13 Truy vấn con5.4 Truy vấn con trên nhiều cột Mỗi hàng trong câu truy vấn chính được so sánh vớigiá trị của câu truy vấn con nhiều hàng và nhiều cột. SELECT col1, col2, ... FROM table WHERE (col1, col2, ...) IN (SELECT col1, col2, ... FROM table WHERE condition); Chương 5. Truy vấn con 5 - 14 Truy vấn con5.4 Truy vấn con trên nhiều cột Ví dụ: Hiển thị các nhân viên do cùng một người quản lý vàlàm việc cùng phòng với nhân viên có mã số 178 hoặc 174.SELECT emp_id, manager_id, dept_idFROM EmpWHERE (manager_id, dept_id) IN (SELECT manager_id, dept_id FROM Emp WHERE emp_id IN (178,174)) ...
Nội dung trích xuất từ tài liệu:
Bài giảng Cơ sở dữ liệu quan hệ và SQL: Chương 5 - CĐ CNTT Hữu nghị Việt HànChương 5 TRUY VẤN CON - Lý thuyết: 3 tiết - Thực hành: 2 tiết Chương 5. Truy vấn con 5-1 Truy vấn con5.1 Định nghĩa5.2 Truy vấn con hàng đơn5.3 Truy vấn con nhiều hàng5.4 Truy vấn con trên nhiều cột5.5 Truy vấn con tương quan5.6 Truy vấn con phân cấp Chương 5. Truy vấn con 5-2 Truy vấn con5.1 Định nghĩa câu lệnh SELECT được lồng vào trong một mệnh đềcủa câu lệnh khác. SELECT select_list FROM table WHERE expr operator (SELECT sel_list FROM table); Chương 5. Truy vấn con 5-3 Truy vấn con5.1 Định nghĩa Mục đích Cung cấp giá trị cho WHERE, HAVING và START WITH Định nghĩa một tập hợp các hàng để chèn vào bảng trong câu lệnh INSERT hay CREATE TABLE. Định nghĩa một hay nhiều giá trị để gán cho một hàng đã tồn tại trong câu lệnh UPDATE. Chương 5. Truy vấn con 5-4 Truy vấn con5.1 Định nghĩa Một số quy tắc trong cặp dấu ngoặc đơn (). bên phải điều kiện so sánh. Mệnh đề ORDER BY trong câu lệnh truy vấn con là không cần thiết trừ khi chúng ta thực hiện phân tích top-n. Sử dụng các phép toán. Chương 5. Truy vấn con 5-5 Truy vấn con5.1 Định nghĩa Trong mệnh đề WHEREVí dụ Tìm những nhân viên làm cùng công việc với BLAKE SELECT Fname, JobId FROM Emp WHERE JobId = (SELECT JobId FROM Emp WHERE Fname = ‘BLAKE’); Fname JobId BLAKE MANAGER CLARK MANAGER Chương 5. Truy vấn con 5-6 Truy vấn con5.1 Định nghĩa Trong mệnh đề HAVINGVí dụ Tìm phòng có mức lương tb > mức lương tb của phòng30. SELECT DeptId, AVG(Sal) DEPTNO AVG(SAL) FROM Emp 10 2916.66667 GROUP BY DeptId 20 2175 HAVING AVG(Sal) > (SELECT AVG(Sal) FROM Emp WHERE DeptId =30); Chương 5. Truy vấn con 5-7 Truy vấn con5.2 Truy vấn con hàng đơn chỉ trả về một hàng từ câu lệnh SELECT con.Ví dụ Tìm nhân viên có mã công việc giống với nhân viên số141. SELECT Ename, job_id FROM Emp WHERE job_id = (SELECT job_id FROM Emp WHERE emp_id = 141); Chương 5. Truy vấn con 5-8 Truy vấn con5.2 Truy vấn con hàng đơn Chú ý: Một số lỗi thường gặp Câu lệnh con trả về nhiều hơn một hàng. Câu lệnh con không trả về hàng nào. Các phép toán thường dùng Toán tử Diễn giải = Bằng > Lớn hơn >= Lớn hơn hoặc bằng < Nhỏ hơn Truy vấn con5.3 Truy vấn con nhiều hàng kết quả trả về nhiều hơn một hàng. Một số toán tử thường được sử dụng Toán tử Diễn giải IN Nằm trong danh sách So sánh với bất kỳ giá trị nào ANY trong kết quả của lệnh truy vấn con So sánh với tất cả các giá trị trong ALL kết quả lệnh truy vấn con EXISTS Trả về TRUE nếu có tồn tại Chương 5. Truy vấn con 5 - 10 Truy vấn con5.3 Truy vấn con nhiều hàngVí dụ: Tìm những nhân viên có thu nhập bằng với mức lươngtối thiểu của các phòng ban. SELECT ename, salary, dept_id FROM Emp WHERE salary IN (SELECT MIN(salary) FROM emp GROUP BY dept_id); Chương 5. Truy vấn con 5 - 11 Truy vấn con5.3 Truy vấn con nhiều hàngVí dụ: Tìm nhân viên không phải lập trình viên (ST_PROG’)và mức lương thấp hơn bất kỳ một lập trình viên nào (sử dụngtoán tử ANY). SELECT emp_id, ename, job_id, salary FROM Emp WHERE salary < ANY (SELECT salary FROM emp WHERE job_id = ST_PROG) AND job_id ‘ST_PROG’; Chương 5. Truy vấn con 5 - 12 Truy vấn con5.3 Truy vấn con nhiều hàng Chú ý: < ANY: nhỏ hơn phần tử lớn nhất > ANY: lớn phần tử nhỏ nhất = ANY: tương đương với bất kỳ phần tử nào < ALL: nhỏ hơn phần tử nhỏ nhất > ALL: lớn hơn phần tử lớn nhất điều kiện so sánh với giá trị NULL trả về NULL (dùng IN) Chương 5. Truy vấn con 5 - 13 Truy vấn con5.4 Truy vấn con trên nhiều cột Mỗi hàng trong câu truy vấn chính được so sánh vớigiá trị của câu truy vấn con nhiều hàng và nhiều cột. SELECT col1, col2, ... FROM table WHERE (col1, col2, ...) IN (SELECT col1, col2, ... FROM table WHERE condition); Chương 5. Truy vấn con 5 - 14 Truy vấn con5.4 Truy vấn con trên nhiều cột Ví dụ: Hiển thị các nhân viên do cùng một người quản lý vàlàm việc cùng phòng với nhân viên có mã số 178 hoặc 174.SELECT emp_id, manager_id, dept_idFROM EmpWHERE (manager_id, dept_id) IN (SELECT manager_id, dept_id FROM Emp WHERE emp_id IN (178,174)) ...
Tìm kiếm theo từ khóa liên quan:
Cơ sở dữ liệu quan hệ Câu lệnh SQL Cơ sở dữ liệu quan hệ và SQL Bài giảng cơ sở dữ liệu quan hệ Lý thuyết cơ sở dữ liệu Truy vấn SQLTài liệu liên quan:
-
Giáo trình Lập trình quản lý với Microsoft Access 2013 toàn tập: Phần 1
195 trang 240 0 0 -
Xây dựng ontology cho hệ thống truy vấn dữ liệu tùy chọn
5 trang 143 0 0 -
Ngôn ngữ truy vấn có cấu trúc (SQL)
24 trang 113 0 0 -
26 trang 72 0 0
-
54 trang 70 0 0
-
Giáo trình Thực hành SQL: Phần 2 - Trần Nguyên Phong
15 trang 59 0 0 -
Giáo trình Tin học ứng dụng trong kinh doanh
170 trang 58 0 0 -
Bài giảng Cơ sở dữ liệu - Hồ Cẩm Hà
163 trang 53 0 0 -
Bài giảng cơ sở dữ liệu - chương 1 - ĐH KHTN Tp.HCM
46 trang 48 0 0 -
Đáp án một số bài tập mẫu môn cơ sở dữ liệu (Phần 1)
0 trang 47 1 0