14)系统函数

发布时间 2023-05-30 19:04:24作者: QianFa01

1、数字函数:

注意:1)d 取负值代表整数部分有d个 低位为0;d 取正值表示保留小数点后几位,四舍五入;truncate是截断取值;

2)rand(),代表 0-1之间的随机小数;

 3)ceil 代表向上取整,floor代表向下取整;

2、字符串函数:

要注意:1)char_length 是字符串的长度,length代表的是该字符串是几个字节;

可以看到一个汉字占3个字节,1个英文字母占1个字节;

 2)ltrim、rtrim、trim去掉空格;

 3)upper、lower;

 4)substring从1开始算起;

3、日期时间函数:

 now函数传参是精确值;

select year(curdate()) 年,month(curdate()) 月, dayofmonth(curdate()) 日, hour(curtime()) 时, minute(curtime()) 分,second(curtime()) 秒,microsecond(now(6));

 

4、条件控制函数;

1)if()函数,相当于三目运算符;

select student_no,course_no,score, if(score >= 60, '','') 是否通过 from choose;

 2)ifnull()函数,判断是否为0,让 null 也能正常参与运算;;

考虑一个问题,当一个学生只考了期末考试,但是没有平时成绩;那么按照八二占比,该学生最后的成绩是可能及格的;

对于exam表;

select * from exam;

 当我们计算综合成绩时:

 可以看出3、4号学生没有成绩;这与我们期望不符;原因就在于null参与了运算,其结果都是null;

当我们使用ifnull函数时:

select stu_no,exam_score,regular_score, ifnull(exam_score,0)*0.8+ifnull(regular_score,0)*0.2 total_score from exam;

 该结果与预期结果相符;