Giới thiệu về Access SQL

Quan trọng:  Bài viết này là dịch máy, hãy xem tuyên bố miễn trừ trách nhiệm. Bạn hãy tìm phiên bản tiếng Anh của bài viết này tại đây để tham khảo.

Khi bạn muốn truy xuất dữ liệu từ cơ sở dữ liệu, bạn yêu cầu dữ liệu bằng cách sử dụng ngôn ngữ truy vấn có cấu trúc, hoặc SQL. SQL là một ngôn ngữ tính chặt chẽ tương tự như tiếng Anh tìm hiểu về chương trình cơ sở dữ liệu. Biết SQL là quan trọng vì mỗi truy vấn trong Microsoft Access sử dụng SQL. Tìm hiểu về cách hoạt động của SQL có thể giúp tạo truy vấn tốt hơn và có thể dễ dàng hơn cho bạn để sửa một truy vấn khi nó không trả về kết quả mà bạn muốn.

Ghi chú: Bạn không thể sửa SQL cho một truy vấn web.

Trong bài viết này

SQL là gì?

Mệnh đề SQL cơ bản: chọn, từ, và vị trí

Sắp xếp kết quả: theo thứ tự

Làm việc với dữ liệu tóm tắt: nhóm theo và HAVING

Kết hợp kết quả truy vấn: UNION

Tìm hiểu thêm về mệnh đề SELECT

Tìm hiểu thêm về mệnh đề FROM

Tìm hiểu thêm về mệnh đề WHERE

SQL là gì?

SQL là một ngôn ngữ máy tính để làm việc với tập dữ liệu và mối quan hệ giữa chúng. Chương trình cơ sở dữ liệu quan hệ, chẳng hạn như quyền truy nhập, hãy dùng SQL để làm việc với dữ liệu. Giống như nhiều máy tính ngôn ngữ, SQL là một chuẩn quốc tế được nhận dạng bởi 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âu hỏi. Khi bạn dùng SQL, bạn phải sử dụng đúng cú pháp. Cú pháp là bộ quy tắc mà các thành phần của một ngôn ngữ được kết hợp chính xác. Cú pháp SQL dựa trên tiếng Anh cú pháp và sử dụng nhiều người cùng một thành phần như Visual Basic for Applications (VBA) cú pháp.

Ví dụ, một câu lệnh SQL đơn giản mà truy xuất danh sách của họ cho liên hệ có tên là Mary có thể giống như sau:

SELECT Last_Name
FROM Contacts
WHERE First_Name = 'Mary';

Ghi chú: SQL không được chỉ dùng cho thao tác với dữ liệu, nhưng để tạo và thay đổi thiết kế của đối tượng cơ sở dữ liệu, chẳng hạn như bảng. Một phần của SQL được dùng để tạo và thay đổi đố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 đề cập 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.

Câu lệnh SELECT

Để mô tả một tập dữ liệu bằng cách dùng SQL, bạn viết một câu lệnh Select. Câu lệnh Select có chứa một mô tả đầy đủ của một tậ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:

  • Bảng nào chứa dữ liệu.

  • Làm thế nào dữ liệu từ nguồn khác nhau liên quan.

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

  • Tiêu chí dữ liệu phải khớp với là bao gồm.

  • Xem và làm thế nào để sắp xếp kết quả.

Mệnh đề SQL

Như một câu, một câu lệnh SQL có mệnh đề. Mệnh đề mỗi thực hiện một hàm cho câu lệnh SQL. Mệnh đề một số được yêu cầu 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

SELECT

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

Có

FROM

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

Có

ĐỊA ĐIỂM

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ư

HAVING

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

Thuật ngữ SQL

Mỗi mệnh đề SQL được bao gồm các thuật ngữ — so sánh với các phần của lời nói. Bảng sau đây liệt kê các kiểu thuật ngữ SQL.

Thuật ngữ SQL

So sánh từ loại

Định nghĩa

