Data Integrity and Advanced Query Technique- P4
Số trang: 5
Loại file: pdf
Dung lượng: 161.99 KB
Lượt xem: 1
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:
Tham khảo tài liệu data integrity and advanced query technique- p4, công nghệ thông tin, cơ sở dữ liệu phục vụ nhu cầu học tập, nghiên cứu và làm việc hiệu quả
Nội dung trích xuất từ tài liệu:
Data Integrity and Advanced Query Technique- P4 Region FROM Northwind.dbo.Employees ORDER BY LastName, FirstName ASCTrong ví dụ trên ta select cột Employee Name làsản phẩm ghép lại của cột FirstName và LastNameđược cách nhau bằng một khoảng trắng. Một giá trịthuộc loại identity để làm cột Employee ID. Kết quảsẽ được sắp theo thứ tự từ nhỏ tới lớn (ASC) (cònDESC là từ lớn tới nhỏ) trong đó cột LastName đượcsắp trước rồi mới tới cột FirstName.The INTO ClauseINTO Clause cho phép ta select data từ một haynhiều table sau đó kết quả sẽ được insert vào mộttable mới. Table này được tạo ra do kết quả của câulệnh SELECT INTO. Ví dụ: SELECT FirstName, LastName INTO EmployeeNames FROM EmployersCâu lệnh tên sẽ tạo ra một table mới có tên làEmployeeNames với 2 cột là FirstName vàLastName sau đó kết quả select được từ tableEmployers sẽ được insert vào table mới này. Nếutable EmployeeNames tồn tại SQL Server sẽ báo lỗi.Câu lệnh này thường hay được sử dụng để selectmột lượng data lớn từ nhiều table khác nhau vào mộttable mới (thường dùng cho mục đích tạm thời(temporary table)) mà khỏi phải thực thi câu lệnhInsert nhiều lần.Một cách khác cũng select data từ một hay nhiềutable và insert vào một table khác là dùng InsertInto...Select.... Nhưng câu lệnh này không tạo ramột table mới. Nghĩa là ta table đó phải tồn tại trước.Ví dụ: INSERT INTO EmployeeNames SELECT FirstName, LastName FROM EmployersChú ý là không có chữ Value trong câu Insert này.The GROUP BY and HAVING ClausesGROUP BY dùng để tạo ra các giá trị tổng(aggregate values) cho từng hàng trong kết quảselect được. Chỉ có một hàng cho từng giá trị riêngbiệt (distinct) của từng cột. Các cột được select đềuphải nằm trong GROUP BY Clause. Hãy xem ví dụphức tạp sau: SELECT OrdD1.OrderID AS OrderID, SUM(OrdD1.Quantity) AS UnitsSold, SUM(OrdD1.UnitPrice *OrdD1.Quantity) AS Revenue FROM [Order Details] AS OrdD1 WHERE OrdD1.OrderID in (SELECTDISTINCT OrdD2.OrderID FROM [OrderDetails] AS OrdD2 WHEREOrdD2.UnitPrice > $100) GROUP BY OrdD1.OrderID HAVING SUM(OrdD1.Quantity) > 100Trong ví dụ trên đầu tiên ta select những order riêngbiệt (distinct) từ Order Details table với giá > 100.Sau đó tiếp tục select OrderID, Units Sold,Revenue từ kết quả trên trong đó Units Sold vàRevenue là những aggregate columns (cho giá trịtổng một cột của những hàng có cùng OrderID).HAVING Clause đóng vai trò như một filter dùng đểlọc lại các giá trị cần select mà thôi. HAVING Clausethường đi chung với GROUP BY mặc dù có thể xuấthiện riêng lẻ.UNIONUninon keyword có nhiệm vụ ghép nối kết quả của 2hay nhiều queries lại thành một kết quả.Ví dụ:Giả sử có table1(ColumnA varchar(10), ColumnBint) và table2(ColumnC varchar(10), ColumnD int).Ta muốn select data từ table1 và ghép với data từtable2 để tạo thành một kết quả duy nhất ta làm nhưsau: SELECT * FROM Table1 UNION ALL SELECT * FROM Table2Nếu không có keyword ALL thì những hàng giốngnhau từ 2 table sẽ chỉ xuất hiện một lần trong kếtquả. Còn khi dùng ALL thì các hàng trong 2 table đềucó trong kết quả bất chấp việc lập lại.Khi Dùng Union phải chú ý hai chuyện: số cột selectở 2 queries phải bằng nhau và data type của các cộttương ứng phải compatible (tương thích).Using JOINSTrong phần này chúng ta sẽ tìm hiểu về các loại Jointrong SQL Server. Bằng cách sử dụng JOIN bạn có
Nội dung trích xuất từ tài liệu:
Data Integrity and Advanced Query Technique- P4 Region FROM Northwind.dbo.Employees ORDER BY LastName, FirstName ASCTrong ví dụ trên ta select cột Employee Name làsản phẩm ghép lại của cột FirstName và LastNameđược cách nhau bằng một khoảng trắng. Một giá trịthuộc loại identity để làm cột Employee ID. Kết quảsẽ được sắp theo thứ tự từ nhỏ tới lớn (ASC) (cònDESC là từ lớn tới nhỏ) trong đó cột LastName đượcsắp trước rồi mới tới cột FirstName.The INTO ClauseINTO Clause cho phép ta select data từ một haynhiều table sau đó kết quả sẽ được insert vào mộttable mới. Table này được tạo ra do kết quả của câulệnh SELECT INTO. Ví dụ: SELECT FirstName, LastName INTO EmployeeNames FROM EmployersCâu lệnh tên sẽ tạo ra một table mới có tên làEmployeeNames với 2 cột là FirstName vàLastName sau đó kết quả select được từ tableEmployers sẽ được insert vào table mới này. Nếutable EmployeeNames tồn tại SQL Server sẽ báo lỗi.Câu lệnh này thường hay được sử dụng để selectmột lượng data lớn từ nhiều table khác nhau vào mộttable mới (thường dùng cho mục đích tạm thời(temporary table)) mà khỏi phải thực thi câu lệnhInsert nhiều lần.Một cách khác cũng select data từ một hay nhiềutable và insert vào một table khác là dùng InsertInto...Select.... Nhưng câu lệnh này không tạo ramột table mới. Nghĩa là ta table đó phải tồn tại trước.Ví dụ: INSERT INTO EmployeeNames SELECT FirstName, LastName FROM EmployersChú ý là không có chữ Value trong câu Insert này.The GROUP BY and HAVING ClausesGROUP BY dùng để tạo ra các giá trị tổng(aggregate values) cho từng hàng trong kết quảselect được. Chỉ có một hàng cho từng giá trị riêngbiệt (distinct) của từng cột. Các cột được select đềuphải nằm trong GROUP BY Clause. Hãy xem ví dụphức tạp sau: SELECT OrdD1.OrderID AS OrderID, SUM(OrdD1.Quantity) AS UnitsSold, SUM(OrdD1.UnitPrice *OrdD1.Quantity) AS Revenue FROM [Order Details] AS OrdD1 WHERE OrdD1.OrderID in (SELECTDISTINCT OrdD2.OrderID FROM [OrderDetails] AS OrdD2 WHEREOrdD2.UnitPrice > $100) GROUP BY OrdD1.OrderID HAVING SUM(OrdD1.Quantity) > 100Trong ví dụ trên đầu tiên ta select những order riêngbiệt (distinct) từ Order Details table với giá > 100.Sau đó tiếp tục select OrderID, Units Sold,Revenue từ kết quả trên trong đó Units Sold vàRevenue là những aggregate columns (cho giá trịtổng một cột của những hàng có cùng OrderID).HAVING Clause đóng vai trò như một filter dùng đểlọc lại các giá trị cần select mà thôi. HAVING Clausethường đi chung với GROUP BY mặc dù có thể xuấthiện riêng lẻ.UNIONUninon keyword có nhiệm vụ ghép nối kết quả của 2hay nhiều queries lại thành một kết quả.Ví dụ:Giả sử có table1(ColumnA varchar(10), ColumnBint) và table2(ColumnC varchar(10), ColumnD int).Ta muốn select data từ table1 và ghép với data từtable2 để tạo thành một kết quả duy nhất ta làm nhưsau: SELECT * FROM Table1 UNION ALL SELECT * FROM Table2Nếu không có keyword ALL thì những hàng giốngnhau từ 2 table sẽ chỉ xuất hiện một lần trong kếtquả. Còn khi dùng ALL thì các hàng trong 2 table đềucó trong kết quả bất chấp việc lập lại.Khi Dùng Union phải chú ý hai chuyện: số cột selectở 2 queries phải bằng nhau và data type của các cộttương ứng phải compatible (tương thích).Using JOINSTrong phần này chúng ta sẽ tìm hiểu về các loại Jointrong SQL Server. Bằng cách sử dụng JOIN bạn có
Tìm kiếm theo từ khóa liên quan:
cơ sở dữ liệu quan hệ cơ sở dữ liệu quan hệ database relationship thiết kế cơ sở dữ liệu quan hệ phương pháp thiết kế ngôn ngữ sqlTài liệu có liên quan:
-
Giáo trình Cơ sở dữ liệu: Phần 2 - TS. Nguyễn Hoàng Sơn
158 trang 319 0 0 -
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 296 0 0 -
Xây dựng ontology cho hệ thống truy vấn dữ liệu tùy chọn
5 trang 146 0 0 -
Mô tả công việc Chuyên gia cố vấn UI-UX
1 trang 114 0 0 -
Giáo trình Nhập môn cơ sở dữ liệu: Phần 2 - Trần Thành Trai
145 trang 105 0 0 -
26 trang 75 0 0
-
54 trang 73 0 0
-
Giáo trình Tin học ứng dụng trong kinh doanh
170 trang 68 0 0 -
Bài giảng Cơ sở dữ liệu - Hồ Cẩm Hà
163 trang 65 0 0 -
Giáo trình môn học: PHP và MySQL (Ngành/nghề: Thiết kế trang web) - Trường CĐN Đà Lạt
42 trang 55 0 0