计算字段

某些数据需要通过数据库中的其他字段结合,计算,转换等才能使用。这个时候就需要用到计算字段功能了。
其实这种处理客户端和服务端都能完成,但是服务端处理这种事情更快,一般都是由服务端来解决这种事情。

拼接字段

使用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关键字来创建别名来给客户端提供计算字段。