文章目录
- 运算符
- 数值函数
- 字符函数
- 日期时间函数
- 聚合函数
- 信息函数
- 加密函数
运算符
运算符概述
- 运算符是告诉MySQL执行特定算法或逻辑操作的符号,运算符连接表达式中各个操作数,其作用是用来指明对操作数所进行的运算
算数运算符
- 算术运算符用于各类数值运算
运算符 | 作用 |
+ | 加法 |
- | 减法 |
* | 乘法 |
/ | 除法 |
% | 取余(取模) |
比较运算符
运算符 | 作用 |
>、< | 大于、小于 |
>=、<= | 大于等于、小于等于 |
= | 等于 |
<>(!=) | 不等于 |
IS (NOT) NULL | 判断一个值是否为空(或不为空) |
BETWEEN … AND | 判断一个值是否在两个值之间 |
(NOT) IN | 判断一个值(或不是)IN列表中的值 |
LIKE | 与通配符匹配使用 |
逻辑运算符
运算符 | 作用 |
AND | 逻辑与 |
OR | 逻辑或 |
NOT | 逻辑非 |
数值函数
函数
- 函数表示对输入参数值返回一个具有特定关系的值,MySQL提供了大量丰富的函数,在进行数据库管理以及数据库的查询和操作时将会经常用到各种函数。通过对数据的处理,数据库功能可以变得更加强大,更加灵活的满足不同用户的需求
数值函数
- 数值函数(数学函数):主要是用来处理数值数据的
获取整数的函数 - CEIL(x) : 返回大于x的最小整数值
例:SELECT CEIL(28.55);
结果:29
- FLOOR(x) : 返回小于x的最大整数值
例:SELECT FLOOR(28.55);
结果:28
四舍五入的函数
- ROUND(x) : 返回最接近于参数x的整数,对参数x进行四舍五入
例:SELECT ROUND(28.55);
结果:29
- ROUND(x, y) : 返回最接近于参数x的数,其值保留到小数点后面的y位,若为负值,则将保留到小数点左边y位前的值
例:SELECT ROUND(28.55, 1), ROUND(28.55, 0), ROUND(28.55, -1);
结果:28.6 29 30
截断函数
- TRUNCATE(x, y) : 返回被舍去至小数点后y位的数字x。若y的值为0,则结果为整数,若y的值为负数,则截去x小数点左边第y位开始后面所有低位的值
例:SELECT TRUNCATE(28.55, 1), TRUNCATE(28.55, 0), TRUNCATE(28.55, -1);
结果:28.5 28 20
取模
- MOD(x, y) : 返回x被y除后的余数
例:SELECT MOD(11, 2);
结果:1
字符函数
- 字符函数主要用来处理数据库中的字符串数据
字符串连接函数
- CONCAT(S1, S2, ,) : 返回结果为连接参数产生的字符串,如果任何一个参数为NULL,则返回值为NULL。
例:SELECT CONCAT("hello", "world");
结果:helloworld
- CONCAT_WS(X, S1, S2) : 第一个参数X是其他参数的分割符,分隔符的位置放在要连接的两个字符串之间,分隔符可以是一个字符串,也可以是其他参数,如果分隔符为NULL,则结果为NULL
例:SELECT CONCAT_WS("-", "hello", "world");
结果:hello-world
字母转换大小写函数
- LOWER(str) :可以将字符串str中的字母字符全部转换成小写字母
例:SELECT LOWER("Hello World");
结果:hello world
- UPPER(str) :可以将字符串str中的字母字符全部转换成大写字母
例:SELECT UPPER("Hello World");
结果:HELLO WORLD
求字符串长度的函数
- LENGTH(str) : 返回值为字符串的字节长度
例:SELECT LENGTH(" hello "); //左右有空格
结果:7
删除空格的函数
- LTRIM(str) : 返回字符串s, 字符左侧空格字符被删除
例:SELECT LTRIM(" hello "), LENGTH(LTRIM(" hello "));
结果:hello 6
- RTRIM(str):返回字符串s,字符左侧空格字符被删除
例:SELECT RTRIM(" hello "), LENGTH(RTRIM(" hello "));
结果:hello 6
- TRIM(str) : 删除字符串两侧的空格
例:SELECT TRIM(" hello "),LENGTH(TRIM(" hello "));
结果:hello 5
截去字符串
- SUBSTRING(str, n, len) : 带有len参数的格式,从字符串str返回一个长度同len字符相同的子字符串,起始于位置n, n 如果是负数,则子字符串的位置起始于字符串结尾的n个字符
例:SELECT SUBSTRING("hello world", 1, 5);
结果:hello
SELECT SUBSTRING("hello world", -3, 2);
结果:rl
获取指定长度的字符串
- LEFT(str, n) : 返回字符串s开始的最左边n个字符
例:SELECT LEFT("hello mysql", 5);
结果:hello
- RIGHT(str, n) : 返回字符串中最右边n个字符
例:SELECT RIGHT("hello mysql", 5);
结果:mysql
替换函数
- REPLACE(str, from_str, to_str) : 在字符串str中所有出现的字符串from_str均被to_str替换,然后返回这个字符串
例:SELECT REPLACE("hello world", "world", "mysql" );
结果:hello mysql
格式化函数
- FORMAT(x, n):将数字x格式化,并以四舍五入的方式保留小数点后n位,结果以字符串的形式返回,若n为0,则返回结果不含小数部分
例:SELECT FORMAT(1234.5678, 2), FORMAT(1234.5, 2), FORMAT(1234.5678, 0);
结果:1234.57 1234.50 1235
日期时间函数
- 日期和时间函数主要用来处理日期和时间值
获取当前日期的函数
- CURDATE() 和 CURRENT_DATE() 函数作用相同,将当前日期按照"YYYY-MM-DD"或"YYYYMMDD"格式的值返回,具体格式根据函数在字符串或是数字语境中而定
例:SELECT CURDATE();
结果:2018-10-02
SELECT CURDATE()+0;
结果:20181002
获取当前时间的函数
- CURTIME() 和 CURRENT_TIME() 函数作用相同,将当前时间以"HH:MM:SS"或HHMMSS的格式返回,具体格式根据函数在字符串或是数字语境中而定
例:SELECT CURTIME();
结果:15:39:02
SELECT CURTIME()+0;
结果:153902
获取当前日期和时间
- NOW() 和 SYSDATE() :两个函数的作用相同,均返回当前的日期时间值。格式为"YYYY-MM-DD HH:MM:SS"或 YYYYMMDDHHMMSS。具体格式根据函数在字符串或数字语境中而定
例:SELECT NOW();
结果:2018-10-02 15:43:35
执行日期的加运算
- DATE_ADD(date, INTERVAL expr type) :其中,date是一个DATETIME或DATE值,用来指定起始时间。expr是一个表达式,用来指定从起始日期添加或减去的时间间隔值。type为关键词,它指示了表达式被解释的方式,如:YEAR, MONTH, DAY, WEEK, HOUR等。
例:SELECT DATE_ADD("2018-10-02", INTERVAL 5 MONTH);
结果:2019-03-02
计算两个日期之间的间隔天数
- DATEDIFF(date1, date2):返回起始时间date1和结束时间date2之间的天数
例:SELECT DATEDIFF("2018-10-02", "2018-05-01");
结果:154
日期格式化
- DATE_FORMAT(date, format):根据format指定的格式显示date值
- DATE_FORMAT时间日期格式:
• %b:月份的缩写名称(Jan…Dec)
• %c:月份,数字形式(0。。。12)
• %m:月份,数字形式(00。。。12)
• %M:月份日期(January … December)
• %d:该月日期,数字形式(00。。。31)
• %e:该月日期,数字形式(0。。。31)
• %Y:4位数形式表示年份
• %y:2位数形式表示年份
例:SELECT DATE_FORMAT("2018-10-02", "%Y%M%d");
结果:2018October02
聚合函数
- 有时候并不需要返回实际表中的数据,而只是对获取的数据进行分析和总结。这时候需要使用聚合函数
名称 | 描述 |
AVG() | 返回某列的平均值 |
COUNT() | 返回某列的行数 |
MAX() | 返回某列的最大值 |
MIN() | 返回某列的最小值 |
SUM() | 返回某列值的和 |
信息函数
系统信息函数
函数 | 描述 |
VERSION() | 返回当前MySQL服务器版本的版本号 |
CONNECTION_ID() | 返回MySQL服务器当前连接的次数,每个连接都有各自唯一的ID |
DATABASE()和SCHEMA() | 返回当前的数据库名 |
USER() | 获取用户名的函数 返回当前登录的用户名称 |
加密函数
- 加密函数主要用来对数据进行加密和界面处理,以保证某些重要数据不被别人获取
- MD5() : 信息摘要算法
- MD5(str)函数可以加密字符串,加密后的值以32位十六进制数字的二进制字符串形式返回,若参数为NULL,则返回NULL