Ngôn ngữ hỏi có cấu trúc còn có tên gọi khác là gì

Khi bạn muốn truy xuất dữ liệu từ cơ sở dữ liệu, bạn sẽ yêu cầu dữ liệu bằng ngôn ngữ truy vấn có cấu trúc hoặc SQL. SQL là một ngôn ngữ máy tính gần giống với tiếng Anh nhưng các chương trình cơ sở dữ liệu hiểu rõ. Mỗi truy vấn mà bạn chạy sử dụng SQL đằng sau hậu trường.

Tìm hiểu cách SQL Works có thể giúp bạn tạo các truy vấn tốt hơn và có thể giúp bạn hiểu rõ hơn về cách khắc phục truy vấn không trả về kết quả mà bạn muốn.

Đây là bài viết nằm trong tập hợp các bài viết về SQL trong Access. Bài viết này mô tả việc sử dụng cơ bản của SQL để chọn dữ liệu và sử dụng các ví dụ để minh họa cú pháp SQL.

SQL là ngôn ngữ máy tính để làm việc với bộ dữ liệu và mối quan hệ giữa chúng. Các chương trình cơ sở dữ liệu quan hệ, chẳng hạn như Microsoft Office Access, sử dụng SQL để làm việc với dữ liệu. Không giống như nhiều ngôn ngữ máy tính, SQL không phải là khó đọc và hiểu được, ngay cả đối với người mới. Giống như nhiều ngôn ngữ máy tính, SQL là một tiêu chuẩn quốc tế được nhận ra bởi các cơ quan tiêu chuẩn chẳng hạn như ISO và ANSI.

Bạn sử dụng SQL để mô tả bộ dữ liệu có thể giúp bạn trả lời các câu hỏi. Khi bạn dùng SQL, bạn phải sử dụng đúng cú pháp. Cú pháp là tập hợp các quy tắc mà theo đó các phần tử của một ngôn ngữ đều được kết hợp chính xác. Cú pháp SQL dựa trên cú pháp tiếng Anh và sử dụng nhiều thành phần giống như cú pháp Visual Basic for Applications [VBA].

Ví dụ, một câu lệnh SQL đơn giản truy xuất danh sách các tên cuối cùng cho các liên hệ có tên là Mary có thể trông giống như thế này:

SELECT Last_NameFROM ContactsWHERE First_Name = 'Mary';

Lưu ý: SQL không chỉ được sử dụng để thao tác dữ liệu, mà còn để tạo và thay đổi việc thiết kế các đối tượng cơ sở dữ liệu, chẳng hạn như bảng. Phần SQL được dùng để tạo và thay đổi các đối tượng cơ sở dữ liệu được gọi là ngôn ngữ định nghĩa dữ liệu [DDL]. Chủ đề này không bao gồm DDL. Để biết thêm thông tin, hãy xem bài viết tạo hoặc sửa đổi bảng hoặc chỉ mục bằng cách sử dụng truy vấn định nghĩa dữ liệu.

Để mô tả một bộ dữ liệu bằng cách sử dụng SQL, bạn viết một câu lệnh SELECT. Một câu lệnh SELECT chứa mô tả đầy đủ của một tập hợp dữ liệu mà bạn muốn lấy từ cơ sở dữ liệu. Điều này bao gồm các thao tác sau:

  • Những bảng nào có chứa dữ liệu.

  • Cách thức liên quan đến dữ liệu từ các nguồn khác nhau.

  • Các trường hoặc phép tính sẽ tạo ra dữ liệu.

  • Tiêu chí mà dữ liệu phải phù hợp để được đưa vào.

  • Cho dù và cách sắp xếp kết quả.

Cũng giống như một câu, câu lệnh SQL có mệnh đề. Mỗi mệnh đề sẽ thực hiện một hàm cho câu lệnh SQL. Một số mệnh đề được bắt buộc trong một câu lệnh SELECT. Bảng sau đây liệt kê các mệnh đề SQL phổ biến nhất.

Mệnh đề SQL

Tính năng của chúng

Bắt buộc

CHỌN

