Bài 4 Truy vấn nâng cao (Thực hành)
Số trang: 10
Loại file: pdf
Dung lượng: 544.08 KB
Lượt xem: 36
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:
Mục tiêu bài học: Kết thúc chương này,bạn có thể: Viết các câu lệnh T-SQL để thực thi các sub-queries Viết các câu lệnh T-SQL sử dụng mệnh đề EXISTS Thực thi truy vấn dữ liệu trên các tập kết quả Sử dụng từ khoá DISTINCT để lọc queries Sử dụng mệnh đề COMPUTE và COMPUTE BY để thực thi các query tổng kết Sử dụng cấu trúc SELECT INTO đẻ chuyển dữ liệu giữa hai bảng
Nội dung trích xuất từ tài liệu:
Bài 4 Truy vấn nâng cao (Thực hành)Bài 4 Truy vấn nâng cao (Thực hành)Mục tiêu bài học:Kết thúc chương này,bạn có thể: Viết các câu lệnh T-SQL để thực thi các sub-queries Viết các câu lệnh T-SQL sử dụng mệnh đề EXISTS Thực thi truy vấn dữ liệu trên các tập kết quả Sử dụng từ khoá DISTINCT để lọc queries Sử dụng mệnh đề COMPUTE và COMPUTE BY để thực thi các query tổng kết Sử dụng cấu trúc SELECT INTO đẻ chuyển dữ liệu giữa hai bảngCác bước nêu trong bài này khá chi tiết, toàn diện và xuyên suốt toàn bài. Bài này đãđựoc biên soạn để thực hiệnc các mục tiêu đề ra và để nắm vững bộ công cụ. Hãy bám sátcác bước sau.Phần I: Làm theo hướng dẫn Thời gian: 30 phútMục tiêu của bài thực hành này là để học viên làm quen với cách viết các subquery, sử dụngmệnh đề EXIST và mệnh đề DISTINCT, lọc query sử dụng COMPUTE và COMPUTE BY. Họcviên cũng sẽ biết cách lưu kết quả truy vấn dùng cấu trúc SELECT INTO. Về tổng thể học viênsẽ thu nhận được nhiều kiến thức phong phú để thực thi các truy vấn nâng cao với SQL Server vàT-SQL.Như chúng ta đã học có ba cách để kết hợp dữ liệu từ nhiều bảng:1Subqueries - Là một query được gói bên trong một query khác.2Unions - Kết hợp các dòng từ nhiều bảng.3Joins - Kết hợp các cột từ nhiều bảng.Sử dụng subqueryChúng ta có thể sử dụng một câu lệnh SELECT để trả về các bản ghi mà sẽ được sử dụng bởi câulệnh SELECT khác. Câu lệnh bao ở bên ngoài gọi là parent query và câu lệnh bên trong gọi làsubquery.Select from WHEREVí dụ, giả sử chúng ta muốn biết tên các sản phẩm mà đã đựoc đặt hàng, chúng ta có thể sử dụngcâu lệnh sau:Truy vấn nâng cao 49 Hình 4.1: Sử dụng subqueriesNhư chúng ta đã biêt trong bài trước, những điểm sau cần nhớ khi sử dụng các subqueries:1Chúng ta có thể sử dụng một subquery để thay thế cho một giá trị trong mệnh đề SELECT, nhưlà một phần của mệnh đề WHERE. Điều này sẽ được chỉ ra ở ví dụ dưới đây.2Khi sử dụng các toán tử so sánh với sub-query, có một số giới hạn với việc trả lại số lượng dòngvà cột của sub-query. Các giới hạn được tổng kết trong bảng 3.1. Một cột Nhiều cột Một dòng Sử dụng EXISTS Sử dụng =, >, < và các toán tử so sánh khác Nhiều dòng Sử dụng EXISTS Sử dụng ANY, ALL, IN và EXISTS Table 4.1Ví dụ, subquery ở dưới đây sẽ trả về nhiều dòng và một cột. Trong trường hợp này có thể sửdụng ANY hoặc ALL hoặc IN hoặc EXISTS.1Nếu sử dụng một toán tử so sánh cùng với subquery và subquery này trả về nhiều hơn mộtdòng, SQL Server sẽ báo lỗi.50 Thiết kế CSDL và thực thi với SQL Server2Nhiều subquery có thể viết lại bằng lệnh joins.Sử dụng từ khoá EXISTS và NOT EXISTSKhi một subquery có từ EXISTS, nó có chức năng kiểm tra sự tồn tại. Từ khoá EXISTS đựoc sửdùng để kiểm tra sự tồn tại của các dòng trả về bởi subquery. Subquery lúc này không thực sự trảlại dữ liệu, mà nó trả về một giá trị TRUE hoặc FALSE.Một subquery bao gồm từ EXISTS có cú pháp như sau: WHERE [NOT] EXISTS (Subquery)Ví dụ, giả sử chúng ta muốn biết chỉ những sản phẩm loại 1 đã được đặt hàng. Chúng ta có thể sửdụng từ khoá EXISTS để kiểm tra nếu thông tin về sản phẩm tồn tại trong bảng order details .Câu lệnh và kêt quả của nó được chỉ ra trong hình 4.2. Hình 4.2: Sử dụng mệnh đề EXISTSVí dụ, chúng ta muốn chỉ ra những sản phẩm loại 1 mà chưa được đặt hàng. Chúng ta sẽ sử dụngtừ khoá NOT EXISTS để lấy về kết quả mong muốn.Truy vấn nâng cao 51Câu lệnh và kết quả của nó được chỉ ra trong hình 4.3 HÌnh 4.3: Sử dụng mệnh đề NOT EXISTSCó hai kiểu subquery: Nested queries và Correlated queriesNested SubqueriesCó thể mở rộng khái niệm subquery đã học để có một subquery có thể gọi một subquery khác,khi đó nó sẽ được gọi là nested subqueries.Theo như trên một subquery có thể lồng đến 32 mức nhưng khi đó nó sẽ không có được hiệu suâtthi hành như mong muốn.Ví dụ, giả sử rằng chúng ta muốn tìm chi tiết của những hoá đơn mà bao gồm những sản phẩmđựoc cung cấp từ thành phố London.Câu lệnh và kết quả được hiển thị trong hình 4.4.52 Thiết kế CSDL và thực thi với SQL Server HÌnh 4.4: Sử dụng nested subqueriesTừ khoá DISTINCTChúng ta đã họ ...
Nội dung trích xuất từ tài liệu:
Bài 4 Truy vấn nâng cao (Thực hành)Bài 4 Truy vấn nâng cao (Thực hành)Mục tiêu bài học:Kết thúc chương này,bạn có thể: Viết các câu lệnh T-SQL để thực thi các sub-queries Viết các câu lệnh T-SQL sử dụng mệnh đề EXISTS Thực thi truy vấn dữ liệu trên các tập kết quả Sử dụng từ khoá DISTINCT để lọc queries Sử dụng mệnh đề COMPUTE và COMPUTE BY để thực thi các query tổng kết Sử dụng cấu trúc SELECT INTO đẻ chuyển dữ liệu giữa hai bảngCác bước nêu trong bài này khá chi tiết, toàn diện và xuyên suốt toàn bài. Bài này đãđựoc biên soạn để thực hiệnc các mục tiêu đề ra và để nắm vững bộ công cụ. Hãy bám sátcác bước sau.Phần I: Làm theo hướng dẫn Thời gian: 30 phútMục tiêu của bài thực hành này là để học viên làm quen với cách viết các subquery, sử dụngmệnh đề EXIST và mệnh đề DISTINCT, lọc query sử dụng COMPUTE và COMPUTE BY. Họcviên cũng sẽ biết cách lưu kết quả truy vấn dùng cấu trúc SELECT INTO. Về tổng thể học viênsẽ thu nhận được nhiều kiến thức phong phú để thực thi các truy vấn nâng cao với SQL Server vàT-SQL.Như chúng ta đã học có ba cách để kết hợp dữ liệu từ nhiều bảng:1Subqueries - Là một query được gói bên trong một query khác.2Unions - Kết hợp các dòng từ nhiều bảng.3Joins - Kết hợp các cột từ nhiều bảng.Sử dụng subqueryChúng ta có thể sử dụng một câu lệnh SELECT để trả về các bản ghi mà sẽ được sử dụng bởi câulệnh SELECT khác. Câu lệnh bao ở bên ngoài gọi là parent query và câu lệnh bên trong gọi làsubquery.Select from WHEREVí dụ, giả sử chúng ta muốn biết tên các sản phẩm mà đã đựoc đặt hàng, chúng ta có thể sử dụngcâu lệnh sau:Truy vấn nâng cao 49 Hình 4.1: Sử dụng subqueriesNhư chúng ta đã biêt trong bài trước, những điểm sau cần nhớ khi sử dụng các subqueries:1Chúng ta có thể sử dụng một subquery để thay thế cho một giá trị trong mệnh đề SELECT, nhưlà một phần của mệnh đề WHERE. Điều này sẽ được chỉ ra ở ví dụ dưới đây.2Khi sử dụng các toán tử so sánh với sub-query, có một số giới hạn với việc trả lại số lượng dòngvà cột của sub-query. Các giới hạn được tổng kết trong bảng 3.1. Một cột Nhiều cột Một dòng Sử dụng EXISTS Sử dụng =, >, < và các toán tử so sánh khác Nhiều dòng Sử dụng EXISTS Sử dụng ANY, ALL, IN và EXISTS Table 4.1Ví dụ, subquery ở dưới đây sẽ trả về nhiều dòng và một cột. Trong trường hợp này có thể sửdụng ANY hoặc ALL hoặc IN hoặc EXISTS.1Nếu sử dụng một toán tử so sánh cùng với subquery và subquery này trả về nhiều hơn mộtdòng, SQL Server sẽ báo lỗi.50 Thiết kế CSDL và thực thi với SQL Server2Nhiều subquery có thể viết lại bằng lệnh joins.Sử dụng từ khoá EXISTS và NOT EXISTSKhi một subquery có từ EXISTS, nó có chức năng kiểm tra sự tồn tại. Từ khoá EXISTS đựoc sửdùng để kiểm tra sự tồn tại của các dòng trả về bởi subquery. Subquery lúc này không thực sự trảlại dữ liệu, mà nó trả về một giá trị TRUE hoặc FALSE.Một subquery bao gồm từ EXISTS có cú pháp như sau: WHERE [NOT] EXISTS (Subquery)Ví dụ, giả sử chúng ta muốn biết chỉ những sản phẩm loại 1 đã được đặt hàng. Chúng ta có thể sửdụng từ khoá EXISTS để kiểm tra nếu thông tin về sản phẩm tồn tại trong bảng order details .Câu lệnh và kêt quả của nó được chỉ ra trong hình 4.2. Hình 4.2: Sử dụng mệnh đề EXISTSVí dụ, chúng ta muốn chỉ ra những sản phẩm loại 1 mà chưa được đặt hàng. Chúng ta sẽ sử dụngtừ khoá NOT EXISTS để lấy về kết quả mong muốn.Truy vấn nâng cao 51Câu lệnh và kết quả của nó được chỉ ra trong hình 4.3 HÌnh 4.3: Sử dụng mệnh đề NOT EXISTSCó hai kiểu subquery: Nested queries và Correlated queriesNested SubqueriesCó thể mở rộng khái niệm subquery đã học để có một subquery có thể gọi một subquery khác,khi đó nó sẽ được gọi là nested subqueries.Theo như trên một subquery có thể lồng đến 32 mức nhưng khi đó nó sẽ không có được hiệu suâtthi hành như mong muốn.Ví dụ, giả sử rằng chúng ta muốn tìm chi tiết của những hoá đơn mà bao gồm những sản phẩmđựoc cung cấp từ thành phố London.Câu lệnh và kết quả được hiển thị trong hình 4.4.52 Thiết kế CSDL và thực thi với SQL Server HÌnh 4.4: Sử dụng nested subqueriesTừ khoá DISTINCTChúng ta đã họ ...
Tìm kiếm theo từ khóa liên quan:
quản trị dữ liệu hệ thống dữ liệu cơ sở dữ liệu tổ chức cơ sơ dữ liệu thiết kế cơ sơ dữ liệuGợi ý tài liệu liên quan:
-
62 trang 394 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 372 6 0 -
Đáp án đề thi học kỳ 2 môn cơ sở dữ liệu
3 trang 295 1 0 -
Giáo trình Cơ sở dữ liệu: Phần 2 - TS. Nguyễn Hoàng Sơn
158 trang 284 0 0 -
PHÂN TÍCH THIẾT KẾ HỆ THỐNG XÂY DỰNG HỆ THỐNG ĐẶT VÉ TÀU ONLINE
43 trang 280 2 0 -
13 trang 278 0 0
-
Phân tích thiết kế hệ thống - Biểu đồ trạng thái
20 trang 271 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 245 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 238 0 0 -
8 trang 185 0 0