MySQL

MySQL 知识量:16 - 40 - 165

5.1 计算><

计算字段- 5.1.1 -

从数据库中查询的数据很多时候不是我们想要的格式,有时我们需要将几个列的数据连接起来显示,有时需要统计总数,计算平均数等等,这时就需要使用计算字段。

计算字段对于客户机来说与真实的列数据没有什么区别,它们都可以由select语句查询并返回结果,只有数据库知道哪些是真实的列数据,哪些是计算字段,客户机不需要关心这些。

我们也可以将查询的数据在客户机的应用程序中进行格式处理或数据计算,但是与数据库管理系统(DBMS)相比,客户机应用程序的效率太低了,而DBMS正是被设计用于处理这些工作。

拼接字段- 5.1.2 -

拼接就是将不同列的值联结到一起构成单个值。

MySQL规定,在select语句中使用concat()函数来拼接两个列。使用concat()函数时,需要将列名和其他要拼接的字符串作为参数传递给它,每个参数间用逗号分隔。

select concat(name,' is ',age,' years old.') from student;

查询学生表,用一个句子的形式,拼接姓名和年龄。结果为:

+---------------------------------------+
| concat(name,' is ',age,' years old.') |
+---------------------------------------+
| Susan is 11 years old.                |
| Jame is 12 years old.                 |
| Bob is 11 years old.                  |
| Robot is 10 years old.                |
| Jen is 11 years old.                  |
| Toney is 10 years old.                |
+---------------------------------------+

如果在拼接的过程中遇到某个列值有多余的空格,可以使用rtrim()、ltrim()和trim()函数来消除空格。

  • rtrim() 用于消除右边的空格。

  • ltrim() 用于消除左边的空格。

  • trim() 用于消除两边的空格。

使用别名- 5.1.3 -

在查询中使用拼接后,显示结果的列名就是我们在查询时定义的那样,这往往不是我们想要的,在应用程序中,这样的列名也是没法引用的,因此需要给它起个新名字,也就是使用别名。

在MySQL中可以使用as关键字来重新命名列。

select concat(name,' is ',age,' years old.') as introduce from student;

查询学生表,用一个句子的形式,拼接姓名和年龄,将查询的结果列命名为“introduce”。结果为:

+------------------------+
| introduce              |
+------------------------+
| Susan is 11 years old. |
| Jame is 12 years old.  |
| Bob is 11 years old.   |
| Robot is 10 years old. |
| Jen is 11 years old.   |
| Toney is 10 years old. |
+------------------------+

算术计算- 5.1.4 -

除了字符串的拼接外,对数值结果进行计算也是常用的功能,例如:

select name,age,age+10 as after10years from student;

查询学生的姓名和年龄以及计算显示10年后他们的年龄。结果为:

+-------+-----+--------------+
| name  | age | after10years |
+-------+-----+--------------+
| Susan |  11 |           21 |
| Jame  |  12 |           22 |
| Bob   |  11 |           21 |
| Robot |  10 |           20 |
| Jen   |  11 |           21 |
| Toney |  10 |           20 |
+-------+-----+--------------+

MySQL的算术操作符有:

  • +  加

  • -  减

  • *  乘

  • /  除