06/04/2021, 14:50

ìm hiểu ALIAS (AS) trong SQL - Ngôn ngữ truy vấn T-SQL

Trong bài này mình sẽ nói về cách đặt lại tên cho column, table bằng cách sử dụng từ khóa AS, từ khóa này giúp chúng ta xử lý việc trùng tên khi viết truy vấn với SQL. 1. ALIAS là gì? Alias dịch ra tiếng Việt có nghĩa là bí danh, dùng trong SQL thì có nghĩa là sử dụng bí danh cho một đối ...

Trong bài này mình sẽ nói về cách đặt lại tên cho column, table bằng cách sử dụng từ khóa AS, từ khóa này giúp chúng ta xử lý việc trùng tên khi viết truy vấn với SQL.

1. ALIAS là gì?

Alias dịch ra tiếng Việt có nghĩa là bí danh, dùng trong SQL thì có nghĩa là sử dụng bí danh cho một đối tượng cụ thể nào đó. Bạn có thể sử dụng alias cho column, table hay một tên bất kì, và kí hiệu của nó trong SQL à AS. Lệnh này sẽ tạo ra một tên tạm và chỉ tồn tại trong quá trình chạy câu truy vấn, sau đó nó sẽ được giải phóng khỏi bộ nhớ.

SELECT column_name AS column_new_name
FROM table_name AS table_new_name

Trong đó:

  • column_new_name là tên mới của column
  • table_new_name là tên mới của table

2. Sử dụng Alias với Column

Tại sao lại cần alias? Như trong phân tích thiết kế database thì trong một bảng tên các columns phải là duy nhất, nhưng ở 2 bảng khác nhau thì tên column có thể sẽ bị trùng tên nên việc này sẽ gây ra lỗi nếu bạn không chỉ định rõ column của bảng nào.

Ví dụ:

  • Bảng A có: ID | NAME
  • Bảng B có: ID | NAME

Để giải quyết nó thì ta có thể sử dụng dấu chấm để truy vấn tới đúng column của table như sau:

SELECT A.name, B.name
FROM A, B

Hoặc nếu bạn kết hợp với lệnh AS để tạo tên mới thì sẽ chuyên nghiệp hơn rất nhiều.

SELECT A.name AS a_name, B.name AS b_name
FROM A, B

Kết quả sẽ trả về danh sách gồm 2 column: a_name | b_name

Hãy tham khảo tiếp ví dụ dưới đây, lệnh AS sẽ đổi tên CustomerID thành ID, CustomerName thành Customer

SELECT CustomerID AS ID, CustomerName AS Customer
FROM Customers;

Không chỉ đổi tên cho một column, nó có thể đổi tên cho một nhóm các column hoặc một giá trị chưa có tên như hàm COUNT. 

SELECT COUNT(NAME) AS total_record
FROM A

SELECT CustomerName, CONCAT(Address,', ',PostalCode,', ',City,', ',Country) AS Address
FROM Customers;

3. Sử dụng Alias với Table

Bạn cũng có thể sử dụng Alias để đôi tên cho table. Vi dụ khi bạn đặt tên table quá dài hoặc thực hiện phép JOIN trên cùng một table thì sẽ bị trùng tên, lúc này bạn sẽ đặt lại tên mới giúp nó ngắn hơn, câu try vấn trông sẽ thân thiện hơn.

SELECT o.OrderID, o.OrderDate, c.CustomerName
FROM Customers AS c, Orders AS o

Sau khi bạn đổi tên xong là có thể sử dụng tên đó ở SELECT hoặc WHERE đều được. Xem ví dụ dưới đây.

SELECT o.OrderID, o.OrderDate, c.CustomerName
FROM Customers AS c, Orders AS o
WHERE c.CustomerName="Around the Horn" AND c.CustomerID=o.CustomerID;

Nếu viết không sử dụng Alias thì sẽ như sau:

SELECT Orders.OrderID, Orders.OrderDate, Customers.CustomerName
FROM Customers, Orders
WHERE Customers.CustomerName="Around the Horn" AND Customers.CustomerID=Orders.CustomerID;

Như vậy lệnh ALIAS rất hữu ích phải không các bạn, nó giúp ta viết câu  truy vấn sạch sẽ hơn. 

Và lưu ý với bạn là bạn có thể bỏ từ khóa AS cũng được nhé, xem ví dụ đưới đây.

SELECT COUNT(NAME) total_recordFROM A<br />

Trịnh Tiến Mạnh

27 chủ đề

6824 bài viết

Cùng chủ đề
0