计算字段
某些数据需要通过数据库中的其他字段结合,计算,转换等才能使用。这个时候就需要用到计算字段功能了。
其实这种处理客户端和服务端都能完成,但是服务端处理这种事情更快,一般都是由服务端来解决这种事情。
拼接字段
使用Concat()
函数来拼接
mysql> SELECT Concat(last_name, first_name)
-> FROM employees
-> ORDER BY last_name;
输出:
发现打印结果末尾有很多空格,可以使用MySQL的RTrim()
函数来删除值右侧多余的空格。
mysql> SELECT Concat(RTrim(last_name), RTrim(emp_no)) AS name_no FROM employees WHERE emp_no < 10050;
输出:
上例中还使用的别名的功能,它用来指示SQL创建一个名为name_no
的计算字段。如果刚刚的计算结果没有别名的话客户端还是不能用的。
执行算数计算
计算员工id为10002离职时的年龄
mysql> SELECT emp_no, birth_date, hire_date, TIMESTAMPDIFF(YEAR,birth_date,hire_date) AS year_old FROM employees WHERE emp_no = 10002;
由于数据库可供算数计算的只有时间了,所以拿了这个例子。
datetime格式的字段比较特殊,不能直接通过运算符,需要使用TIMESTAMPDIFF()
函数来计算。
输出:
如果是两个常数,可以用 -
运算符直接计算即可
mysql> SELECT emp_no, birth_date, hire_date (hire_date - birth_date) AS year_old FROM employees WHERE emp_no = 10002;
小结
本章学习了
- 对两个或多个字段进行拼接以及通过运算符计算。
- 通过
AS
关键字来创建别名来给客户端提供计算字段。