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();-- 返回当前用户名 

 

posted @ 2019-10-20 12:09  ohmok  阅读(195)  评论(0)    收藏  举报