Ví dụ

mã định danh

Danh từ

Tên mà bạn 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.

Khách hàng. [Số điện thoại]

toán tử

động từ hoặc phồn thể

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 số

Danh từ

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ệnh đề SQL cơ bản: chọn, từ, và vị trí

Một câu lệnh SQL sẽ đưa vào biểu mẫu chung:

SELECT field_1
FROM table_1
WHERE criterion_1
;

Ghi chú: 

  • Truy nhập bỏ qua các 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 khả năng đọc câu lệnh SQL của bạn cho chính bạn và những người khác.

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

Ví dụ trong Access

Các thao tác sau đây minh họa 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:

Tab đối tượng SQL hiển thị một câu lệnh SELECT

1. mệnh đề SELECT

2. mệnh đề FROM

3. mệnh đề WHERE

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

Hãy nhìn vào ví dụ, một mệnh đề tại một thời điểm, để xem cách cú pháp SQL.

Mệnh đề SELECT

SELECT [E-mail Address], Company

Đây là mệnh đề SELECT. Nó bao gồm các toán tử (chọn) theo sau là hai mã định danh ([E-mail Address] và công ty).

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

Mệnh đề SELECT không có thành 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 phải được thỏa mãn bằng dữ liệu được đư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.

Mệnh đề FROM

FROM Contacts

Đây là mệnh đề FROM. Nó bao gồm các toán tử (từ) theo sau là một mã định danh (liên hệ).

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

Mệnh đề WHERE

WHERE City="Seattle"

Đây là mệnh đề WHERE. Nó bao gồm các toán tử (nơi) theo sau là một biểu thức (City = "Seattle").

Ghi chú: Không giống như chọn và từ mệnh đề, mệnh đề WHERE là không phải là một phần bắt buộc của câu lệnh Select.

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

Tìm hiểu thêm về mệnh đề SELECT

Tìm hiểu thêm về mệnh đề FROM

Tìm hiểu thêm về mệnh đề WHERE

Sắp xếp kết quả: theo thứ tự

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

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

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

ORDER BY Company DESC, [E-mail Address]

Ghi chú: Theo mặc định, Access sắp xếp các giá trị theo thứ tự (A-Z, nhỏ nhất đến lớn nhất). Dùng từ khóa DESC để sắp xếp các giá trị trong thứ tự giảm dần thay vào đó.

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

Đầu trang

Làm việc với dữ liệu tóm tắt: nhóm theo và HAVING

Đô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ốn kém nhất trong một hàng tồn kho. Để thực hiện điều này, bạn áp dụng một hàm tổng hợp cho một trường trong mệnh đề SELECT. Ví dụ, nếu bạn muốn truy vấn của bạn để hiển thị số địa chỉ email được liệt kê cho mỗi công ty, mệnh đề SELECT có thể giống như các thao tác sau:

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

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

Cách xác định các trường không được sử dụng trong một hàm tổng hợp: các nhóm theo mệnh đề

Khi bạn sử dụng hàm tổng hợp, bạn thường cũng phải tạo một mệnh đề GROUP BY. Mệnh đề GROUP BY một danh sách tất cả các trường mà bạn sẽ không áp dụng một 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ó để tạo mệnh đề GROUP BY.

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

Ví dụ, tiếp tục ví dụ trước, nếu mệnh đề SELECT áp dụng một hàm tổng hợp cho [E-mail Address] nhưng không thể với công ty, mệnh đề GROUP BY của bạn sẽ giống như các thao tác sau:

GROUP BY Company

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

Hạn chế các giá trị tổng hợp bằng cách sử dụng nhóm tiêu chí: Các Mệnh đề HAVING

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 tiêu chí được sử dụng trong một hàm tổng hợp, bạn không thể dùng mệnh đề WHERE. Thay vào đó, bạn dùng mệnh đề HAVING. Mệnh đề HAVING hoạt động như một mệnh đề WHERE, nhưng được dùng để tổng hợp dữ liệu.

