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' và 0.1 chính là các hằng số.
3. Tại sao cần quan tâm đến Aliases & Constants?
- 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.
- 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ô.
- 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