Số lượng của số hàng trong quan hệ. Số trong C dao động từ số trong A nhân với số trong B bằng 0
B
Lực lượng của số hàng trong quan hệ. Số trong C dao động từ số trong A nhân với số trong B bằng 0.
C
Arity là số cột trong quan hệ. Trong đại số quan hệ, tất cả các cột của quan hệ đều được giữ nguyên, và do đó, ước số của C là ước số của A cộng với B. Arity của cả A và B phải lớn hơn một.
D
Arity là số cột trong quan hệ. Trong đại số quan hệ, tất cả các cột của quan hệ đều được giữ nguyên, và do đó, ước số của C là ước số của A cộng với B. Arity của cả A và B phải lớn hơn một.
E
Số lượng hàng của số hàng trong quan hệ. Số trong C dao động từ số trong A nhân với số trong B bằng 0. Arity là số cột trong quan hệ. Trong đại số quan hệ, tất cả các cột của quan hệ đều được giữ nguyên, và do đó, ước số của C là ước số của A cộng với B. Arity của cả A và B phải lớn hơn một.
Quan hệ C là phép nối của quan hệ A và quan hệ B với điều kiện p. Phát biểu nào sau đây phải đúng trong mọi trường hợp?
CÁNH CỔNG. CỔNG-CS-2002. Câu hỏi 20
Cải thiện bài viết
Lưu bài viết
Thích bài viết
- Độ khó. Trung bình
- Cập nhật lần cuối. 28 tháng 6 năm 2021
Cải thiện bài viết
Lưu bài viết
Về khả năng diễn đạt của các ngôn ngữ truy vấn quan hệ chính thức, phát biểu nào sau đây là đúng?
[A] Đại số quan hệ mạnh hơn phép tính quan hệ
[B] Relational algebra has the same power as relational calculus
[C] Relational algebra has the same power as safe relational calculus
[D] None of the above
Answer: [C]
Giải thích.
Một truy vấn có thể được xây dựng trong phép tính quan hệ khi và chỉ khi nó có thể được xây dựng trong đại số quan hệ. Vì vậy, đại số quan hệ có sức mạnh tương tự như phép tính quan hệ.
Tuy nhiên, có thể viết các truy vấn tính toán quan hệ đúng cú pháp có vô số câu trả lời. Những truy vấn như vậy là không an toàn.
Các truy vấn có số lượng câu trả lời hữu hạn là các truy vấn tính toán quan hệ an toàn.
Như vậy, đại số quan hệ có sức mạnh ngang với phép tính quan hệ an toàn.
Vì vậy, phương án [C] là câu trả lời.
Vui lòng bình luận bên dưới nếu bạn thấy bài viết trên có gì sai sót.
Câu đố của câu hỏi này
Ghi chú cá nhân của tôi arrow_drop_up
Tiết kiệm
Vui lòng Đăng nhập để nhận xét.
Câu lệnh SELECT truy xuất 0 hoặc nhiều hàng từ một hoặc nhiều bảng cơ sở dữ liệu hoặc dạng xem cơ sở dữ liệu. Trong hầu hết các ứng dụng,
SELECT isbn, title, price, price * 0.06 AS sales_tax FROM Book WHERE price > 100.00 ORDER BY title;8 là lệnh ngôn ngữ thao tác dữ liệu [DML] được sử dụng phổ biến nhất. Vì SQL là ngôn ngữ lập trình khai báo, các truy vấn
SELECT isbn, title, price, price * 0.06 AS sales_tax FROM Book WHERE price > 100.00 ORDER BY title;8 chỉ định một tập kết quả, nhưng không chỉ định cách tính toán nó. Cơ sở dữ liệu dịch truy vấn thành một "kế hoạch truy vấn" có thể khác nhau giữa các lần thực thi, phiên bản cơ sở dữ liệu và phần mềm cơ sở dữ liệu. Chức năng này được gọi là "trình tối ưu hóa truy vấn" vì nó chịu trách nhiệm tìm kế hoạch thực hiện tốt nhất có thể cho truy vấn, trong các ràng buộc có thể áp dụng
Câu lệnh SELECT có nhiều mệnh đề tùy chọn
- Mệnh đề
SELECT isbn, title, price, price * 0.06 AS sales_tax FROM Book WHERE price > 100.00 ORDER BY title;
8 là danh sách các cột hoặc biểu thức SQL phải được trả về bởi truy vấn. Đây là xấp xỉ phép toán chiếu đại số quan hệ SELECT isbn, title, price FROM Book WHERE price < [SELECT AVG[price] FROM Book] ORDER BY title;
1 tùy ý cung cấp bí danh cho từng cột hoặc biểu thức trong mệnh đềSELECT isbn, title, price, price * 0.06 AS sales_tax FROM Book WHERE price > 100.00 ORDER BY title;
8. Đây là phép toán đổi tên đại số quan hệSELECT isbn, title, price FROM Book WHERE price < [SELECT AVG[price] FROM Book] ORDER BY title;
3 chỉ định bảng nào sẽ lấy dữ liệuSELECT isbn, title, price FROM Book WHERE price < [SELECT AVG[price] FROM Book] ORDER BY title;
4 chỉ định những hàng cần truy xuất. Đây là xấp xỉ phép toán chọn đại số quan hệSELECT isbn, title, price FROM Book WHERE price < [SELECT AVG[price] FROM Book] ORDER BY title;
5 nhóm các hàng chia sẻ một thuộc tính để có thể áp dụng hàm tổng hợp cho từng nhómSELECT isbn, title, price FROM Book WHERE price < [SELECT AVG[price] FROM Book] ORDER BY title;
6 chọn trong số các nhóm được xác định bởi mệnh đề GROUP BYSELECT isbn, title, price FROM Book WHERE price < [SELECT AVG[price] FROM Book] ORDER BY title;
7 chỉ định cách sắp xếp các hàng được trả về
Tổng quan[sửa]
SELECT isbn, title, price, price * 0.06 AS sales_tax FROM Book WHERE price > 100.00 ORDER BY title;8 là hoạt động phổ biến nhất trong SQL, được gọi là "truy vấn".
SELECT isbn, title, price, price * 0.06 AS sales_tax FROM Book WHERE price > 100.00 ORDER BY title;8 lấy dữ liệu từ một hoặc nhiều bảng hoặc biểu thức. Các câu lệnh
SELECT isbn, title, price, price * 0.06 AS sales_tax FROM Book WHERE price > 100.00 ORDER BY title;8 tiêu chuẩn không có tác dụng liên tục trên cơ sở dữ liệu. Một số cách triển khai không theo tiêu chuẩn của
SELECT isbn, title, price, price * 0.06 AS sales_tax FROM Book WHERE price > 100.00 ORDER BY title;8 có thể có tác động liên tục, chẳng hạn như cú pháp
SELECT isbn, title, price, price * 0.06 AS sales_tax FROM Book WHERE price > 100.00 ORDER BY title;42 được cung cấp trong một số cơ sở dữ liệu
Các truy vấn cho phép người dùng mô tả dữ liệu mong muốn, để hệ thống quản lý cơ sở dữ liệu [DBMS] thực hiện việc lập kế hoạch, tối ưu hóa và thực hiện các hoạt động vật lý cần thiết để tạo ra kết quả đó khi nó chọn.
Một truy vấn bao gồm một danh sách các cột để đưa vào kết quả cuối cùng, thường ngay sau từ khóa
SELECT isbn, title, price, price * 0.06 AS sales_tax FROM Book WHERE price > 100.00 ORDER BY title;8. Dấu hoa thị ["
SELECT isbn, title, price, price * 0.06 AS sales_tax FROM Book WHERE price > 100.00 ORDER BY title;44"] có thể được sử dụng để xác định rằng truy vấn sẽ trả về tất cả các cột của bảng được truy vấn.
SELECT isbn, title, price, price * 0.06 AS sales_tax FROM Book WHERE price > 100.00 ORDER BY title;8 là câu lệnh phức tạp nhất trong SQL, với các từ khóa và mệnh đề tùy chọn bao gồm
- Mệnh đề
SELECT isbn, title, price FROM Book WHERE price < [SELECT AVG[price] FROM Book] ORDER BY title;
3, cho biết [các] bảng để truy xuất dữ liệu từ. Mệnh đềSELECT isbn, title, price, price * 0.06 AS sales_tax FROM Book WHERE price > 100.00 ORDER BY title;
47 có thể bao gồm các mệnh đề phụSELECT isbn, title, price, price * 0.06 AS sales_tax FROM Book WHERE price > 100.00 ORDER BY title;
48 tùy chọn để chỉ định quy tắc nối các bảng - Mệnh đề
SELECT isbn, title, price FROM Book WHERE price < [SELECT AVG[price] FROM Book] ORDER BY title;
4 bao gồm một vị từ so sánh, giới hạn các hàng được trả về bởi truy vấn. Mệnh đềSELECT isbn, title, price, price * 0.06 AS sales_tax FROM Book WHERE price > 100.00 ORDER BY title;
20 loại bỏ tất cả các hàng khỏi tập kết quả mà vị từ so sánh không đánh giá là True - Mệnh đề
SELECT isbn, title, price, price * 0.06 AS sales_tax FROM Book WHERE price > 100.00 ORDER BY title;
21 chiếu các hàng có giá trị chung thành một tập hợp các hàng nhỏ hơn.SELECT isbn, title, price, price * 0.06 AS sales_tax FROM Book WHERE price > 100.00 ORDER BY title;
21 thường được sử dụng cùng với các hàm tổng hợp SQL hoặc để loại bỏ các hàng trùng lặp khỏi tập kết quả. Mệnh đềSELECT isbn, title, price, price * 0.06 AS sales_tax FROM Book WHERE price > 100.00 ORDER BY title;
20 được áp dụng trước mệnh đềSELECT isbn, title, price, price * 0.06 AS sales_tax FROM Book WHERE price > 100.00 ORDER BY title;
21 - Mệnh đề
SELECT isbn, title, price FROM Book WHERE price < [SELECT AVG[price] FROM Book] ORDER BY title;
6 bao gồm một vị từ được sử dụng để lọc các hàng xuất phát từ mệnh đềSELECT isbn, title, price, price * 0.06 AS sales_tax FROM Book WHERE price > 100.00 ORDER BY title;
21. Bởi vì nó tác động lên kết quả của mệnh đề ________ 221, các hàm tổng hợp có thể được sử dụng trong vị ngữ mệnh đề ________ 228 - Mệnh đề
SELECT isbn, title, price FROM Book WHERE price < [SELECT AVG[price] FROM Book] ORDER BY title;
7 xác định [các] cột nào sẽ được sử dụng để sắp xếp dữ liệu kết quả và hướng sắp xếp chúng [tăng dần hoặc giảm dần]. Không có mệnh đềSELECT isbn, title, price FROM Book WHERE price < [SELECT AVG[price] FROM Book] ORDER BY title;
20, thứ tự các hàng được truy vấn SQL trả về sẽ không được xác định - Từ khóa
SELECT isbn, title, price FROM Book WHERE price < [SELECT AVG[price] FROM Book] ORDER BY title;
21 loại bỏ dữ liệu trùng lặp
Ví dụ sau về truy vấn
SELECT isbn, title, price, price * 0.06 AS sales_tax FROM Book WHERE price > 100.00 ORDER BY title;8 trả về danh sách sách đắt tiền. Truy vấn truy xuất tất cả các hàng từ bảng Sách trong đó cột giá chứa giá trị lớn hơn 100. 00. Kết quả được sắp xếp theo thứ tự tăng dần theo tiêu đề. Dấu hoa thị [*] trong danh sách chọn cho biết rằng tất cả các cột của bảng Sách phải được bao gồm trong tập kết quả
SELECT isbn, title, price FROM Book WHERE price < [SELECT AVG[price] FROM Book] ORDER BY title;5
Ví dụ bên dưới minh họa một truy vấn gồm nhiều bảng, nhóm và tổng hợp bằng cách trả về danh sách sách và số lượng tác giả được liên kết với mỗi cuốn sách
SELECT isbn, title, price FROM Book WHERE price < [SELECT AVG[price] FROM Book] ORDER BY title;6
Đầu ra ví dụ có thể giống như sau
SELECT isbn, title, price FROM Book WHERE price < [SELECT AVG[price] FROM Book] ORDER BY title;7
Với điều kiện tiên quyết là isbn là tên cột chung duy nhất của hai bảng và cột có tên title chỉ tồn tại trong bảng Book, người ta có thể viết lại truy vấn trên theo mẫu sau
SELECT isbn, title, price FROM Book WHERE price < [SELECT AVG[price] FROM Book] ORDER BY title;8
Tuy nhiên, nhiều nhà cung cấp [quantify] không hỗ trợ phương pháp này hoặc yêu cầu các quy ước đặt tên cột nhất định để các liên kết tự nhiên hoạt động hiệu quả
SQL bao gồm các toán tử và hàm để tính giá trị trên các giá trị được lưu trữ. SQL cho phép sử dụng các biểu thức trong danh sách chọn để chiếu dữ liệu, như trong ví dụ sau, trả về danh sách sách có giá hơn 100. 00 với cột sales_tax bổ sung chứa số liệu thuế bán hàng được tính bằng 6% giá
SELECT isbn, title, price, price * 0.06 AS sales_tax FROM Book WHERE price > 100.00 ORDER BY title;
Truy vấn phụ[sửa]
Các truy vấn có thể được lồng vào nhau để kết quả của một truy vấn có thể được sử dụng trong một truy vấn khác thông qua toán tử quan hệ hoặc hàm tổng hợp. Truy vấn lồng nhau còn được gọi là truy vấn con. Trong khi phép nối và các thao tác bảng khác mang lại khả năng tính toán vượt trội [i. e. nhanh hơn] trong nhiều trường hợp, việc sử dụng các truy vấn con giới thiệu một hệ thống phân cấp trong thực thi có thể hữu ích hoặc cần thiết. Trong ví dụ sau, hàm tổng hợp
SELECT isbn, title, price FROM Book WHERE price < [SELECT AVG[price] FROM Book] ORDER BY title;23 nhận đầu vào là kết quả của truy vấn con
SELECT isbn, title, price FROM Book WHERE price < [SELECT AVG[price] FROM Book] ORDER BY title;
Truy vấn con có thể sử dụng các giá trị từ truy vấn bên ngoài, trong trường hợp đó nó được gọi là truy vấn con tương quan
Kể từ năm 1999, tiêu chuẩn SQL cho phép các truy vấn con được đặt tên gọi là các biểu thức bảng chung [được đặt tên và thiết kế sau khi triển khai IBM DB2 phiên bản 2; Oracle gọi các truy vấn con này là bao thanh toán]. CTE cũng có thể được đệ quy bằng cách tham chiếu đến chính chúng;
Bảng dẫn xuất[sửa]
Bảng dẫn xuất là việc sử dụng tham chiếu truy vấn con SQL trong mệnh đề TỪ. Về cơ bản, bảng dẫn xuất là một truy vấn con có thể được chọn từ hoặc nối với. Chức năng bảng dẫn xuất cho phép người dùng tham chiếu truy vấn con dưới dạng bảng. Bảng dẫn xuất còn được gọi là dạng xem nội tuyến hoặc dạng chọn trong danh sách
Trong ví dụ sau, câu lệnh SQL liên quan đến phép nối từ bảng Sách ban đầu sang bảng dẫn xuất "Bán hàng". Bảng dẫn xuất này nắm bắt thông tin bán sách được liên kết bằng cách sử dụng ISBN để nối với bảng Sách. Do đó, bảng dẫn xuất cung cấp tập kết quả với các cột bổ sung [số lượng mặt hàng đã bán và công ty đã bán sách]
SELECT isbn, title, price, price * 0.06 AS sales_tax FROM Book WHERE price > 100.00 ORDER BY title;4
Các ví dụ[sửa]
Bảng "T"QueryResult____324SELECT isbn, title, price FROM Book WHERE price < [SELECT AVG[price] FROM Book] ORDER BY title;25
SELECT isbn, title, price FROM Book WHERE price < [SELECT AVG[price] FROM Book] ORDER BY title;26
SELECT isbn, title, price FROM Book WHERE price < [SELECT AVG[price] FROM Book] ORDER BY title;27không tồn tại
SELECT isbn, title, price FROM Book WHERE price < [SELECT AVG[price] FROM Book] ORDER BY title;28
Đưa ra một bảng T, truy vấn
SELECT isbn, title, price FROM Book WHERE price < [SELECT AVG[price] FROM Book] ORDER BY title;29 sẽ dẫn đến tất cả các phần tử của tất cả các hàng của bảng được hiển thị
Với cùng một bảng, truy vấn
SELECT isbn, title, price, price * 0.06 AS sales_tax FROM Book WHERE price > 100.00 ORDER BY title;90 sẽ dẫn đến các phần tử từ cột C1 của tất cả các hàng của bảng được hiển thị. Điều này tương tự như phép chiếu trong đại số quan hệ, ngoại trừ trong trường hợp chung, kết quả có thể chứa các hàng trùng lặp. Điều này còn được gọi là Phân vùng dọc trong một số thuật ngữ cơ sở dữ liệu, hạn chế đầu ra truy vấn để chỉ xem các trường hoặc cột được chỉ định
Với cùng một bảng, truy vấn
SELECT isbn, title, price, price * 0.06 AS sales_tax FROM Book WHERE price > 100.00 ORDER BY title;91 sẽ dẫn đến tất cả các phần tử của tất cả các hàng có giá trị của cột C1 là '1' được hiển thị – theo thuật ngữ đại số quan hệ, một lựa chọn sẽ được thực hiện do mệnh đề WHERE. Đây còn được gọi là Phân vùng ngang, hạn chế các hàng xuất ra theo truy vấn theo các điều kiện đã chỉ định
Với nhiều hơn một bảng, tập hợp kết quả sẽ là mọi kết hợp của các hàng. Vì vậy, nếu hai bảng là T1 và T2, thì
SELECT isbn, title, price, price * 0.06 AS sales_tax FROM Book WHERE price > 100.00 ORDER BY title;92 sẽ dẫn đến mọi sự kết hợp của các hàng T1 với mọi hàng T2. e. g. , nếu T1 có 3 hàng và T2 có 5 hàng thì sẽ có 15 hàng
Mặc dù không theo tiêu chuẩn, nhưng hầu hết các DBMS đều cho phép sử dụng mệnh đề chọn mà không có bảng bằng cách giả sử rằng một bảng tưởng tượng có một hàng được sử dụng. Điều này chủ yếu được sử dụng để thực hiện các phép tính khi không cần bảng
Mệnh đề SELECT chỉ định danh sách thuộc tính [cột] theo tên hoặc ký tự đại diện [“*”] có nghĩa là “tất cả thuộc tính”
Giới hạn các hàng kết quả[sửa]
Thường thì thuận tiện để chỉ ra số lượng hàng tối đa được trả về. Điều này có thể được sử dụng để kiểm tra hoặc để ngăn chặn việc tiêu thụ quá nhiều tài nguyên nếu truy vấn trả về nhiều thông tin hơn mong đợi. Cách tiếp cận để làm điều này thường thay đổi theo từng nhà cung cấp
Trong ISO SQL. 2003, các tập kết quả có thể bị giới hạn bằng cách sử dụng
ISO SQL. 2008 giới thiệu điều khoản
SELECT isbn, title, price, price * 0.06 AS sales_tax FROM Book WHERE price > 100.00 ORDER BY title;93
Theo PostgreSQL v. 9, một hàm cửa sổ SQL "thực hiện phép tính trên một tập hợp các hàng của bảng có liên quan nào đó đến hàng hiện tại", theo cách tương tự như các hàm tổng hợp. Tên gọi lại các chức năng của cửa sổ xử lý tín hiệu. Lệnh gọi hàm cửa sổ luôn chứa mệnh đề QUÁ
Hàm cửa sổ ROW_NUMBER[][sửa]
SELECT isbn, title, price, price * 0.06 AS sales_tax FROM Book WHERE price > 100.00 ORDER BY title;94 có thể được sử dụng cho một bảng đơn giản trên các hàng được trả lại, e. g. để trả lại không quá mười hàng
SELECT isbn, title, price, price * 0.06 AS sales_tax FROM Book WHERE price > 100.00 ORDER BY title;2
ROW_NUMBER có thể không xác định. nếu sort_key không phải là duy nhất, mỗi lần bạn chạy truy vấn, có thể nhận được các số hàng khác nhau được gán cho bất kỳ hàng nào có sort_key giống nhau. Khi sort_key là duy nhất, mỗi hàng sẽ luôn nhận được một số hàng duy nhất
Hàm cửa sổ RANK[][sửa]
Hàm cửa sổ
SELECT isbn, title, price, price * 0.06 AS sales_tax FROM Book WHERE price > 100.00 ORDER BY title;95 hoạt động như ROW_NUMBER, nhưng có thể trả về nhiều hơn hoặc ít hơn n hàng trong trường hợp có điều kiện ràng buộc, e. g. trả lại top 10 người trẻ nhất
SELECT isbn, title, price FROM Book WHERE price < [SELECT AVG[price] FROM Book] ORDER BY title;2
Đoạn mã trên có thể trả về hơn mười hàng, e. g. nếu có hai người cùng tuổi, nó có thể trả về mười một hàng
FETCH FIRST khoản [ chỉnh sửa ]
Vì ISO SQL. Giới hạn kết quả năm 2008 có thể được chỉ định như trong ví dụ sau bằng cách sử dụng mệnh đề
SELECT isbn, title, price, price * 0.06 AS sales_tax FROM Book WHERE price > 100.00 ORDER BY title;93
SELECT isbn, title, price, price * 0.06 AS sales_tax FROM Book WHERE price > 100.00 ORDER BY title;9
Điều khoản này hiện được hỗ trợ bởi CA DATACOM/DB 11, IBM DB2, SAP SQL Anywhere, PostgreSQL, EffiProz, H2, HSQLDB phiên bản 2. 0, Oracle 12c và Mimer SQL
Microsoft SQL Server 2008 trở lên , nhưng nó được coi là một phần của mệnh đề
SELECT isbn, title, price FROM Book WHERE price < [SELECT AVG[price] FROM Book] ORDER BY title;20. Các mệnh đề
SELECT isbn, title, price FROM Book WHERE price < [SELECT AVG[price] FROM Book] ORDER BY title;20,
SELECT isbn, title, price FROM Book WHERE price < [SELECT AVG[price] FROM Book] ORDER BY title;600 và
SELECT isbn, title, price, price * 0.06 AS sales_tax FROM Book WHERE price > 100.00 ORDER BY title;93 đều được yêu cầu cho cách sử dụng này
SELECT isbn, title, price FROM Book WHERE price < [SELECT AVG[price] FROM Book] ORDER BY title;60
Cú pháp không chuẩn[sửa]
Một số DBMS cung cấp cú pháp không chuẩn thay vì hoặc bổ sung cho cú pháp chuẩn SQL. Dưới đây, các biến thể của truy vấn giới hạn đơn giản cho các DBMS khác nhau được liệt kê
Rows Pagination là một cách tiếp cận được sử dụng để giới hạn và chỉ hiển thị một phần của tổng dữ liệu của một truy vấn trong cơ sở dữ liệu. Thay vì hiển thị hàng trăm hoặc hàng nghìn hàng cùng lúc, máy chủ chỉ được yêu cầu một trang [một nhóm hàng giới hạn, mỗi ví dụ chỉ có 10 hàng] và người dùng bắt đầu điều hướng bằng cách yêu cầu trang tiếp theo rồi đến trang tiếp theo . Nó rất hữu ích, đặc biệt trong các hệ thống web, nơi không có kết nối riêng giữa máy khách và máy chủ, vì vậy máy khách không phải đợi để đọc và hiển thị tất cả các hàng của máy chủ
SELECT isbn, title, price FROM Book WHERE price < [SELECT AVG[price] FROM Book] ORDER BY title;
602 = Số hàng trong một trangSELECT isbn, title, price FROM Book WHERE price < [SELECT AVG[price] FROM Book] ORDER BY title;
603 = Số của trang hiện tạiSELECT isbn, title, price FROM Book WHERE price < [SELECT AVG[price] FROM Book] ORDER BY title;
604 = Số hàng - 1 nơi trang bắt đầu = [page_number-1] * hàng
Phương pháp đơn giản nhất [nhưng rất kém hiệu quả][sửa]
- Chọn tất cả các hàng từ cơ sở dữ liệu
- Đọc tất cả các hàng nhưng chỉ gửi để hiển thị khi row_number của các hàng đã đọc nằm trong khoảng từ
SELECT isbn, title, price FROM Book WHERE price < [SELECT AVG[price] FROM Book] ORDER BY title;
605 đếnSELECT isbn, title, price FROM Book WHERE price < [SELECT AVG[price] FROM Book] ORDER BY title;
606
SELECT isbn, title, price FROM Book WHERE price < [SELECT AVG[price] FROM Book] ORDER BY title;61
Phương pháp đơn giản khác [hiệu quả hơn một chút so với đọc tất cả các hàng][sửa]
- Chọn tất cả các hàng từ đầu bảng đến hàng cuối cùng để hiển thị [
SELECT isbn, title, price FROM Book WHERE price < [SELECT AVG[price] FROM Book] ORDER BY title;
606] - Đọc các hàng
SELECT isbn, title, price FROM Book WHERE price < [SELECT AVG[price] FROM Book] ORDER BY title;
606 nhưng chỉ gửi để hiển thị khi row_number của các hàng đã đọc lớn hơnSELECT isbn, title, price FROM Book WHERE price < [SELECT AVG[price] FROM Book] ORDER BY title;
604
SELECT isbn, title, price FROM Book WHERE price < [SELECT AVG[price] FROM Book] ORDER BY title;62SQL ANSI 2008
PostgreSQL
SQL Server 2012
Derby
Oracle 12c
DB2 12
Mimer SQL
SELECT isbn, title, price FROM Book WHERE price < [SELECT AVG[price] FROM Book] ORDER BY title;63MySQL
SQLite
SELECT isbn, title, price FROM Book WHERE price < [SELECT AVG[price] FROM Book] ORDER BY title;64Máy chủ SQL 2005
SELECT isbn, title, price FROM Book WHERE price < [SELECT AVG[price] FROM Book] ORDER BY title;65Cơ sở dữ liệu, Máy chủ SQL 2000
SELECT isbn, title, price FROM Book WHERE price < [SELECT AVG[price] FROM Book] ORDER BY title;66tiên tri 11
Phương pháp định vị[sửa]
- Chỉ chọn các hàng
SELECT isbn, title, price FROM Book WHERE price < [SELECT AVG[price] FROM Book] ORDER BY title;
602 bắt đầu từ hàng tiếp theo để hiển thị [SELECT isbn, title, price FROM Book WHERE price < [SELECT AVG[price] FROM Book] ORDER BY title;
605] - Đọc và gửi để hiển thị tất cả các hàng đã đọc từ cơ sở dữ liệu
SELECT isbn, title, price FROM Book WHERE price < [SELECT AVG[price] FROM Book] ORDER BY title;67SQL ANSI 2008
PostgreSQL
SQL Server 2012
Derby
Oracle
DB2 12
Mimer SQL
SELECT isbn, title, price FROM Book WHERE price < [SELECT AVG[price] FROM Book] ORDER BY title;68MySQL
MariaDB
PostgreSQL
SQLite
SELECT isbn, title, price FROM Book WHERE price < [SELECT AVG[price] FROM Book] ORDER BY title;69MySQL
MariaDB
SQLite
SELECT isbn, title, price FROM Book WHERE price < [SELECT AVG[price] FROM Book] ORDER BY title;70Cơ sở dữ liệu 12. 5. 3
SELECT isbn, title, price FROM Book WHERE price < [SELECT AVG[price] FROM Book] ORDER BY title;71Cơ sở dữ liệu 12. 5. 2
SELECT isbn, title, price FROM Book WHERE price < [SELECT AVG[price] FROM Book] ORDER BY title;72Máy chủ SQL 2005
SELECT isbn, title, price FROM Book WHERE price < [SELECT AVG[price] FROM Book] ORDER BY title;73
SELECT isbn, title, price FROM Book WHERE price < [SELECT AVG[price] FROM Book] ORDER BY title;74tiên tri 11
- Chỉ chọn sau đó
SELECT isbn, title, price FROM Book WHERE price < [SELECT AVG[price] FROM Book] ORDER BY title;
602 hàng có bộ lọc- Trang đầu tiên. chỉ chọn các hàng
SELECT isbn, title, price FROM Book WHERE price < [SELECT AVG[price] FROM Book] ORDER BY title;
602 đầu tiên, tùy thuộc vào loại cơ sở dữ liệu - Trang tiếp theo. chỉ chọn các hàng
SELECT isbn, title, price FROM Book WHERE price < [SELECT AVG[price] FROM Book] ORDER BY title;
602 đầu tiên, tùy thuộc vào loại cơ sở dữ liệu, trong đóSELECT isbn, title, price FROM Book WHERE price < [SELECT AVG[price] FROM Book] ORDER BY title;
615 lớn hơnSELECT isbn, title, price FROM Book WHERE price < [SELECT AVG[price] FROM Book] ORDER BY title;
616 [giá trị củaSELECT isbn, title, price FROM Book WHERE price < [SELECT AVG[price] FROM Book] ORDER BY title;
615 của hàng cuối cùng trong trang hiện tại] - Trang trước. sắp xếp dữ liệu theo thứ tự ngược lại, chỉ chọn các hàng
SELECT isbn, title, price FROM Book WHERE price < [SELECT AVG[price] FROM Book] ORDER BY title;
602 đầu tiên, trong đóSELECT isbn, title, price FROM Book WHERE price < [SELECT AVG[price] FROM Book] ORDER BY title;
615 nhỏ hơnSELECT isbn, title, price FROM Book WHERE price < [SELECT AVG[price] FROM Book] ORDER BY title;
620 [giá trị củaSELECT isbn, title, price FROM Book WHERE price < [SELECT AVG[price] FROM Book] ORDER BY title;
615 của hàng đầu tiên trong trang hiện tại] và sắp xếp kết quả theo đúng thứ tự
- Trang đầu tiên. chỉ chọn các hàng
- Đọc và gửi để hiển thị tất cả các hàng đã đọc từ cơ sở dữ liệu
SELECT isbn, title, price FROM Book WHERE price < [SELECT AVG[price] FROM Book] ORDER BY title;75
SELECT isbn, title, price FROM Book WHERE price < [SELECT AVG[price] FROM Book] ORDER BY title;76
SELECT isbn, title, price FROM Book WHERE price < [SELECT AVG[price] FROM Book] ORDER BY title;77SQL ANSI 2008
PostgreSQL
SQL Server 2012
Derby
Oracle
DB2 12
Mimer SQL
SELECT isbn, title, price FROM Book WHERE price < [SELECT AVG[price] FROM Book] ORDER BY title;78
SELECT isbn, title, price FROM Book WHERE price < [SELECT AVG[price] FROM Book] ORDER BY title;79
SELECT isbn, title, price FROM Book WHERE price < [SELECT AVG[price] FROM Book] ORDER BY title;80MySQL
SQLite
SELECT isbn, title, price FROM Book WHERE price < [SELECT AVG[price] FROM Book] ORDER BY title;81
SELECT isbn, title, price FROM Book WHERE price < [SELECT AVG[price] FROM Book] ORDER BY title;82
SELECT isbn, title, price FROM Book WHERE price < [SELECT AVG[price] FROM Book] ORDER BY title;83Máy chủ SQL 2005
SELECT isbn, title, price FROM Book WHERE price < [SELECT AVG[price] FROM Book] ORDER BY title;84
SELECT isbn, title, price FROM Book WHERE price < [SELECT AVG[price] FROM Book] ORDER BY title;85
SELECT isbn, title, price FROM Book WHERE price < [SELECT AVG[price] FROM Book] ORDER BY title;86Cơ sở dữ liệu, Máy chủ SQL 2000
SELECT isbn, title, price FROM Book WHERE price < [SELECT AVG[price] FROM Book] ORDER BY title;87
SELECT isbn, title, price FROM Book WHERE price < [SELECT AVG[price] FROM Book] ORDER BY title;88
SELECT isbn, title, price FROM Book WHERE price < [SELECT AVG[price] FROM Book] ORDER BY title;89tiên tri 11
Truy vấn phân cấp[sửa]
Một số cơ sở dữ liệu cung cấp cú pháp chuyên biệt cho dữ liệu phân cấp
Hàm cửa sổ trong SQL. 2003 là một hàm tổng hợp được áp dụng cho một phân vùng của tập kết quả
Ví dụ,
SELECT isbn, title, price, price * 0.06 AS sales_tax FROM Book WHERE price > 100.00 ORDER BY title;0
tính tổng dân số của tất cả các hàng có cùng giá trị thành phố với hàng hiện tại
Các phân vùng được chỉ định bằng cách sử dụng mệnh đề OVER để sửa đổi tổng hợp. cú pháp
SELECT isbn, title, price, price * 0.06 AS sales_tax FROM Book WHERE price > 100.00 ORDER BY title;1
Mệnh đề OVER có thể phân vùng và sắp xếp thứ tự tập kết quả. Thứ tự được sử dụng cho các chức năng liên quan đến thứ tự, chẳng hạn như row_number
Đánh giá truy vấn ANSI[sửa]
Quá trình xử lý câu lệnh CHỌN theo ANSI SQL sẽ như sau
SELECT isbn, title, price, price * 0.06 AS sales_tax FROM Book WHERE price > 100.00 ORDER BY title;
2- mệnh đề TỪ được đánh giá, một phép nối chéo hoặc tích Descartes được tạo cho hai bảng đầu tiên trong mệnh đề TỪ dẫn đến một bảng ảo là Vtable1
- mệnh đề ON được đánh giá cho vtable1; . Tên người dùng = u. Userid được chèn vào Vtable2
- Nếu một liên kết bên ngoài được chỉ định, các bản ghi đã bị xóa khỏi vTable2 sẽ được thêm vào VTable 3, chẳng hạn nếu truy vấn trên là
SELECT isbn, title, price, price * 0.06 AS sales_tax FROM Book WHERE price > 100.00 ORDER BY title;
3tất cả người dùng không thuộc bất kỳ nhóm nào sẽ được thêm lại vào Vtable3 - mệnh đề WHERE được đánh giá, trong trường hợp này chỉ thông tin nhóm cho người dùng John Smith mới được thêm vào vTable4
- GROUP BY được đánh giá;
SELECT isbn, title, price, price * 0.06 AS sales_tax FROM Book WHERE price > 100.00 ORDER BY title;
4vTable5 sẽ bao gồm các thành viên được trả về từ vTable4 được sắp xếp theo nhóm, trong trường hợp này là GroupName - mệnh đề HAVING được đánh giá cho các nhóm mà mệnh đề HAVING là đúng và được chèn vào vTable6. Ví dụ
SELECT isbn, title, price, price * 0.06 AS sales_tax FROM Book WHERE price > 100.00 ORDER BY title;
5 - danh sách CHỌN được đánh giá và trả về dưới dạng Vtable 7
- mệnh đề DISTINCT được đánh giá;
- mệnh đề ORDER BY được đánh giá, sắp xếp thứ tự các hàng và trả về VCursor9. Đây là con trỏ chứ không phải bảng vì ANSI định nghĩa con trỏ là một tập hợp các hàng được sắp xếp theo thứ tự [không quan hệ]
Hỗ trợ chức năng cửa sổ bởi các nhà cung cấp RDBMS[sửa | sửa mã nguồn]
Việc triển khai các tính năng chức năng cửa sổ của các nhà cung cấp cơ sở dữ liệu quan hệ và công cụ SQL rất khác nhau. Hầu hết các cơ sở dữ liệu đều hỗ trợ ít nhất một số chức năng của cửa sổ. Tuy nhiên, khi chúng ta xem xét kỹ hơn thì rõ ràng là hầu hết các nhà cung cấp chỉ triển khai một tập hợp con của tiêu chuẩn. Hãy lấy mệnh đề RANGE mạnh mẽ làm ví dụ. Chỉ Oracle, DB2, Spark/Hive và Google Big Query mới triển khai đầy đủ tính năng này. Gần đây hơn, các nhà cung cấp đã thêm các tiện ích mở rộng mới vào tiêu chuẩn, e. g. hàm tổng hợp mảng. Chúng đặc biệt hữu ích trong bối cảnh chạy SQL dựa trên hệ thống tệp phân tán [Hadoop, Spark, Google BigQuery], nơi chúng tôi có các đảm bảo về đồng địa phương dữ liệu yếu hơn so với trên cơ sở dữ liệu quan hệ phân tán [MPP]. Thay vì phân phối đồng đều dữ liệu trên tất cả các nút, các công cụ SQL chạy truy vấn đối với hệ thống tệp phân tán có thể đạt được sự đảm bảo về đồng cục bộ dữ liệu bằng cách lồng dữ liệu và do đó tránh được các kết nối tốn kém tiềm ẩn liên quan đến việc xáo trộn nhiều trên mạng. Các hàm tổng hợp do người dùng xác định có thể được sử dụng trong các hàm cửa sổ là một tính năng cực kỳ mạnh mẽ khác