Liệt kê tất cả các trường có dữ liệu đáng quan tâm.

TỪ

Liệt kê các bảng có các trường được liệt kê trong mệnh đề SELECT.

VỊ TRÍ

Chỉ rõ các tiêu chí mà trường phải đáp ứng theo từng bản ghi được đưa vào kết quả.

Không

SẮP XẾP THEO

Chỉ rõ cách sắp xếp kết quả.

Không

GROUP BY

Trong một câu lệnh SQL có các hàm tổng hợp, nó liệt kê các trường không được tóm tắt trong mệnh đề SELECT.

Chỉ khi có các trường như

ĐANG CÓ

Trong một câu lệnh SQL có các hàm tổng hợp, nó chỉ rõ các điều kiện áp dụng cho các trường được tóm tắt trong câu lệnh SELECT.

Không

Mỗi mệnh đề SQL bao gồm các thuật ngữ — so sánh với các phần của giọng nói. Bảng sau đây liệt kê các loại thuật ngữ SQL.

Thuật ngữ SQL

Một phần của giọng nói

Định nghĩa

Ví dụ

mã định danh

nguyên

Tên mà bạn sử dụng để xác định một đối tượng cơ sở dữ liệu, chẳng hạn như tên của một trường.

Xem. [Số điện thoại]

toán tử

động từ hoặc trạng từ

Một từ khóa đại diện cho một thao tác hoặc điều chỉnh một thao tác.

AS

hằng

nguyên

Một giá trị không đổi, chẳng hạn như một số hoặc giá trị NULL.

42

biểu thức

tính từ

Một sự kết hợp các mã định danh, toán tử, hằng số và hàm định trị thành một giá trị duy nhất.

>= Products.[Unit Price]

Đầu Trang

Một câu lệnh SQL sẽ có biểu mẫu chung:

SELECT field_1FROM table_1WHERE criterion_1;

Lưu ý: 

  • Truy nhập bỏ qua dấu ngắt dòng trong một câu lệnh SQL. Tuy nhiên, hãy cân nhắc sử dụng một dòng cho mỗi mệnh đề để giúp cải thiện tính dễ đọc của câu lệnh SQL cho chính bạn và những người khác.

  • Mỗi câu lệnh SELECT kết thúc bằng dấu chấm phẩy [;]. Dấu chấm phẩy có thể xuất hiện ở cuối mệnh đề cuối cùng hoặc trên một dòng của chính nó ở phần cuối của câu lệnh SQL.

Sau đây minh họa những gì một câu lệnh SQL cho một truy vấn chọn đơn giản có thể trông giống như trong Access:

1. chọn mệnh đề

2. từ mệnh đề

3. mệnh đề WHERE

Câu lệnh SQL mẫu này đọc "chọn dữ liệu được lưu trữ trong các trường có tên là địa chỉ email và công ty từ bảng có tên liên hệ, đặc biệt là các bản ghi có giá trị của thành phố trường là Seattle."

Hãy xem ví dụ, một mệnh đề mỗi lần, để biết cách làm việc SQL cú pháp.

SELECT [E-mail Address], Company

Đây là mệnh đề SELECT. Nó bao gồm một toán tử [chọn] theo sau là hai mã định danh [[địa chỉ email] và công ty].

Nếu một mã định danh chứa khoảng trắng hoặc ký tự đặc biệt [chẳng hạn như "địa chỉ email"], nó phải được đặt trong dấu ngoặc vuông.

Mệnh đề SELECT không có để nói bảng nào chứa các trường và nó không thể xác định bất kỳ điều kiện nào phải được đáp ứng với dữ liệu cần đưa vào.

Mệnh đề SELECT luôn xuất hiện ở trước mệnh đề FROM trong một câu lệnh SELECT.

FROM Contacts

Đây là mệnh đề FROM. Nó bao gồm một toán tử [từ] tiếp theo là một mã định danh [liên hệ].

Mệnh đề FROM sẽ không liệt kê các trường được chọn.

WHERE City="Seattle"

Đây là mệnh đề WHERE. Nó bao gồm một toán tử [nơi] tiếp theo là một biểu thức [thành phố = "Seattle"].