Ví dụ, giả sử bạn sử dụng hàm trung bình (đó tính một giá trị trung bình) với trường đầu tiên trong mệnh đề SELECT:

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

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

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

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

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

Đầu trang

Kết hợp kết quả truy vấn: UNION

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

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

Ghi chú: Để 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ử liên kết, 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 bất kỳ tồn tại, bằng cách 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 chọn là như sau:

SELECT field_1
FROM table_1
UNION [ALL]
SELECT field_a
FROM table_a
;

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

SELECT name, price, warranty_available, exclusive_offer
FROM Products
UNION ALL
SELECT name, price, guarantee_available, exclusive_offer
FROM Services
;

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

Đầu trang

Tìm hiểu thêm về mệnh đề SELECT

Trong một câu lệnh Select, mệnh đề SELECT này liệt kê các trường có chứa dữ liệu mà bạn muốn dùng.

Sử dụng dấu ngoặc vuông đặt mã định danh

Bạn có thể sử dụng dấu ngoặc vuông vào Hãy đặt tên trường trong mệnh đề SELECT. Nếu tên không chứa bất kỳ khoảng trắng hoặc các ký tự đặc biệt (chẳng hạn như dấu chấm câu), dấu ngoặc vuông là tùy chọn. Nếu tên chứa khoảng trắng hoặc ký tự đặc biệt, bạn phải sử dụng dấu ngoặc.

Mẹo: Một tên có chứa khoảng trắng là dễ đọc hơn và có thể tiết kiệm thời gian khi bạn thiết kế biểu mẫu và báo cáo, nhưng có thể kết thúc lập giúp bạn nhập nhiều hơn nữa khi bạn viết câu lệnh SQL. Bạn nên cân nhắc việc thực tế này khi bạn đặt tên đối tượng trong cơ sở dữ liệu của bạn.

Nếu câu lệnh SQL của bạn có hai hoặc nhiều trường có cùng tên, bạn phải thêm tên của từng trường dữ liệu nguồn vào tên trường trong mệnh đề SELECT. Bạn sử dụng cùng một tên cho nguồn dữ liệu mà bạn sử dụng trong mệnh đề FROM.

Chọn tất cả các trường

Khi bạn muốn bao gồm tất cả các trường từ một nguồn dữ liệu, bạn cũng có thể liệt kê tất cả các trường riêng lẻ trong mệnh đề SELECT, hoặc bạn có thể dùng ký tự đại diện dấu hoa thị (*). Khi bạn dùng dấu sao, Access sẽ quyết định khi truy vấn sẽ chạy những trường nguồn dữ liệu chứa và bao gồm tất cả các trường trong truy vấn. Điều này giúp đảm bảo rằng truy vấn được giữ nguyên Cập Nhật nếu trường mới được thêm vào nguồn dữ liệu.

Bạn có thể dùng dấu hoa thị một hoặc nhiều nguồn dữ liệu trong một câu lệnh SQL. Nếu bạn dùng dấu hoa thị và có nhiều nguồn dữ liệu, bạn phải bao gồm tên nguồn dữ liệu cùng với dấu sao, sao cho truy nhập có thể xác định nguồn dữ liệu nào bao gồm tất cả các trường từ.

Ví dụ, giả sử bạn muốn chọn tất cả các trường từ bảng đơn hàng nhưng chỉ địa chỉ email từ bảng liên hệ. Mệnh đề SELECT có thể giống như sau:

SELECT Orders.*, Contacts.[E-mail Address]

Ghi chú: Theo dõi các khi bạn dùng dấu hoa thị. Nếu trường mới sau này sẽ được thêm vào nguồn dữ liệu và bạn đã làm không lập kế hoạch cho chúng, kết quả truy vấn của bạn có thể không bật như bạn muốn.

Chọn giá trị khác biệt

