+1

Aliases & Constants: Nghệ thuật đặt tên và quản lý giá trị "bất biến" trong SQL

1. Aliases (Bí danh) - Không chỉ là đặt tên cho vui

Alias (sử dụng từ khóa AS) cho phép bạn đặt một cái tên tạm thời cho một cột hoặc một bảng trong quá trình thực thi câu query.

A. Column Alias (Bí danh cho cột) Khi tên cột trong database quá dài, khó hiểu hoặc bạn muốn định dạng lại để trả về cho Frontend, hãy dùng AS.

SELECT 
    first_name || ' ' || last_name AS full_name, 
    salary * 12 AS annual_income 
FROM employees;
  • Lợi ích: Giúp kết quả trả về (Result Set) rõ ràng, dễ đọc. Frontend chỉ cần map đúng cái tên full_name thay vì phải tự nối chuỗi.

B. Table Alias (Bí danh cho bảng)

Khi bạn thực hiện các phép JOIN phức tạp, việc viết đi viết lại tên bảng dài dằng dặc sẽ làm câu query trông rất "rác".

-- Viết theo kiểu "truyền thống"
SELECT users.name, orders.amount 
FROM users 
JOIN orders ON users.id = orders.user_id;

-- Viết với Alias (Gọn gàng hơn nhiều!)
SELECT u.name, o.amount 
FROM users AS u 
JOIN orders AS o ON u.id = o.user_id;
  • Lưu ý: Một khi đã đặt Alias cho bảng, bạn bắt buộc phải dùng Alias đó trong suốt câu query, không được dùng tên bảng gốc nữa.

2. Constants (Hằng số) trong SQL

Constant là những giá trị không thay đổi trong suốt quá trình thực thi câu lệnh. Trong SQL, chúng có thể là số, chuỗi ký tự, hoặc giá trị logic.

A. Literal Constants (Giá trị trực tiếp)

Bạn có thể chèn trực tiếp một cột "giả" chứa giá trị cố định vào kết quả trả về. Điều này cực kỳ hữu ích khi bạn muốn phân loại dữ liệu ngay từ tầng Database.

SELECT 
    name, 
    email, 
    'ACTIVE_MEMBER' AS member_status, -- Constant String
    2026 AS current_year             -- Constant Number
FROM users;

B. Constants trong mệnh đề lọc

Dùng để so sánh với dữ liệu thật trong bảng:

SELECT * FROM products WHERE status = 'available' AND discount_rate > 0.1;

Ở đây 'available'0.1 chính là các hằng số.

3. Tại sao cần quan tâm đến Aliases & Constants?

  1. Tính bảo mật (Abstraction): Đôi khi bạn không muốn lộ tên cột thật trong database (ví dụ: u_password_hash_v3), bạn dùng Alias để đổi thành password khi trả về API.
  2. Clean Code: Giúp câu query của bạn trông giống như một bản báo cáo hoàn chỉnh thay vì một đống dữ liệu thô.
  3. Hỗ trợ logic Business: Bạn có thể dùng Constant để gán các "Label" hoặc "Tag" cho dữ liệu trước khi đẩy lên tầng Application xử lý.

Một lưu ý nhỏ cho anh em Backend: > Khi viết code (Laravel, Go, Node.js), hạn chế việc "hardcode" các hằng số trực tiếp vào câu query. Hãy đưa chúng vào file cấu hình hoặc biến môi trường (Environment Variables) để dễ dàng quản lý và thay đổi sau này.

Lời kết

Aliases và Constants tuy đơn giản nhưng lại là những "gia vị" không thể thiếu để tạo nên một câu query sạch sẽ và hiệu quả. Việc sử dụng Alias bảng một cách nhất quán sẽ giúp bạn tránh được những lỗi nhầm lẫn tai hại khi hệ thống có hàng chục bảng liên kết với nhau.

Hy vọng bài viết này giúp anh em "lên trình" đặt tên trong SQL. Ở bài tới, mình sẽ dắt anh em đi sâu vào một chủ đề "hack não" hơn một chút: Subqueries vs CTEs (Common Table Expressions) - Khi nào nên dùng loại nào?

Anh em thường đặt Table Alias theo quy tắc nào? (Ví dụ: u cho users, o cho orders hay viết tắt kiểu khác?) Hãy chia sẻ "phong cách" của bạn ở phần bình luận nhé!


All rights reserved

Viblo
Hãy đăng ký một tài khoản Viblo để nhận được nhiều bài viết thú vị hơn.
Đăng kí