Lưu ý: Không giống như các mệnh đề SELECT and FROM, mệnh đề WHERE không phải là một thành phần bắt buộc của một câu lệnh SELECT.

Bạn có thể hoàn thành nhiều hành động mà SQL cho phép bạn thực hiện bằng cách dùng chọn, từ và trong đó mệnh đề. Thông tin thêm về cách bạn sử dụng các mệnh đề này được trình bày trong các bài viết bổ sung này:

Đầu Trang

Chẳng hạn như Microsoft Excel, Access cho phép bạn sắp xếp các kết quả truy vấn trong biểu dữ liệu. Bạn cũng có thể chỉ định trong truy vấn mà bạn muốn sắp xếp kết quả khi truy vấn chạy, bằng cách sử dụng mệnh đề ORDER BY. Nếu bạn sử dụng mệnh đề ORDER BY, đây là mệnh đề cuối cùng trong câu lệnh SQL.

Mệnh đề a ORDER BY có chứa một danh sách các trường mà bạn muốn sử dụng để sắp xếp theo cùng thứ tự bạn muốn áp dụng các thao tác sắp xếp.

Ví dụ, giả sử bạn muốn sắp xếp kết quả đầu tiên theo giá trị của công ty trường theo thứ tự giảm dần và — nếu có cùng một giá trị cho công ty — được sắp xếp kế tiếp bởi các giá trị trong địa chỉ email trường theo thứ tự tăng dần. Mệnh đề đơn đặt hàng của bạn sẽ giống như sau:

ORDER BY Company DESC, [E-mail Address]

Lưu ý: Theo mặc định, Access sẽ sắp xếp các giá trị theo thứ tự tăng dần [A-Z, nhỏ nhất đến lớn nhất]. Sử dụng từ khóa DESC để sắp xếp các giá trị theo thứ tự giảm dần thay vào đó.

Để biết thêm thông tin về mệnh đề theo đơn _ hàng, hãy xem thứ tự chủ đề theo mệnhđề.

Đầu Trang

Đôi khi bạn muốn làm việc với dữ liệu tóm tắt, chẳng hạn như tổng doanh thu trong một tháng hoặc các mục đắt tiền nhất trong hàng tồn kho. Để thực hiện điều này, bạn áp dụng hàm tổng hợp cho một trường trong mệnh đề SELECT của bạn. Ví dụ, nếu bạn muốn truy vấn của bạn hiển thị số lượng địa chỉ email được liệt kê cho từng công ty, mệnh đề SELECT của bạn có thể trông giống như sau:

SELECT COUNT[[E-mail Address]], Company

Các hàm tổng hợp mà bạn có thể sử dụng tùy thuộc vào kiểu dữ liệu nằm trong trường hoặc biểu thức mà bạn muốn sử dụng. Để biết thêm thông tin về các hàm tổng hợp sẵn dùng, hãy xem bài viết các hàm tổng hợp SQL.

Khi bạn sử dụng các hàm tổng hợp, bạn thường phải tạo một nhóm theo mệnh đề. Một nhóm theo mệnh đề liệt kê tất cả các trường mà bạn không áp dụng hàm tổng hợp. Nếu bạn áp dụng các hàm tổng hợp cho tất cả các trường trong một truy vấn, bạn không cần phải tạo nhóm theo mệnh đề.

Mệnh đề theo nhóm ngay lập tức sau mệnh đề WHERE, hoặc mệnh đề FROM nếu không có mệnh đề WHERE nào. Một nhóm theo mệnh đề liệt kê các trường khi chúng xuất hiện trong mệnh đề SELECT.

Ví dụ, hãy tiếp tục ví dụ trước đó, nếu mệnh đề SELECT của bạn áp dụng hàm tổng hợp thành [địa chỉ email] nhưng không cho công ty, nhóm của bạn theo mệnh đề sẽ giống như sau:

GROUP BY Company

Để biết thêm thông tin về mệnh đề nhóm theo, hãy xem nhóm chủ đề theo mệnhđề.