Nếu bạn biết rằng điều khoản của bạn sẽ chọn dữ liệu thừa, và bạn muốn thấy chỉ giá trị khác biệt, bạn có thể dùng từ khóa DISTINCT trong mệnh đề SELECT. Ví dụ, giả sử rằng khách hàng của bạn mỗi đại diện cho một số lợi ích khác nhau, một số mà sử dụng cùng một số điện thoại. Nếu bạn muốn đảm bảo rằng bạn chỉ nhìn thấy số điện thoại mỗi lần, mệnh đề SELECT xuất hiện như sau:

SELECT DISTINCT [txtCustomerPhone]

Thay thế sử dụng tên cho trường hoặc biểu thức: các từ khóa

Bạn có thể thay đổi nhãn được hiển thị cho bất kỳ trường nào trong dạng xem biểu dữ liệu bằng cách dùng từ khóa AS và bí danh của trường trong mệnh đề SELECT. Bí danh của trường là một tên mà bạn gán cho một trường trong một truy vấn để thực hiện các kết quả dễ đọc hơn. Ví dụ, nếu bạn muốn chọn dữ liệu từ một trường có tên là txtCustPhone và trường có chứa số điện thoại khách hàng, bạn có thể cải thiện khả năng đọc kết quả của bạn bằng cách dùng bí danh của trường trong câu lệnh chọn của bạn, như sau:

SELECT [txtCustPhone] AS [Customer Phone]

Ghi chú: Bạn phải dùng bí danh của trường khi bạn sử dụng một biểu thức trong mệnh đề SELECT.

Chọn bằng cách dùng biểu thức

Đôi khi, bạn muốn để xem xét các phép tính dựa trên dữ liệu của bạn, hoặc chỉ một phần của một trường dữ liệu truy xuất. Ví dụ, giả sử bạn muốn thu nhập năm mà khách hàng được sinh ra, dựa trên dữ liệu trong trường ngày sinh trong cơ sở dữ liệu của bạn. Mệnh đề SELECT có thể giống như sau:

SELECT DatePart("yyyy",[BirthDate]) AS [Birth Year]

Biểu thức này bao gồm các hàm DatePart và hai đối số — "yyyy" (một hằng số), và [ngày sinh] (mã định danh).

Bạn có thể dùng bất kỳ biểu thức hợp lệ trường, nếu biểu thức kết quả đầu ra một giá trị khi được cung cấp một giá trị đầu vào.

Đầu trang

Tìm hiểu thêm về mệnh đề FROM

Trong một câu lệnh Select, mệnh đề FROM xác định bảng hoặc truy vấn có chứa dữ liệu mệnh đề SELECT sẽ sử dụng.

Giả sử bạn muốn biết số điện thoại của khách hàng cụ thể. Giả định rằng bảng chứa trường lưu trữ dữ liệu này được gọi là tblCustomer, mệnh đề FROM sẽ giống như sau:

FROM tblCustomer

Sử dụng dấu ngoặc vuông đặt mã định danh

Bạn có thể sử dụng dấu ngoặc vuông vào Hãy đặt tên. Nếu tên không chứa bất kỳ khoảng trắng hoặc các ký tự đặc biệt (chẳng hạn như dấu chấm câu), dấu ngoặc vuông là tùy chọn. Nếu tên chứa khoảng trắng hoặc ký tự đặc biệt, bạn phải sử dụng dấu ngoặc.

Mẹo: Một tên có chứa khoảng trắng là dễ đọc hơn và có thể tiết kiệm thời gian khi bạn thiết kế biểu mẫu và báo cáo, nhưng có thể kết thúc làm bạn nhập nhiều hơn nữa khi bạn viết câu lệnh SQL. Bạn nên cân nhắc việc thực tế này khi bạn đặt tên đối tượng trong cơ sở dữ liệu của bạn.

Thay thế sử dụng tên cho nguồn dữ liệu

