_mysql.c(42) : fatal error C1083: Cannot open include file: 'config-win.h':no such file or directory数据库笔试题及答案Mysql Where 条件使用列别名Every derived table must have its own aliasMySQL 解决 emoji表情 的方法,使用utf8mb4 字符集(4字节 UTF-8 Unicode 编码)utf8mb4 字符集(4字节 UTF-8 Unicode 编码)Illegal mix of collations (utf8_general_ci,IMPLICIT) and (utf8mb4_general_ci,COERCIBLE)right syntax to use near 'USING BTREE ) ENGINE=InnoDB DEFAULT CHARSET=utf8' at line 6mysql中delete的表别名使用方法Windows7下pip安装包报错:Microsoft Visual C++ 9.0 is required Unable to find vcvarsall.batMySQL与PostgreSQL比较 哪个数据库更好java.sql.SQLException: Incorrect string value: '\xF0\x9F\x98\xB3' for column 'Content' at row 1service mysqld start MySQL Daemon failed to start.Python Version 2.7 required which was not found in the registry解决python连接mysql,UTF-8乱码问题如何从官网下载MySQL最新版本的安装包?MySQL 如何实现行转列分级输出?Bluemix云端数据库服务使用示例———PHP投票程序Bluemix云端数据库服务ClearDB MySQL使用示例———Python开发投票程序MySQL 数据库简介Windows 安装最新版 MySQLLinux 安装最新版MySQL与 MySQL 建立连接MySQL 创建子账号MySQL 多实例配置MySQL 创建数据库MySQL 删除数据库MySQL 选中数据库MySQL 的数据类型1MySQL 的数据类型2MySQL 设计数据表MySQL 数据表设计规范ALTER 命令修改表MySQL 删除数据表INSERT 插入数据DELETE 删除数据SELECT 查询数据UPDATE 更新数据LIKE 模糊查询WHERE 条件查询UNION 联合查询ORDER BY 排序JOIN 表连接DISTINCT 去重GROUP BY分组聚合函数 AVG、COUNT、SUM聚合函数 MIN、MAX条件判断函数MySQL 的系统函数MySQL 中使用正则表达式MySQL 存储引擎概述

MySQL 的系统函数

MySQL 的系统函数

MySQL 提供了很多的系统函数,这些系统函数可以对数据进行特殊的处理,下面表格列举了大部分的系统函数,本小节选择一些代表性的系统函数演示说明。

函数名说明
CONCAT(str0,str1)将两个字段的值拼接在一起
CONCAT_WS(“拼接符”,str0,str1)将两个字段的值使用指定拼接符拼接在一起
GROUP_CONCAT(expr)将指定分组的字段内容拼接在一起
UPPER(str)将字符串包含的英文字符小写转化成大写
lOWER(str)将字符串包含的英文字符大写转化成小写
INITCAP(str)将字符串的首字母变成大写
LENGTH(str)获取字符串的长度
SUBSTR(str FROM pos FOR len)截取字符串,其中 pos 表示其实位置,len 表示结束位置
TRIM(str)去除字符串两边空格
INSTR(str,substr)查找指定字符在字符串的中的位置,其中 substr 表示需要查找的字符,例如 'Tom''T' 的位置为 1'm' 的位置为 3
LPAD(str,len,padstr)左填充,其中 len,表示字符串总长度,padstr 表示填充的字符
RPAD(str,len,padstr)右填充,其中 len,表示字符串总长度,padstr 表示填充的字符
LEFT(str,len)取一个字符串的前多少位
RIGHT(str,len)取一个字串的后多少位
CEIL(X)向上取整
FLOOR(X)向下取整
MOD(N,M)取余,例如 MOD(age,5),将字段 age 除以 5,除不尽的取余数
POWER(X,Y)幂运算,例如 MOD(age,2),获取字段 age 值的 2 次方的值
NOW()获取当前日期和时间
CURDATE()获取当前日期,不包含时间
CURTIME()获取当前时间,不包含日期
YEAR(now())获取当前的年份
HOUR(NOW())获取当前时间的小时数
MINUTE(now())获取当前时间的分钟数
SECOND(NOW())获取当前时间的秒数
MONTHNAME(now())获取当前日期的英文月份
MONTH(NOW())获取当前日期的数字月份
DATE_ADD(date,INTERVAL expr unit)查询日期的变化,例如 DATE_ADD(‘2020-03-03’,INTERVAL 10 day) 表示 2020-03-03 十天之后的日期
DATEDIFF(expr1,expr2)日期差,例如 DATEDIFF('2019-12-29','2019-12-01') 表示 2019-12-29 距离 2019-12-01 的天数
DATE_FORMAT(date,format)将指定日期转化为自定义格式,例如 DATE_FORMAT('2019-12-29','%m/%d/%y') ,其中 %m 表示前面对应的月份,%d 表示前面对应的日期的天数,%y 表示前面对应的年份
STR_TO_DATE(str,format)将指定日期转化为自定义格式,例如 DATE_FORMAT('12-29-2019','%m/%d/%y')
DATE_FORMAT(date,format)将指定日期转化为自定义格式,例如 DATE_FORMAT('2019/12/29','%m/%d/%y')
MD5(str)对字符串进行 MD5 转换
UNIX_TIMESTAMP()将指定日期转化为时间戳
COUNT()获取查询结果集条数
AVG(expr)获取指定列平均值
SUM(expr)获取指定字段值的总和
MIN(expr)获取指定字段值的最小值
MAX(expr)获取指定字段值的最大值

1. CONCAT 拼接字段

以 teacher 表为例,将教师信息的 name 和 id_number 字段的值拼接在一起:

SELECT *,CONCAT(name,id_number) AS name_id_number FROM teacher;

查询结果如下:

图片描述

Tips:如上图所示, 其中 name_id_number 的值是 CONCAT() 函数将 name 和 id_number 的值拼接在一起。

2. GROUP_CONCAT拼接分组字段

以 course 和 teacher 表内连接分组为例,并使用 GROUP_CONCAT 将指定的分组字段拼接在一起:

SELECT .teacher_id,t.*,GROUP_CONCAT(.id) AS new_strFROM course  
LEFT JOIN teacher t 
ON .teacher_id=t.id 
GROUP BY .teacher_id;

查询结果如下图;

图片描述

Tips:如上图所示, 其中 new_str 的值是 GROUP_CONCAT() 函数将 c.id 的值拼接在一起,默认是 ‘,’ 拼接。

3. NOW()获取当前日期和时间

SELECT NOW() AS date_time;

获取结果如下图:

图片描述

4. UNIX_TIMESTAMP()将日期转化为UNIX时间戳

将当前时间转化为 UNIX 时间戳:

SELECT UNIX_TIMESTAMP();

获取结果如下图:

图片描述

Tips:如上图所示, 其中 UNIX_TIMESTAMP() 函数默认获取当前时间戳,也可以获取指定日期的时间戳,例如 UNIX_TIMESTAMP('2012-12-21') 的取值为 1356019200

5. 小结

本小节介绍了 MySQL 提供的系统函数,这里只是列举了很多常见系统函数,选取了几个代表性的函数,其他系统函数的使用方法完全可以参照上述举例,需要注意的是之前的聚合函数也属于系统函数,上述演示的几个系统函数可以直接对数据值进行处理,也可以对查询出来的结果集字段列进行处理,例如将 teacher 表 name 字段查询出来的值转化为大写字母:

SELECT *,UPPER(name) AS up_name FROM teacher;

查询结果如下图:

图片描述