Nếu bạn muốn sử dụng tiêu chí để giới hạn kết quả của bạn, nhưng trường mà bạn muốn áp dụng các tiêu chí được dùng trong hàm tổng hợp, bạn không thể sử dụng mệnh đề WHERE. Thay vào đó, bạn sử dụng mệnh đề có. Mệnh đề có hoạt động giống như mệnh đề WHERE, nhưng được dùng cho dữ liệu được tổng hợp.

Ví dụ, giả sử bạn sử dụng hàm AVG [trong đó tính toán giá trị trung bình] với trường đầu tiên trong mệnh đề SELECT của bạn:

SELECT COUNT[[E-mail Address]], Company

Nếu bạn muốn truy vấn hạn chế các kết quả dựa trên giá trị của hàm COUNT đó, bạn không thể sử dụng tiêu chí cho trường đó trong mệnh đề WHERE. Thay vào đó, bạn đặt tiêu chí trong mệnh đề có. Ví dụ, nếu bạn chỉ muốn truy vấn trả về hàng nếu có nhiều địa chỉ email được liên kết với công ty, mệnh đề có thể tương tự như sau:

HAVING COUNT[[E-mail Address]]>1

Lưu ý: Một truy vấn có thể có mệnh đề WHERE và mệnh đề có — tiêu chí cho các trường không được sử dụng trong hàm tổng hợp sẽ đi trong mệnh đề WHERE và tiêu chí cho các trường được dùng với các hàm tổng hợp đi trong mệnh đề có.

Để biết thêm thông tin về mệnh đề có, hãy xem chủ đề có mệnhđề.

Đầu Trang

Khi bạn muốn xem lại tất cả dữ liệu được trả về bởi một số truy vấn chọn tương tự nhau, với tư cách là một bộ kết hợp, bạn sử dụng toán tử UNION.

Toán tử UNION cho phép bạn kết hợp hai câu lệnh SELECT thành một. Câu lệnh SELECT mà bạn kết hợp phải có cùng số trường đầu ra, theo cùng đơn hàng và với cùng một kiểu dữ liệu tương thích. Khi bạn chạy truy vấn, dữ liệu từ mỗi tập hợp các trường tương ứng được kết hợp thành một trường đầu ra, sao cho sản lượng truy vấn có cùng số trường như mỗi câu lệnh Select.

Lưu ý: Để thực hiện truy vấn hợp, kiểu dữ liệu Số và Văn bản là tương thích.

Khi bạn sử dụng toán tử UNION, bạn cũng có thể xác định xem kết quả truy vấn sẽ bao gồm các hàng trùng lặp, nếu có bất kỳ điều nào có sẵn, bằng cách sử dụng từ khóa tất cả.

Cú pháp SQL cơ bản cho một truy vấn hợp kết hợp hai câu lệnh SELECT là như sau:

SELECT field_1FROM table_1UNION [ALL]SELECT field_aFROM table_a;

Ví dụ, giả sử bạn có một bảng có tên là sản phẩm và bảng khác có tên là các dịch vụ. Cả hai bảng đều có các trường chứa tên của sản phẩm hoặc dịch vụ, giá cả, bảo hành hoặc bảo đảm sẵn sàng, và liệu bạn có cung cấp sản phẩm hay dịch vụ riêng biệt hay không. Mặc dù thông tin về lưu trữ bảng sản phẩm và dịch vụ lưu trữ bảng dịch vụ, thông tin cơ bản là giống nhau [liệu một sản phẩm hoặc dịch vụ cụ thể bao gồm lời hứa về chất lượng]. Bạn có thể sử dụng truy vấn hợp, chẳng hạn như sau, để kết hợp bốn trường từ hai bảng:

SELECT name, price, warranty_available, exclusive_offerFROM ProductsUNION ALLSELECT name, price, guarantee_available, exclusive_offerFROM Services;

Để biết thêm thông tin về cách kết hợp câu lệnh chọn bằng cách sử dụng toán tử UNION, hãy xem kết hợp các kết quả của một vài truy vấn chọn bằng cách sử dụng truy vấnhợp.

Đầu Trang

Video liên quan

Chủ Đề