数学函数

示例:

  1. SELECT CEIL() 进一取整;
  2. SELECT FLOOR() 舍一取整
  3. SELECT ROUND() 四舍五入
  4. SELECT TRUNCATE(3.456123987,3) 取小数点后三位,直接截断;
  5. SELECT MOD(5,2) 52取余
  6. SELECT ABS() 求绝对值
  7. SELECT POWER(2,3) 23次方
  8. SELECT PI() 得到圆周率
  9. SELECT RAND() 产生随机数
  10. SELECT SIGN() 如果括号中是整数,返回1,如果是负数返回-1,如果是0返回0
  11. SELECT EXP(2) e2次方

补充:
— 找出李老师的学生
select distinct stu_name from t_view_stu_lesson where teacher_name=”李老师”
— 视图一般只用于查询,更新和修改无意义
— 可将一条SQL语句的结果视作一张表,再次进入SQL查询
select from (select from t_student) as tab
— 此处必须给虚拟表起一个别名,否则无法运行

字符串函数

  1. 字符串函数:CHAR_LENGTH(s);得到字符串的字符数
  2. 得到字符串的长度:LENGTH(s);
  3. 合并字符串:CONCAT(s1,s2,...)将字符串合并成一个字符串,如果字符串中包含NULL返回的拼接结果就是NULL
  4. 以指定的分隔符拼接字符串:CONCAT_WS(x,s1,s2,s3);x为拼接符,xnull则结果为null
  5. 将字符串转换为大写:UPPER(s)|UCASE(s)
  6. 将字符串转换为小写:LOWER(s)|LCASE(s)
  7. 反转字符串:REVERSE(abc) 结果cba(将顺序反转)
  8. 返回字符串的前几个或后几个字符:LEFT(字符,前字符数),RIGHT(字符,后字符数)
  9. 用字符串填充到指定长度:LPAD(s(原字符串),n(长度),s1(用来填充的字符串))(左端填充)RPAD(s,n,s1)(右端填充)
  10. 去掉字符串的空格:两端TRIM(s)|左端LTRIM(s)|右端RTRIM(s)
  11. 重复指定的次数:REPEAT(s(字符串),n(重复次数))
  12. 字符串替换:REPLACE(s(原字符串),s1(要被替换的字符串),s2(用来替换的字符串))
  13. 截取字符串:SUBSTRING(s(原字符串),n1(起始点从1开始),n2(截取几位))
  14. 比较字符串:STRCMP(s1,s2)如果第一个字符串大于第二个字符串返回1,小于返回-1,等于返回0

日期函数

  1. curdate()显示当前日期
  2. current_date()显示当前日期
  3. curtime()显示当前时间
  4. current_time()显示当前时间
  5. now()显示当前日期时间
  6. current_timestamp()显示当前日期时间
  7. sysdate()显示当前日期时间
  8. month(‘2017-02-19’);显示当前月份2
  9. 各个函数可以嵌套 select month(curdate()),monthName(curdate());
  10. curdate()//
  11. dayname(now());//返回星期几
  12. dayofweek(now());//返回一周内的第几天,星期天是1星期一是2
  13. weeknow())//返回一年中的第多少个星期
  14. year(now())返回年份
  15. day(now())返回日
  16. hour(now())返回小时
  17. minute()返回分钟
  18. second()返回秒
  19. select datediff('2017-01-05','2019-01-05');计算两个日期相差的天数

其他常用函数

image.png

  1. SELECT VERSION()得到当前版本
  2. SELECT CONNECTION_ID()得到当前连接数
  3. SELECT DATABASE()或者SCHEMA();得到当前打开的数据库
  4. SELECT USER(),CURRENT_USER(),SYSTEM_USER(),SESSION_USER()得到当前用户
  5. SELECT LAST_INSERT_ID()得到上一步插入操作产生的AUTO_INCREMENT的值 --重要
  6. SELECT MD5('king') MD5加密函数
  7. PASSWORD('root') 密码加密算法,添加用户和系统用户使用的加密算法是PASSWORD,也只能使用PASSWORD而不能使用MD5来添加用户的密码。

条件函数

MySQL中存在条件函数(case when),有些类似于Java中的if-else语句。
等值转换

  1. select
  2. name as '名字',
  3. (case sex when 0 then '女' else '男' end) as '性别'
  4. from test.student;

行列转换

  1. select name as '姓名'
  2. ,(case course when '语文' then score else 0 end) as '语文'
  3. ,(case course when '数学' then score else 0 end) as '数学'
  4. ,(case course when '英语' then score else 0 end) as '英语'
  5. from test.course_score