除了查询的数据表可以取别名来方便操作外,对数据列也是可以取别名的。


我先来说我的观点:对于数据列,是不建议取别名的。假设有以下两张表

-- 部门表
CREATE TABLE department(
id INT PRIMARY KEY AUTO_INCREMENT,
name VARCHAR(50)
);

-- 员工信息表
CREATE TABLE employee(
id INT PRIMARY KEY AUTO_INCREMENT,
name VARCHAR(50),
dept_id INT,
CONSTRAINT fk_dept_id FOREIGN KEY(dept_id) REFERENCES department(id)
);

INSERT INTO department(name) VALUES
('教学部'),
('研发部'),
('产品部');

INSERT INTO employee(name, dept_id) VALUES
('张三', 1),
('李四', 3),
('王五', 2),
('赵六', 1);

因为 id 和 name 重名,那么在查询的时候,后端程序员这么写查询语句

SELECT
emp.id, -- 因为这里只有一个 ID,就是用户 ID
-- 查询两个 name,需要设置别名
emp.name AS employee_name,
dept.name AS dept_name
FROM
employee AS emp
LEFT JOIN
department AS dept
ON emp.dept_id = dept.id;

得到的数据将为

{
"data": [
{
"id": 1,
"emp_name": "张三",
"dept_name": "教学部"
},
{
"id": 2,
"emp_name": "李四",
"dept_name": "产品部"
}
]
}

但是,如果另一个接口的别名不同的话,json 将会输出对应字段名称,照成前端代码不统一。

所以我赞成在建立后端数据库的时候就明确每个数据表之间的字段。