Bạn có thể dùng một tên khác nhau để tham chiếu đến nguồn dữ liệu trong một câu lệnh chọn bằng cách dùng một biệt danh bảng trong mệnh đề FROM của bạn. Một biệt danh bảng là một tên mà bạn gán cho một nguồn dữ liệu trong một truy vấn khi bạn sử dụng một biểu thức làm nguồn dữ liệu, hoặc câu lệnh SQL và dễ dàng nhập đọc. Điều này có thể đặc biệt hữu ích nếu tên nguồn dữ liệu là dài hoặc khó để nhập, đặc biệt là khi có nhiều trường có cùng tên từ bảng khác nhau.

Ví dụ, nếu bạn muốn chọn dữ liệu từ hai trường, cả hai tên là ID, một Lấy từ bảng tblCustomer và trường kia từ bảng tblOrder, mệnh đề SELECT có thể giống như các thao tác sau:

SELECT [tblCustomer].[ID], [tblOrder].[ID]

Bằng cách sử dụng các biệt danh bảng trong mệnh đề FROM của bạn, bạn có thể dễ truy vấn để nhập. Mệnh đề FROM của bạn, với biệt danh bảng, có thể giống như các thao tác sau:

FROM [tblCustomer] AS [C], [tblOrder] AS [O]

Bạn có thể dùng các biệt danh bảng trong mệnh đề SELECT, như sau:

SELECT [C].[ID], [O].[ID]

Ghi chú: Khi bạn sử dụng một biệt danh bảng, bạn có thể tham chiếu đến nguồn dữ liệu trong câu lệnh SQL của bạn bằng cách dùng bí danh hoặc bằng cách sử dụng tên đầy đủ của nguồn dữ liệu.

Gia nhập dữ liệu liên quan

Khi bạn cần một cách để kết hợp các cặp của bản ghi từ hai nguồn dữ liệu vào các bản ghi duy nhất trong một kết quả truy vấn, bạn có thể thực hiện một phép nối. Gia nhập một là một phép toán SQL xác định cách hai nguồn dữ liệu có liên quan, và xem dữ liệu từ một nguồn sẽ được bao gồm nếu không có không có dữ liệu tương ứng từ nguồn khác.

Để kết hợp thông tin từ hai nguồn dữ liệu, bạn thực hiện một thao tác nối vào trường mà họ có chung. Khi các giá trị được lưu trữ trong trường này phù hợp với dữ liệu từ các bản ghi được kết hợp trong kết quả.

Ngoài việc kết hợp dữ liệu, bạn cũng dùng nối để chỉ rõ để bao gồm bản ghi từ một trong hai bảng nếu không có không có bản ghi tương ứng trong bảng liên quan.

Ví dụ, giả sử bạn muốn sử dụng dữ liệu từ hai bảng trong một truy vấn: tblCustomer và tblOrder. Hai bảng đều có một trường ID khách hàng, nhận dạng một khách hàng. Mỗi bản ghi trong bảng tblCustomer có thể có một hoặc nhiều bản ghi tương ứng trong bảng tblOrder, và các giá trị tương ứng có thể được xác định bởi các giá trị trong trường ID khách hàng.

Nếu bạn muốn gia nhập các bảng sao cho truy vấn kết hợp bản ghi từ các bảng, không bao gồm bản ghi từ một trong hai bảng nếu không có không có bản ghi tương ứng trong có bảng, mệnh đề FROM của bạn có thể giống như sau (ngắt dòng được thêm dưới đây cho độ dễ đọc):

FROM [tblCustomer] INNER JOIN [tblOrder]
ON [tblCustomer].[CustomerID]=[tblOrder].[CustomerID]

Trong Microsoft Office Access, nối xảy ra trong mệnh đề FROM của câu lệnh Select. Không có hai loại phép nối: nối và nối ngoài. Các phần sau đây sẽ giải thích các hai loại phép nối.

Nối

