Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> SQL

SQL Aliases (Bí danh): Hướng dẫn hoàn chỉnh

Bí danh (alias) SQL là tên tham chiếu cho một bảng hoặc một cột. Chúng dùng để rút gọn truy vấn nếu bạn có tên bảng hoặc cột dài. Cả bí danh bảng và cột đều được định nghĩa bằng từ khóa AS. Bí danh tồn tại cho đến khi truy vấn thực thi xong. Bí danh không vĩnh viễn.

Bạn có bao giờ mệt mỏi viết tên cột hoặc bảng dài trong truy vấn phức tạp? Điều này xảy ra khi bạn học sâu hơn về SQL. Đó là lúc bí danh đến để cứu vớt. Bí danh giúp rút gọn truy vấn của bạn.

Trong hướng dẫn này, chúng ta nói về bí danh SQL là gì và tại sao dùng chúng. Chúng ta đi qua hai kịch bản bí danh hoạt động để giúp bạn hiểu cách sử dụng. Không dài dòng nữa, hãy bắt đầu!

Lưu ý: Hướng dẫn này được viết sử dụng PostgreSQL.

SQL Alias là gì?

Bí danh SQL giống như bí danh của con người. Bí danh SQL gán một tên giữ chỗ (placeholder) cho một bảng hoặc cột trong bảng. Bí danh hữu ích vì giúp truy vấn và kết quả dễ đọc, dễ hiểu hơn.

Một bí danh tốt là bí danh có thể hiểu được nhanh nhất có thể.

Bí danh n sẽ gây nhầm lẫn nếu dùng cho cột name khi cũng có cột number_of_products. Cả hai đều bắt đầu bằng chữ n.

fn có thể phù hợp hơn vì lấy chữ cái đầu của mỗi từ trong full name. Bí danh này ít gây nhầm lẫn hơn.

Hãy nhớ rằng truy vấn SQL của bạn có thể được người khác sử dụng, không chỉ bạn. Bạn nên nỗ lực làm cho truy vấn trực quan nhất có thể cho tất cả người đọc.

SQL Aliases: Cột (Column Aliases)

Bạn dùng bí danh trên tên cột. Bí danh cột cho phép thay đổi tên cột trong đầu ra của truy vấn.

Hãy xem hai bảng trong cơ sở dữ liệu ví dụ: employees và branches.

EmployeesBranches
nametitlebranch_idsalarybranch_idbranch_name
GeoffSenior Sales Associate1380001San Francisco
AdamSenior Sales Associate2380002Cambridge
EmmaMarketing Executive2500003Los Angeles
LukeMarketing Assistant332000

Bảng employees có 4 cột, 4 hàng. Bảng branches có 2 cột, 3 hàng.

Viết truy vấn SQL SELECT cho biết mức lương cao nhất tại mỗi chi nhánh:

SELECT branches.branch_name, MAX(employees.salary) 
FROM employees 
LEFT JOIN branches ON employees.branch_id = branches.branch_id 
GROUP BY branches.branch_name;

Dùng hàm tổng hợp MAX() để chọn giá trị cao nhất trong cột salary của bảng employees. Dùng LEFT JOIN để nối bảng branches và employees. Điều này cho phép thấy kết quả của mỗi chi nhánh.

Kết quả truy vấn:

branch_namemax
San Francisco38000
Los Angeles32000
Cambridge50000

Truy vấn hoạt động. Nhưng tiêu đề cột không trực quan. Với người không viết truy vấn này, max có thể gây nhầm lẫn.

Chúng ta giải quyết bằng cách chỉ định bí danh cột:

SELECT branches.branch_name AS "Branch Name", 
       MAX(employees.salary) AS "Highest Salary" 
FROM employees 
LEFT JOIN branches ON employees.branch_id = branches.branch_id 
GROUP BY branches.branch_name;

Chỉ định hai bí danh: branch_name → Branch Name; hàm MAX() → Highest Salary. Chạy lại truy vấn:

Branch NameHighest Salary
San Francisco38000
Los Angeles32000
Cambridge50000

Các hàng trả về giống hệt. Chỉ tiêu đề bảng thay đổi: branch_name thành Branch Name, max thành Highest Salary.

SQL Aliases: Bảng (Table Aliases)

Bạn có thể định nghĩa bí danh SQL trên một bảng. Hữu ích nếu bạn tham chiếu đến một bảng nhiều lần trong truy vấn. Điều này thường xảy ra trong truy vấn phức tạp.

Khi truy vấn nhiều bảng, bạn cần chỉ định tên bảng trước tên cột. Tên bảng và cột phân tách bằng dấu chấm (.). Điều này đảm bảo SQL biết chính xác mỗi câu lệnh tham chiếu đến bảng nào.

Mặc dù tính năng này bảo vệ bạn khỏi truy vấn mơ hồ, nhưng làm cho truy vấn kém đọc hơn. Do đó, hãy đảm bảo bí danh của bạn không quá khó hiểu.

Viết truy vấn trả về tên mọi nhân viên kèm tên chi nhánh họ làm việc:

SELECT employees.name, branches.branch_name 
FROM employees 
LEFT JOIN branches ON employees.branch_id = branches.branch_id;

Kết quả:

namebranch_name
GeoffSan Francisco
AdamCambridge
EmmaCambridge
LukeLos Angeles

Truy vấn hai bảng: employees và branches. Dùng LEFT JOIN nối giá trị branch_id ở cả hai bảng. Điều này cho phép thấy tên chi nhánh gắn với mỗi nhân viên.

Truy vấn khá dài. Từ employees và branches lặp lại 2 lần. Trong truy vấn dài hơn, phải dùng nhiều hơn.

Dùng bí danh để rút gọn truy vấn. Cần dùng từ khóa AS để tạo bí danh bảng:

SELECT e.name, b.branch_name 
FROM employees AS e 
LEFT JOIN branches AS b ON e.branch_id = b.branch_id;

Truy vấn này trả về cùng đầu ra như truy vấn đầu tiên.

Gán hai bí danh:

  • employees → e
  • branches → b

Bất cứ khi nào tham chiếu e hoặc b trong truy vấn, SQL xử lý như thể tham chiếu employees và branches. Bí danh bảng giúp giảm lặp lại trong câu lệnh SQL.

Kết luận

Bí danh SQL là tên thay thế cho cột hoặc bảng. Bí danh chỉ áp dụng cho truy vấn cụ thể. Nghĩa là bí danh trong truy vấn này không dùng được cho truy vấn khác nếu không định nghĩa lại. Bí danh được thiết lập bằng từ khóa AS.

Bạn quan tâm học thêm về SQL? Xem hướng dẫn How to Learn SQL của chúng tôi. Hướng dẫn toàn diện bao gồm mọi thứ từ khóa học nên xem đến tài nguyên SQL trực tuyến hữu ích.