Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 40 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
40
Dung lượng
765 KB
Nội dung
1 Khôi phụcdữliệu Mục tiêu 2 Toán tử UNION Tạo 1 bảng mới bằng lệnh SELECT INTO Thực hiện các truy vấn cao cấp bằng cách dùng join và subquery. Toán tử UNION 3 Dùng để kết hợp kết quả của 2 hay nhiều query vào 1 kết quả chung chứa tất cả các hàng là hợp của các kết quả. Hai luật cơ bản để kết hợp các bộ kết quả của 2 query với toán tử union: Số và thứ tự của các cột phải đồng nhất nhau trong tất cả các query. Kiểu dữliệu phải phù hợp nhau. Toán tử UNION 4 Cú pháp { < query specification > | ( < query expression > ) } UNION [ ALL ] < query specification | ( < query expression > )[ n ] ALL: hiển thị tất cả các hàng trong bảng kết quả bao gồm cả những hàng trùng nhau Ví dụ SELECT city AS Cities FROM stores_west UNION SELECT city FROM stores_east ORDER BY city SELECT INTO Statement 5 Lệnh SELECT với mệnh đề INTO được dùng dể lưu trữ kết quả truy vấn vào 1 bảng mới mà không cần phải định nghĩa trước bảng này. Lệnh SELECT INTO sẽ tạo ra bảng mới đó. Cú pháp SELECT columns_list INTO new_table_name FROM table_name1, table_name2,………, table_name n WHERE condition1, condition2,………., condition n Ví dụ SELECT Title_Id, Title INTO NewTitles FROM Titles WHERE Price > $15 SELECT INTO Statement 6 SELECT * INTO tempExternalCandidate FROM ExternalCandidate WHERE DATEPART(mm,dDateOfApplication)= 5 AND DATEPART(yyyy,dDateOfApplication)= 2001 Tạo 1 bảng mới tên ExternalCandidate chứa tất cả các ứng viên bên ngoài (External Candidate) đã nộp đơn vào tháng 5 năm 2001 Mệnh đề JOIN 7 Mệnh đề join dùng để khôi phụcdữliệu từ nhiều hơn 1 bảng Cú pháp SELECT column_name [,n ] FROM table_name table_alias [CROSS|INNER|[LEFT | RIGHT]OUTER] JOIN table_name table_alias [ON table_name.ref_column_name join_operator table_name.ref_column_name] [WHERE search_condition] Kết nối các bảng 8 Kết nối chỉ tồn tại trong thời gian truy vấn. Kết nối không thay đổi dữliệu trong các bảng của cơ sở dữ liệu. Nên tạo bí danh (alias) cho tên bảng để tránh gõ tên dài và làm truy vấn dễ đọc hơn Ví dụ SELECT t.Title_Id, t.Title, p.Pub_Id from Titles t JOIN Publishers p on t.Pub_Id=p.Pub_Id WHERE Pub_Name='New Moon Books' Các cột tham gia kết nối 9 Nếu kết nối nhiều hơn 2 bảng thì kết nối 2 bảng trước, sau đó kết nối nhóm này với bảng thứ ba. Ví dụ SELECT OrderID,p.ProductID, ProductName, CategoryName ,Quantity FROM [Order Details] o JOIN Products p ON o.ProductID = p.ProductID JOIN Categories c ON p.CategoryID = c.CategoryID Các loại kết nối 10 Inner Join Outer Join Cross Join Equi Join Natural Join Self Join [...]... OrdDet WHERE Ord.OrderID =OrdDet.OrderID) AS MaxUnitPrice FROM Northwind.dbo.Orders AS Ord Subquery được dùng như 1 biểu thức cột có tên là MaxUnitPrice 23 Subqueries Subquery có thể được dùng để khôi phụcdữliệu từ nhiều bảng và có thể được dùng như 1 cách khác của join (alternative to a join) 24 Subqueries Cách 1: dùng subquery 25 SELECT ProductName FROM Products WHERE UnitPrice =(SELECT UnitPrice...Kết nối nội - Inner joins Trong kết nối nội, dữ liệu từ nhiều bảng được hiển thị sau khi so sánh giá trị trong 1 cột chung Chỉ những hàng mà có giá trị thoả mãn điều kiện kết nối trong cột chung đó mới được hiển thị Tích Cartesian: việc kết nối... Subquery với các toán tử so sánh 31 Subquery với toán tử EXISTS Khi 1 subquery bắt đầu với EXISTS, nó thực hiện chức năng kiểm tra sự tồn tại (existence test) Subquery thực sự không tạo ra bất kỳ dữ liệu nào mà chỉ trả về giá trị TRUE hay FALSE Cú pháp: WHERE [NOT] EXISTS (subquery) 32 Subquery với toán tử EXISTS Ví dụ: SELECT pub_name FROM publishers WHERE EXISTS (SELECT * FROM titles WHERE . table_name.ref_column_name] [WHERE search_condition] Kết nối các bảng 8 Kết nối ch tồn tại trong thời gian truy vấn. Kết nối không thay đổi dữ liệu trong các bảng của cơ sở dữ liệu. Nên tạo bí danh (alias) cho tên. nội, dữ liệu từ nhiều bảng được hiển thị sau khi so sánh giá trị trong 1 cột chung. Ch những hàng mà có giá trị thoả mãn điều kiện kết nối trong cột chung đó mới được hiển thị. T ch Cartesian:. 1 Khôi phục dữ liệu Mục tiêu 2 Toán tử UNION Tạo 1 bảng mới bằng lệnh SELECT INTO Thực hiện các truy vấn cao cấp bằng c ch dùng join và subquery. Toán tử