MySQL 运算符和函数

in 网站建设
关注公众号【好便宜】( ID:haopianyi222 ),领红包啦~
阿里云,国内最大的云服务商,注册就送数千元优惠券:https://t.cn/AiQe5A0g
腾讯云,良心云,价格优惠: https://t.cn/AieHwwKl
搬瓦工,CN2 GIA 优质线路,搭梯子、海外建站推荐: https://t.cn/AieHwfX9

字符函数

CONCAT() 字符连接

SELECT CONCAT('a','-','b');
--结果为: a-b

CONCAT_WS() 使用指定的分隔符进行字符连接

SELECT CONCAT_WS('|','A','B','C'); 
--结果为: A|B|C

FORMAT() 数字格式化

对数字四舍五入,返回字符串,包括逗号','

SELECT FORMAT(12560.7,2); 
--结果:12,560.70
SELECT FORMAT(12560.78,1); 
--结果:12,560.8

LOWER() 转换成小写字母

UPPER() 转换成大写字母

LEFT() 截取左侧字符

SELECT LEFT('mysql',2);  
--结果:my

RIGHT() 截取右侧字符

LENGTH() 获取字符串长度

长度包含空格

LTRIM() 删除前导空格

等同于LEFT TRIM()

RTRIM() 删除后续空格

TRIM() 删除前后两边的指定字符(默认空格)

删除指定的前导和后续的字符,但不能删除中间的字符,如

SELECT TRIM(LEADING'?','??MYSQL????');  
--leading前导,结果:MYSQL????
SELECT TRIM(TRAILING'?','??MYSQL????');  
--trailing后序,结果:??MYSQL
SELECT TRIM(BOTH'?','??MYSQL???'); 
--结果:MYSQL

REPLACE() 替换字符

如将'?'替换为'-'

SELECT REPLACE('??MYSQL???','?','-');  
--结果:--MYSQL---

SUBSTRING(string,offset,length) 截取字符串

SELECT SUBSTRING('MYSQL',2,3);  
--结果:SQL

[NOT] LIKE 模糊匹配

ESCAPE可指定转义字符

SELECT name FROM test WHERE name LIKE'%o%'; 
--结果:输入name 中带‘o’的name
SELECT name FROM test WHERE name LIKE'%1%%' ESCAPE '1';
--找到中间带% 的匹配name

数值运算

CEIL(数值) 向上取整

SELECT CEIL(3.01);
--结果是4

FLOOR(数值) 向下取整

SELECT FLOOR(3.99);
--结果是3;

DIV 除法,保留整数

如果使用'',如'3/4'结果为'0.75'

SELECT 3 DIV 4; 
--结果是0;因为3除以4,整数位为0

MOD 取模

相当于'%'取余运算符,可以用%号代替;

SELECT 4 MOD 3; 
--结果为1;
SELECT 5.3 MOD 3; 
--结果为2.3

POWER(数值,数值) 幂运算

SELECT POWER(3,3); 
--结果为27

ROUND(数值,小数的位数) 四舍五入

TRUNCATE(数值,截取位数)

ROUND()类似,不四舍五入,直接截断,截取位数可以是负数,

SELECT TRUNCATE(125.68,-1); 
--结果为120

比较运算

[NOT] BETWEEN ... AND ...

SELECT 15 BETWEEND 1 AND 20 
-- 15在1到20之间 ,返回值是1
SELECT 15 NOT BETWEEND 1 AND 20 
--15在1到20之间,条件不成立 返回值是0

[NOT] IN()

判断值是否在给定的集合中,如果在返回1,不在返回0,或者相反

SELECT 10 IN(5,10,15) 
-- 返回1 
SELECT 10 NOT(5,10,15) 
-- 返回0 

IS [NOT] NULL

是否为NULL,成立返回1,不成立返回0

SELECT NULL IS NULL 
-- 返回1 
SELECT '' IS NULL
-- 返回0 , 除了NULL其它都是非空 返回都是1

聚合函数

聚合函数只有一个返回值

AVG() 平均值

SELECT ROUND(AVG(goods_price),2) AS avg_price 
FROM tdb_goods;

COUNT() 计数

SELECT COUNT(goods_id) AS counts 
FROM tdb_goods;

MAX() 最大值

SELECT MAX(goods_price) AS max 
FROM tdb_goods;

MIN() 最小值

SUM() 求和

SELECT SUM(goods_price) AS sum 
FROM tdb_goods;

加密函数

MD5() 摘要算法

SELECT MD5('admin'); 

PASSWORD() 密码算法

通过PASSWORD()修改MySQL当前用户和其他用户的密码

-- 把密码修改成dimitar。
SET PASSWORD=PASSWORD(‘dimitar’); 

日期时间函数

NOW() 当前日期,时间

CURDATE() 当前日期

CURTIME() 当前时间

DATE_ADD() 时间增减

INTERVAL可以为负值
单位 YEAR, MONTH, WEEK, DAY

SELECT DATE_ADD('2014-3-12',INTERVAL 365 DAY); 
-- 返回2015-3-12
-- 在原有给定的时间上增加365天 

DATEDIFF() 日期差值

单位为日,前面时间减去后面时间

SELECT DATEDIFF('2014-1-1','2015-1-1') 
-- 返回365

DATEDIFF() 日期格式化

SELECT DATE_FORMAT('2014-3-2','%m/%d/%Y');
-- 返回03/02/2014

内置信息函数

VERSION() MySQL版本信息

SELECT DATABASE() 当前数据库

USER() 当前用户

SELECT USER();

CONNECTION_ID() 当前用户的连接ID

SELECT CONNECTION_ID();

LAST_INSERT_ID() 最后插入的记录的 ID 号

ID为主键,必须自动编号AUTO_INCREMENT,可以不叫'ID'.
如果一次INSERT插入的是多条记录,得到的是多条记录中的第一条(而不是最后一条!)

关注公众号【好便宜】( ID:haopianyi222 ),领红包啦~
阿里云,国内最大的云服务商,注册就送数千元优惠券:https://t.cn/AiQe5A0g
腾讯云,良心云,价格优惠: https://t.cn/AieHwwKl
搬瓦工,CN2 GIA 优质线路,搭梯子、海外建站推荐: https://t.cn/AieHwfX9
扫一扫关注公众号添加购物返利助手,领红包
Comments are closed.

推荐使用阿里云服务器

超多优惠券

服务器最低一折,一年不到100!

朕已阅去看看