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

Tạo cột thêm trong MySQL SELECT với AS?

Giải pháp: Alias với AS

Sử dụng AS (hoặc bỏ qua) để đặt tên cho biểu thức/cột tính toán trong SELECT.

Ví dụ minh họa

Tạo bảng

mysql> CREATE TABLE DemoTable (
    Id INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
    Name VARCHAR(20)
);

mysql> INSERT INTO DemoTable(Name) VALUES('John'), ('Robert'), ('David');

Truy vấn tạo cột CountryName cố định

mysql> SELECT Id, Name, 'US' AS CountryName FROM DemoTable;

Kết quả

+----+--------+-------------+
| Id | Name   | CountryName |
+----+--------+-------------+
| 1  | John   | US          |
| 2  | Robert | US          |
| 3  | David  | US          |
+----+--------+-------------+

Các cách viết Alias

Cú phápVí dụChuẩn SQL
AS alias'US' AS CountryNameCó (khuyến nghị)
alias'US' CountryNameCó (MySQL, PostgreSQL)
= aliasCountryName = 'US'Không (T-SQL style)

Các loại biểu thức có thể alias

-- Hằng số
SELECT 'US' AS country

-- Cột
SELECT Name AS full_name

-- Biểu thức toán học
SELECT Price * 1.1 AS price_with_tax

-- Hàm
SELECT UPPER(Name) AS upper_name

-- CASE
SELECT CASE WHEN Age >= 18 THEN 'Adult' ELSE 'Minor' END AS age_group

-- Subquery
SELECT (SELECT COUNT(*) FROM orders WHERE orders.user_id = users.id) AS order_count

Sử dụng Alias trong các mệnh đề khác

Mệnh đềCho phép AliasLưu ý
ORDER BY✅ CóMySQL, PostgreSQL, SQL Server
GROUP BY✅ CóMySQL, PostgreSQL (không SQL Server)
HAVING✅ CóMySQL, PostgreSQL
WHERE❌ KhôngChưa tính toán lúc WHERE chạy
JOIN ON❌ KhôngCần repeat expression hoặc subquery

Best Practice

  1. Luôn dùng AS cho rõ ràng
  2. Alias không chứa khoảng trắng/ky tự đặc biệt (hoặc dùng backtick: AS `Full Name`)
  3. Đặt tên có ý nghĩa: total_amount thay vì ta
  4. Tránh trùng tên cột gốc gây nhầm lẫn