Nối là phổ biến nhất kiểu nối. Khi một truy vấn với nối đang chạy, các bản ghi chỉ được bao gồm trong kết quả truy vấn là những bản ghi mà giá trị chung tồn tại trong cả hai bảng được nối.

Nối trong có cú pháp sau đây (ngắt dòng được thêm dưới đây cho độ dễ đọc):

FROM table1 INNER JOIN table2
ON table1.field1 compopr table2.field2

Bảng sau đây mô tả các phần khác nhau của một thao tác nối trong.

Phần

Mô tả

table1, table2

Tên của bảng mà bản ghi được kết hợp từ đó.

trường 1, field2

Tên của trường được nối. Nếu các trường đó không phải ở dạng số thì chúng phải có cùng kiểu dữ liệu và chứa cùng kiểu dữ liệu nhưng không cần phải có cùng tên.

compopr

Bất kỳ toán tử so sánh quan hệ nào: "=," "<," ">," "<=," ">=," hoặc "<>."

Nối ngoài

Nối ngoài không có tương tự như nối vì chúng thông báo cho một truy vấn làm thế nào để kết hợp thông tin từ hai nguồn. Họ sẽ khác nhau vì chúng cũng rõ bạn muốn bao gồm dữ liệu mà không có giá trị chung tồn tại. Nối ngoài không có hướng: bạn có thể chỉ rõ để bao gồm tất cả các bản ghi từ nguồn dữ liệu đầu tiên được chỉ định trong tham gia (được gọi là nối trái), hoặc để bao gồm tất cả các bản ghi từ nguồn dữ liệu thứ hai trong phép nối (được gọi là một tham gia bên phải).

Nối ngoài có cú pháp sau:

TỪ table1 [trái | PHẢI] nối table2
trên table1.field1compopr table2.field2

Bảng sau đây mô tả các phần khác nhau hoạt động tham gia bên trái và phải gia nhập.

Phần

Mô tả

table1, table2

Tên của bảng mà bản ghi được kết hợp từ đó.

trường 1, field2

Tên của các trường được nối. Các trường phải có cùng kiểu dữ liệu và chứa cùng loại dữ liệu, nhưng họ không phải có cùng tên.

compopr

Bất kỳ toán tử so sánh quan hệ nào: "=," "<," ">," "<=," ">=," hoặc "<>."

Để biết thêm thông tin về kết nối, hãy xem bài viết kết nối với bảng và truy vấn.

Đầu trang

Tìm hiểu thêm về mệnh đề WHERE

Khi bạn muốn sử dụng dữ liệu để giới hạn số lượng bản ghi được trả về trong một truy vấn, bạn dùng truy vấn tiêu chí trong mệnh đề WHERE của câu lệnh Select. Một tiêu chí truy vấn là tương tự như công thức — đó là một chuỗi có thể bao gồm trường tham chiếu, toán tử và hằng số. Tiêu chí truy vấn là một loại biểu thức.

Bảng sau đây Hiển thị một số tiêu chí mẫu và giải thích cách thức hoạt động.

Tiêu chí

Mô tả

> 25 và < 50

Tiêu chí này áp dụng cho một trường số, chẳng hạn như giá hoặc UnitsInStock. Tệp bao gồm chỉ những bản ghi có trường chứa một giá trị lớn hơn 25 và nhỏ hơn 50.

DateDiff ("yyyy", [ngày sinh], Date()) > 30

Tiêu chí này áp dụng cho trường ngày/giờ, chẳng hạn như ngày sinh. Chỉ các bản ghi đó số năm giữa ngày sinh của một người và ngày hôm nay là lớn hơn 30 được đưa vào kết quả truy vấn.

Is Null

Tiêu chí này có thể được áp dụng cho bất kỳ loại trường để hiển thị bản ghi đó giá trị trường là null.

