MySQL - 运算符与常用函数
一、运算符
1)算术运算符
| 加 | 减 | 乘 | 除 | 求模 |
| + | - | * | / 或 DIV | & 或 MOD |
2)比较运算符
| 等于 | 不等于 | 大于 | 小于 | 小于等于 | 大于等于 |
| = | <> 或 != | > | < | <= | >= |
| 在两者之间 | 不在两者之间 | 在集合中 | 不在集合中 | ||
| BETWEEN 或 >=min&&<=max | NOT BETWEEN | IN | NOT | ||
|
严格比较两个NULL值是否相等, 两个操作码都是NULL时 其所得值为1, 一个操作码为NULL时 所得值为0, |
模糊匹配 | 正则表达式 | 为空 | 不为空 | |
| <=> | LIKE | REGEXP 或 RLIKE | IS NULL | IS NOT NULL | |
3)逻辑运算符
| 逻辑非 | 逻辑与 | 逻辑或 | 逻辑异或 |
| NOT 或 ! | AND | OR | XOR |
4)位运算符
| 与 | 或 | 异或 | 取反 | 左移 | 右移 |
| & | | | ^ | ! | << | >> |
二、常用函数
1)字符串函数
SELECT CONCAT("SQL ", "Runoob ", "Gooogle ", "Facebook") AS ConcatenatedString;-- 合并多个字符串 SELECT CONCAT_WS("-", "SQL", "Tutorial", "is", "fun!")AS ConcatenatedString;-- 合并多个字符串,并添加分隔符 SELECT STRCMP("runoob", "runoob");-- 比较字符串 SELECT CHAR_LENGTH("RUNOOB") AS LengthOfString;-- 返回字符串 RUNOOB 的字符数 SELECT LENGTH("RUNOOB") AS LengthOfString;-- 返回字符串 RUNOOB 的字节长度 SELECT UPPER("runoob");-- 将字符串 runoob 转换为大写 SELECT LOWER('RUNOOB');-- 字符串 RUNOOB 转换为小写 SELECT FIND_IN_SET("c", "a,b,c,d,e");-- 返回字符串 c 在指定字符串中的位置 SELECT FIELD("c", "a", "b", "c", "d", "e");-- 返回字符串 c 在列表值中的位置 SELECT POSITION('b' in 'abc');-- 返回字符串 abc 中 b 的位置 SELECT LOCATE('st','myteststring');-- 获取 b 在字符串 abc 中的位置 SELECT LOCATE('b', 'abc');-- 返回字符串 abc 中 b 的位置 SELECT POSITION('b' in 'abc');-- 返回字符串 abc 中 b 的位置 SELECT LEFT(str,num);-- 从左边截取子字符 SELECT RIGHT(str,num);-- 从右边截取子字符 SELECT SUBSTR("RUNOOB", 2, 3) AS ExtractString;-- 从字符串 RUNOOB 中的第 2 个位置截取 3个 字符 SELECT MID("RUNOOB", 2, 3) AS ExtractString;-- 从字符串 RUNOOB 中的第 2 个位置截取 3个 字符 SELECT LTRIM(str);-- 去除字符串开始处空格 SELECT RTRIM(str);-- 去除字符串结尾处空格 SELECT TRIM(str);-- 去除字符串首位空格 SELECT INSERT("google.com", 1, 6, "runnob");-- 从字符串第一个位置开始的 6 个字符替换为 runoob SELECT REPLACE('abc','a','x');-- 将字符串 abc 中的字符 a 替换为字符 x
2)数字函数
SELECT ABS(x); -- 返回 x 的绝对值。正数的绝对值是其本身,负数的绝对值为其相反数,0 的绝对值是 0。
SELECT SIGN(x); -- 返回参数的符号,x 的值为负、零和正时返回结果依次为 -1、0 和 1。 SELECT RAND();-- 返回 0~1 的随机数 SELECT ROUND(1.23456);-- 对所传参数进行四舍五入 SELECT FLOOR(1.5);-- 向下取整,返回值转化为一个 BIGINT SELECT CEILING(1.5);-- 返回不小于参数的最小整数,即向上取整
3)日期函数
SELECT NOW();-- 返回当前日期和时间 ● YEAY(NOW());-- 年 ● QUARTER(NOW());-- 季度 ● MONTH(NOW());-- 月 ● WEEK(NOW());-- 星期 ● DAYOFMONTH(NOW());-- 天 ● HOUR(NOW());-- 时 ● MINUTE(NOW());-- 分 ● SECOND(NOW());-- 秒 ● TO_DAYS(NOW());-- 相隔天数,计算日期 d 距离 0000 年 1 月 1 日的天数 ● FROM_DAYS(NOW());-- 一段时间后日期和时间,计算从0000年1月1日开始n天后的日期 DATEDIFF( d1,d2 );-- 相隔天数,计算日期d1->d2之间相隔的天数 SELECT CURRENT_TIMESTAMP();-- 返回当前日期和时间 SELECT LOCALTIME();-- 返回当前日期和时间 SELECT SYSTATE();-- 返回当前日期和时间
4)聚合函数
聚合函数作用于一组数据,并对一组数据返回一个值。
注意:聚合函数不能嵌套
SELECT AVG(column);-- 返回某一列的平均值 SELECT COUNT(column);-- 返回某列的行数 SELECT SUM(column);-- 返回某列值的总和 SELECT MAX(column);-- 返回某列最大的数 SELECT MIN(column);-- 返回某列最小的数
5)流程控制函数
SELECT IF(expr,v1,v2); -- 判断是否为 true;expr 为 true 时返回 v1 的值,否则返回 v2; SELECT IFNULL(v1,v2); -- 判断是否为空;如果 v1 不为 NULL 时返回 v1,否则返回 v2;
CASE WHEN
-- 第一种用法:返回的是第一个 value = compare_value 为 true 的分支的结果,否则返回 ELSE 分支的结果。 CASE value WHEN compare_value THEN result [WHEN compare_value THEN result ...] [ELSE result] END -- 第二种用法:返回的是第一个 condition 为 true 的分支的结果,否则返回 ELSE 分支的结果。 CASE WHEN condition THEN result [WHEN condition THEN result ...] [ELSE result] END
6)其它函数
SELECT VERSION();-- 返回当前数据路的版本号 SELECT DATABASE();-- 返回当前数据库名 SELECT USER();-- 返回当前用户名

浙公网安备 33010602011771号