mysql常用函数(补充一些知识点)

mysql常用函数(补充一些知识点)

#mysql常用函数(补充一些知识点)

/*
函数:
数学函数
字符串函数
聚合函数
日期和时间函数
加密函数
控制流函数
*/

/*
注意:不要在条件里用函数,该列将无法使用索引
*/

#
SELECT 3 + 3, 10 - 2, 5 * 6, 8 / 2, 8 % 2, 8 % 5;
SELECT 3 + 3, 10 - 2, 5 * 6, 8 / 2, 8 % 2, 8 % 5 FROM dual;
SELECT (3 + 3), (10 - 2), (5 * 6), (8 / 2), (8 % 2), (8 % 5);
SELECT (3 + 3), (10 - 2), (5 * 6), (8 / 2), (8 % 2), (8 % 5) FROM dual;
#
SELECT 3 + 3 / 3, (3 + 3) / 3;
SELECT 3 + 3 / 3, (3 + 3) / 3 FROM dual;

#
SELECT 3 + 3 / 3 * 2, (3 + 3) / 3 * 2 ;
SELECT 3 + 3 / 3 * 2, (3 + 3) / 3 * 2 FROM dual;

#
SELECT MOD(8,3), 8%3;
SELECT price, FLOOR(price), FLOOR(price) % 3, MOD(FLOOR(price),3) FROM book;

#
SELECT ROUND(5.897),ROUND(5.497),ROUND(5.487),ROUND(5.587);
SELECT ROUND(5.897, 2),ROUND(5.886, 2),ROUND(5.897, 3),ROUND(5.897, 4);

#FLOOR(num)向下取整(即返回小于num的最大整数值)
#以下结果全部是6
SELECT FLOOR(6.66),FLOOR(6.12),FLOOR(6.50),FLOOR(6.51),FLOOR(6.98);
SELECT FLOOR(6.66),FLOOR(6.12),FLOOR(6.50),FLOOR(6.51),FLOOR(6.98) FROM dual;

#CEILING(num)向上取整(即返回大于num的最小整数值)
#以下结果全部是7
SELECT CEILING(6.66),CEILING(6.12),CEILING(6.50),CEILING(6.51),CEILING(6.98);
SELECT CEILING(6.66),CEILING(6.12),CEILING(6.50),CEILING(6.51),CEILING(6.98) FROM dual;

#
SELECT price, FLOOR(price) FROM book;
SELECT price, CEILING(price) FROM book;

#加密函数
SELECT PASSWORD('abc6666'),MD5('abc6666'),SHA('abc6666');

#LEFT(str,len)返回str字符串中最左边的len个字符
SELECT LEFT('江西省赣州市于都县', 6),
LEFT('江西省赣州市于都县', 9),
LEFT('江西省赣州市于都县', 12);

#POSITION()函数,POSITION()函数和LOCATE()函数效果一样,他们是同义词
SELECT POSITION('赣' IN '江西省赣州市于都县');
SELECT LOCATE('赣','江西省赣州市于都县');

#函数可以嵌套
#返回@前面的字符串
SELECT LEFT('江西省赣州市@于都县', POSITION('@' IN '江西省赣州市@于都县') - 1);
SELECT LEFT('江西省赣州市@于都县', LOCATE('@', '江西省赣州市@于都县') - 1);

#RAND()函数返回0-1之间的随机数
SELECT RAND();
#返回5-10之间的小数
SELECT RAND() * 5 + 5;
#返回5-10之间的整数
SELECT FLOOR(RAND() * 5 + 5);

#
SELECT RAND(2),RAND(5),RAND(9);

#
SELECT PI();

#
SELECT 5 + 9;
SELECT 4 + 8 FROM DUAL;

#查看当前时间
SELECT NOW();
SELECT NOW() FROM dual;
SELECT DATE_FORMAT(NOW(),'%Y-%m-%d');
SELECT DATE_FORMAT(NOW(),'%Y/%m/%d');
SELECT DATE_FORMAT(NOW(),'%Y\%m\%d');
SELECT DATE_FORMAT(NOW(),'%y-%m-%d');
SELECT DATE_FORMAT(NOW(), '%Y年%m月%d日');
SELECT DATE_FORMAT(NOW(), '%y年%m月%d日');
#查看当前时间
SELECT SYSDATE();
SELECT SYSDATE() FROM dual;
SELECT DATE_FORMAT(SYSDATE(),'%Y-%m-%d');
SELECT DATE_FORMAT(SYSDATE(),'%Y/%m/%d');
SELECT DATE_FORMAT(SYSDATE(),'%Y\%m\%d');
SELECT DATE_FORMAT(SYSDATE(),'%y-%m-%d');
SELECT DATE_FORMAT(SYSDATE(), '%Y年%m月%d日');
SELECT DATE_FORMAT(SYSDATE(), '%y年%m月%d日');

#
SELECT CURDATE(),CURRENT_DATE();
SELECT CURTIME(),CURRENT_TIME(),CURRENT_TIMESTAMP();
#返回一年中的季度(1-4)
SELECT QUARTER(CURDATE());
#返回月份名
SELECT MONTHNAME(CURDATE());


#查看当前库,当前用户,数据库版本
SELECT DATABASE(),USER(),VERSION();

#ABS()函数是取绝对值
SELECT ABS(-9),ABS(9);
#BIN()函数返回二进制   OCT()函数返回八进制  HEX()函数返回十六进制
SELECT BIN(12), CONV(12,10,2), OCT(12), HEX(12);
SELECT BIN(NULL), CONV(NULL,10,2), OCT(NULL), HEX(NULL);
SELECT HEX(255),HEX('abc');

#返回字符的ASCII值
SELECT ASCII('A'),ASCII('a'),ASCII('B'),ASCII('b');
#返回字符串的比特长度
SELECT BIT_LENGTH('江西省赣州市于都县'),BIT_LENGTH('江西省于都县'),BIT_LENGTH('于都县');
#字符串拼接
SELECT CONCAT('江西省','赣州市','于都县'); #结果为江西省赣州市于都县
#字符串拼接,并用-中划线间隔
SELECT CONCAT_WS('-','江西省','赣州市','于都县'); #结果为江西省-赣州市-于都县
#LCASE()函数和LOWER()函数效果一样,都是将字符改变成小写
SELECT LCASE('ABC'), LOWER('ABC');
SELECT LCASE('DEF江西省赣州市于都县'), LOWER('DEF江西省赣州市于都县');
SELECT LCASE('GHJK壹貳叁肆'), LOWER('GHJK壹貳叁肆');

#
SELECT INSERT('中国赣州市于都县', 1, 2, '江西省');

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值