'数据库原理及应用进阶'
进阶
MySQL内置函数
一,含义:是指一段可以直接被另一段程序调用的程序或代码
二,分类:
字符串函数 (使用时,前面加select)eg,select concat(’he’,’DE’)
- CONCAT(S1,S2,S3):字符串拼接,将S1,S2,S3拼接成一个字符串
- LOWER(str):将字符串str全部转化为小写
- UPPER(str) : 将字符串str全部转化为大写
- LPAD(str,n,pad):左填充,用字符串pad对str的左边进行填充,达到n个字符串的长度
- RPAD (str,n,pad) :右填充,用字符串pad对str的右边进行填充,达到n个字符串的长度
- TPIM(str):去掉字符串头部和尾部的空格
- SUBSTRING(str,start,len):返回从字符串str从start位置起的len个长度的字符串
- 例如,如果要单个工号前面添加0000,就使用update 表名 set workno = lpad(workno,5,’0’)
数值函数
- CEIL(x):向上取整
- FLOOR(x):向下取整
- MOD (x,y): 返回x/y的模
- RAND():返回0-1内的随机数
- ROUND(x,y):求x四舍五入的值,暴露y位小数
- 例如随机生成一个6位数的验证码,select lpad(round(rand()1000000,0),6,’0’),首先进行生成0-1的随机数,然后乘以1000000就变成了一个六位数带有小数的数,在用round()四舍五入消除小数,注意,如果是0.0123451000000就会只有5位数,所以我们要进行填充,使用lpad或者rpad都可以
日期函数
- CURDATE():返回当前日期
- CURTIME(): 返回当前时间
- NOW(): 返回当前日期和时间
- YEAR(date):获取指定date的年份
- MONTH(date): 获取指定date的月份
- DAY(date):获取指定date的日期
- DATE_ADD(date,INTERVAL expr type):返回一个日期/时间值加上一个时间间隔expr后的时间值
- DATEDIFF(date1,date2):返回起始时间date1,和结束时间date2之间的天数
- 例如,从当前日期往后推70天,select date_add(now(),INTERVAL 70 DAY);查询员工入职的天数并降序排序,select name datediff(curdate(),entrydate) as ‘entrydays’ from 表 order by entrydays desc;使用datediff函数,为了方便排序,用as 给计算的天数起个别名,方便order by 使用
All articles in this blog are licensed under CC BY-NC-SA 4.0 unless stating additionally.