数据库中的八大函数(聚合,数字,字符串,日期和时间,条件,系统信息,加密,格式化)
一.函数
1.聚合函数
sum() avg() count() min() max()
2.数学函数
主要用于处理数字 包括整型 浮点型
/*数学函数*/
SELECT FLOOR(1.5)/*返回小于或者等于参数的最大整数*/floor向下取整
SELECT RAND()/*返回0-1的随机数*/
SELECT ROUND(RAND()*10)/*返回离round(x) x最近的整数 小数点后四舍五入*/
SELECT ROUND(1.23456,3);/*round(x,y) 保留x小数点后y位 但截取时 会进行四舍五入*/
3.字符串函数
最常用的一类函数 主要用于处理表中的字符串
/*字符串函数*/
/*lower小写 upper大写*/
SELECT LOWER(ename) FROM emp;
SELECT UPPER(ename) FROM emp;
/*返回字符串的长度 length(x)
获取 emp表中 名字长度为5的所有员工*/
SELECT * FROM emp WHERE LENGTH(ename)=5
/*将多个字符串 合并为一个字符串*/
SELECT CONCAT("abc","123456")
/*替换 replace(str,search_str,replace_str) 在str中 将search_str 替换为replace_str */
SELECT REPLACE("hello java 1801 ok","java","千锋");
/*截取 substring(str,position,length) 从str字符串中position开始 取length个字符 默认索引从1开始*/
SELECT SUBSTRING("hello java",1,2);
/*去空格 ltrim(str) rtrim(str)*/
SELECT LTRIM(" 3018年")//去左空格
SELECT RTRIM(" 3018年 ")//去有空格
SELECT LTRIM(RTRIM(" 3018年 "))
4.日期和时间函数
/*日期和时间函数*/
SELECT CURDATE()/*返回当前日期*/
SELECT CURTIME()/*返回当前时间*/
SELECT NOW()/*返回当前日期和时间*/
SELECT MONTH("2011-11-2")
SELECT YEAR(NOW())
/*返回日期当中的月份的英文名*/
SELECT MONTHNAME(NOW())
/*返回日期星期几 英文*/
SELECT DAYNAME(NOW())
/*返回一周的第几天 星期日开始*/
SELECT DAYOFWEEK(NOW())
/*日期是本年的第几个星期 */
SELECT WEEK(NOW())
/*返回小时*/
SELECT HOUR(NOW())
/*返回分钟*/
SELECT MINUTE(NOW())
/*返回 秒*/
SELECT SECOND(NOW())
/*获取入职时间在30年以上的员工信息*/
SELECT * FROM emp WHERE (YEAR(NOW())-YEAR(hiredate))>=30
/*获取7369的年龄*/
SELECT DATEDIFF("1981-1-17","1980-12-17");
SELECT DATEDIFF(NOW(),emp.hiredate)/365 FROM emp WHERE empno=7369
5.条件函数
ifnull(x,y)
如果x的值为null 就用y的值替换
if(expr,x,y)
如果表达式expr成立 则返回结果x 否则返回y
SELECT IF(1>0,"正确","错误")
6.系统信息函数
ip地址相互转换 /*将给定的ip地址转成数字*/
就是QQ异地登录,它会记录你经常登录的地址,如果你换电脑(IP不同)会提示
SELECT INET_ATON("127.0.0.1")
/*将给定数字转成ip地址*/
SELECT INET_NTOA(2130706433)
7.加密函数
mysql对数据进行加密的函数
password(str)
可以对字符串str 进行加密 一般用于给用户的密码进行加密
md5(str)
可以对字符串进行散列
可以用于一些不需要解密的数据
SELECT PASSWORD("123")//加密
SELECT MD5("123")//解密
8.格式化函数
format 函数在mysql中对数据内容进行格式化
SELECT FORMAT(100000,2);
SELECT FORMAT(100.31111,2);
SELECT FORMAT(100.31111,0);
SELECT FORMAT(432432234.65534453,2);
/*可以格式化数据为整数 或者浮点数 具有四舍五入的功能*/