Như minh họa bảng trước đó, tiêu chí có thể nhìn rất khác nhau tùy thuộc vào kiểu dữ liệu của trường để áp dụng tiêu chí và yêu cầu cụ thể của bạn. Một số tiêu chí được đơn giản và sử dụng cơ bản toán tử và hằng số. Những người khác đang phức tạp, sử dụng hàm và toán tử đặc biệt, và bao gồm trường tham chiếu.

Quan trọng: Nếu một trường được sử dụng với hàm tổng hợp, bạn không thể xác định tiêu chí cho trường đó trong mệnh đề WHERE. Thay vào đó, bạn dùng mệnh đề HAVING để xác định tiêu chí cho trường tổng hợp. Để biết thêm thông tin, hãy xem phần làm việc với dữ liệu tóm tắt: nhóm theo và HAVING.

Cú pháp mệnh đề WHERE

Mệnh đề WHERE có cú pháp cơ bản sau:

WHERE field = criterion

Ví dụ, giả sử bạn muốn số điện thoại của khách hàng, nhưng bạn chỉ nhớ rằng tên của khách hàng cuối cùng là bánh mì tròn. Thay vì xem tất cả các số điện thoại trong cơ sở dữ liệu của bạn, bạn có thể dùng mệnh đề WHERE để giới hạn kết quả và dễ dàng hơn để tìm số điện thoại mà bạn muốn. Giả định rằng họ được lưu trữ trong một trường được đặt tên là LastName, mệnh đề WHERE của bạn xuất hiện như sau:

WHERE [LastName]='Bagel'

Ghi chú: You do not have to base the criteria in your WHERE clause on the equivalence of values. You can use other comparison operators, such as greater than (>) or less than (<). For example, WHERE [Price]>100.

Dùng mệnh đề WHERE để kết hợp dữ liệu nguồn

Đôi khi, bạn có thể muốn kết hợp các nguồn dữ liệu dựa trên các trường có phù hợp với dữ liệu, nhưng có các kiểu dữ liệu khác nhau. Ví dụ, một trường trong một bảng có thể có một kiểu dữ liệu số và bạn muốn so sánh trường đó vào một trường trong một bảng có kiểu dữ liệu văn bản.

Bạn không thể tạo một kết nối giữa các trường có kiểu dữ liệu khác nhau. Để kết hợp dữ liệu từ hai nguồn dữ liệu dựa trên giá trị trong trường có kiểu dữ liệu khác nhau, bạn tạo một mệnh đề WHERE sử dụng một trường làm một tiêu chí cho trường khác, bằng cách dùng từ khóa LIKE.

Ví dụ, giả sử bạn muốn sử dụng dữ liệu từ table1 và table2, nhưng chỉ khi dữ liệu trong trường 1 (một trường văn bản trong table1) phù hợp với dữ liệu trong field2 (một trường số trong table2). Mệnh đề WHERE của bạn sẽ giống như sau:

WHERE field1 LIKE field2

Để biết thêm thông tin về cách tạo các tiêu chí sử dụng trong mệnh đề WHERE, hãy xem bài viết ví dụ về tiêu chí truy vấn.

Đầu trang

Ghi chú: Tuyên bố miễn trừ trách nhiệm Dịch Máy: Bài viết này do một hệ thống máy tính dịch mà không có sự can thiệp của con người. Microsoft cung cấp những bản dịch máy này để giúp người dùng không nói tiếng Anh hiểu nội dung về các sản phẩm, dịch vụ và công nghệ của Microsoft. Do bài viết này được dịch máy nên có thể có các lỗi về từ vựng, cú pháp hoặc ngữ pháp.

Phát triển các kỹ năng của bạn
Khám phá nội dung đào tạo
Sở hữu tính năng mới đầu tiên
Tham gia Người dùng nội bộ Office

Thông tin này có hữu ích không?

Cảm ơn phản hồi của bạn!

Cảm ơn bạn đã phản hồi! Để trợ giúp tốt hơn, có lẽ chúng tôi sẽ kết nối bạn với một trong những nhân viên hỗ trợ Office của chúng tôi.

×