一、日期与时间函数
(1)函数的概念:按指定格式输入参数,返回正确结果的运算单元。
(2)返回当前日期(年月日)
① CURDATE(); 当前日期
②CURRENT_DATE()
③CURDATE() + 0 // 可以将当前日期转换为数值型
(3)返回当前时间(时分秒)
①CURTIME();
②CURRENT_TIME()
③CURTIME() + 0; // 可以将当前时间值转换为数值型
(4)返回当前日期和时间
①CURRENT_TIMESTAMP();
②LOCALTIME();
③NOW();
④SYSDATE();
(5)获得月份
①MONTH(DATE); // 返回参数所指定时间的月份
②MONTHNAME(DATE); // 返回参数所指定的日期的月份的英文名称
(6)获得星期
①DAYNAME();// 返回参数所指定的日期的星期几的英文名称
②DAYOFWEEK(DATE);
③WEEKDAY(DATE);// 返回指定日期的那一天在这个星期是第几天
④WEEK(DATE);
⑤WEEKOFYEAR(DATE); // 返回这个星期在这一年中是第几个星期
(7)获取天数
①DAYOFYEAR(DATE)// 返回参数所指定的日期在这一年当中是第几天
②DAYOFMONTH(DATE); // 返回参数所指定的日期在这一个月中是第几天
(8)获取年份、季度、小时、分钟、秒钟
①YEAR(DATE);
②QUARTER(DATE);
③HOUR(DATE);
④MINUTE(DATE);
⑤SECOND(TIME);
二、数学函数
1.绝对值函数
(1)ABS(X) // 求某个数的绝对值
select abs(-7);
(2)符号函数:sign(x); // 大于0返回1,小于0的数返回-1,0的话就返回0
(3)获取随机数函数
① RAND() [0,1)
②RAND(x) 生成的是一个固定的数
(4)获取整数的函数
① ceil(x) / ceiling(x) // 返回不小于指定参数的最小的整数
② floor(x) // 返回不大于指定参数的最大的整数
select ceil(3.5); select floor(3.5);
(5)四舍五入函数
① ROUND(x); // 按照四舍五入的方式保留参数的整数部分
②ROUND(x,y); // 保留小数点后一位小数
③TRUNCATE(x,y); // 截取小数点后Y位的数
select round(3.5); select round(3.14,1);
select truncate(3.157,3);
(6)求余数函数
①MOD(x,y); x:被除数, y:除数
select mod(31,8);
(7)幂运算函数
①POW(x,y); /POWER(x,y);
select pow(3,2); 就是3的平方
②EXP(x); // 求自然对数的次幂
select exp(4);
③SQRT(x); // 求某一个数的平方根
select sqrt(-9);
(9)角度弧度互换函数
① RADIANS(x); // 把角度变换成弧度
②DEGREES(x); // 把弧度变换成角度
select radians(180°);select degrees(π);
(10)圆周率函数
①pi(); select pi();
(11)三角函数
①SIN(X); // 求正弦值
②ASIN(X).;// 求反正弦值
③COS(X);// 求余弦值
④ACOS(X);// 求反余弦值
⑤TAN(X); // 求正切值
⑥ATAN(X); // 求反正切值
⑦COT(X); // 求余切值
三、字符串函数
1.计算字符数和字符串长度的函数
①CHAR_LENGTH(s); // 计算字符串当中的字符数
②LENGTH(s);// 计算字符串在内存中所占的字节数
(在UTF-8这种字符集编码下,每个汉字占3个字节)
2.合并字符串函数
(1)CONCAT(s1,s2...);// 如果其中有一个字符串为NULL,则返回结果为NULL
(2)CONCAT_WS(x,s1,s2...);// 用指定的字符连接字符串
3.替换字符串函数
(1)INSERT(s1,x,LEN,s2); // 给s1这个字符串从X位置开始(包含)数LEN个长度用s2替换
(2)REPLACE(s,s1,s2);// 把原始字符串中s1的字符串用s2替换
4.截取字符串的函数
(1)LEFT(s,n); // 从左边开始截取s字符串中n个字符
(2)RIGHT(s,n); // 从右边开始截取s字符串中n个字符(如果n的值大于这个字符串的字符个数,则全部截取)
5.重复生成字符串函数
(1)REPEAT(s,n); // 将s字符串重复显示n遍
6.大小写转换函数
(1)LOWER(x)/LCASE(x); // 转换成小写
(2)UPPER(x)/UCASE(x); // 转换成大写
7.填充字符串函数
(1)LPAD(s1,LEN,s2); // 用s2从左边填充s1为10个长度
(2)RPAD(s1,LEN,s2); // 用s2从右边填充s1为10个长度
8.删除空格函数
(1)LTRIM(x)/RTRIM(x); // 删除左(右)边的空格
(2)TRIM(x);// 删除两边的空格(中间有空格是去不掉的)
9.删除指定字符串
(1)TRIM(s1 FROM s); // 删除s字符串中靠边的s1字符串
10.获取子字符串
(1)SUBSTRING(s,n,len); // 从n位置开始截取s中len个长度的字符串
(2)MID(s,n,len); // 同上
11.返回指定位置字符串函数
(1)ELT(n,s1,s2...);
12.返回指定字符串位置
(1)FIELD(s,s1,s2...); // 没有找到则返回0
四、系统函数
1.获取MySQL版本号的函数:VERSION();
2.查看当前用户的连接数:CONNECTION_ID();
3.查看当前所用数据库函数:DATABASE();/SCHEMA();
4.获取用户名的函数
(1)USER();
(2)CURRENT_USER();
(3)SYSTEM_USER();
(4)SESSION_USER();