一、创建计算字段
基本
从数据库中检索出数据,经过SELECT
语句可以进一步转换、计算或者格式化,创建计算字段。
计算字段并不实际存在与数据库表中,而是运行时在SELECT
语句内创建的。
例子:
#拼接字段
SELECT CONCAT('name:',name)
FROM students
ORDER BY id;
输出:
+----------------------+
| CONCAT('name:',name) |
+----------------------+
| name:test |
| name:test |
| name:test |
| name:test |
| name:test |
| name:test |
| name:test |
+----------------------+
使用别名
从前面的输出可以看到,SELECT
语句拼接字符串工作得很好。但此新计算列的名字是什么呢?实际上它没有名字,它只是一个值。如果仅在SQL查询工具中查看一下结果,这样没有什么不好。但是,一个未命名的列不能用于客户机应用中,因为客户机没办法引用它。
为了解决这个问题,sql支持列别名。列别名(alias)是一个字段或值的替换名。别名用AS
关键字赋予。
如上面的例子:
#拼接字段
SELECT CONCAT('name:',name)
AS formatname
FROM students
ORDER BY id;
输出:
+------------+
| formatname |
+------------+
| name:test |
| name:test |
| name:test |
| name:test |
| name:test |
| name:test |
| name:test |
+------------+
给拼接后的字符串赋予了一个别名 “formatname” 。这样任何客户机应用都可以按名引用这个列,就像它时一个实际的表列一样。
计算字段不止可以通过算术计算等方式创建。
二、使用函数
与sql语句不一样,sql函数不是可移植的。这表示为特定sql实现编写的代码在其他实现中可能不正常。
是否使用函数决定权在你,而且使用不使用说不上对错。如果你决定使用函数,应该保证做好代码注释,一边以后能确切地知道所编写的sql代码的含义。
字符串函数
参考 [mysql字符串函数]
日期和时间处理函数
参考 [mysql日期时间函数大全] 和 [mysql日期时间函数总结]