MySQL数据库——其他函数的使用
字符串的常用函数;常与数值结合使用的函数;MySQL中常用的日期时间函数
·
第1关 字符函数
1、字符串的常用函数:
| 函数 | 作用 |
|---|---|
CONCAT() |
字符串的拼接 |
CONCAT_WS() |
使用指定的字符将目标字符串进行拼接 |
FORMAT() |
数字格式化 |
LOWER() |
字符串全部转换为小写 |
UPPER() |
字符串全部转换为大写 |
LEFT() |
获取左侧的字符串 |
RIGHT() |
获取右侧的字符串 |
LENGTH() |
计算字符串的长度 |
LTRIM() |
删除前导的空格 |
RTRIM() |
删除后续的空格 |
TRIM() |
删除前导和后续的空格 |
SUBSTRING() |
字符串截取 |
SUBSTRING_INDEX() |
分隔字符串 |
REPLACE() |
字符串替换 |
[NOT] LIKE |
模式匹配 |
2、编程要求
- 以首字母大写,其他字母小写的方式显示所有员工的姓名。
employee员工表数据结构如下:
| Id | Name |
|---|---|
| 1 | lYN |
| 2 | wZQ |
| 3 | xLC |
| 4 | aLW |
| 5 | lZY |
########## Begin ##########
select CONCAT (upper(SUBSTR(NAME,1,1)),LOWER(SUBSTR(NAME,2,LENGTH(NAME)))) as Name from employee;
########## End ##########
第2关 数学函数
1、常与数值结合使用的函数:
| 函数 | 说明 |
|---|---|
CEIL() |
进一(向上)取整 |
FLOOR() |
舍一(向下)取整 |
POWER() |
幂运算 |
SQRT() |
平方根运算 |
ROUND() |
四舍五入 |
ABS() |
绝对值计算 |
RAND() |
生产0-1的随机数 |
TRUNCATE() |
数字截取 |
DIV |
整数除法 |
MOD |
取余数(取模) |
2、CEIL()和FLOOR()
这两个函数都是对值进行取整,CEIL()函数是向上取整,FLOOR()是向下取整:

3、MySQL中还有比较运算符:
| 函数 | 说明 |
|---|---|
[NOT] BETWEEN...AND... |
[不]在范围内 |
[NOT] IN() |
[不]在列出值范围内 |
IS [NOT] NULL |
[不]为空 |
4、编程要求
在Begin - End区域内进行代码补充,具体任务如下:
- 根据下面表达式修改学生的最终成绩,结果使用四舍五入保留两位小数:

########## Begin ##########
update Score set s_score=TRUNCATE(s_score-(round(sqrt((power(4,4)-power(3,3))/power(2,2)),2)),2);
########## End ##########
第3关 日期时间函数和流程控制函数
1、MySQL中常用的日期时间函数:
| 函数 | 说明 |
|---|---|
NOW() |
当前日期和时间 |
CURDATE() |
当前日期 |
CURTIME() |
当前时间 |
DATE_ADD() |
日期变化 |
DATEDIFF() |
日期差值 |
DATE_FORMAT() |
日期格式化 |
YEAR() |
返回日期的年份 |
MONTH() |
返回日期的月份 |
WEEK() |
返回日期的周号 |
2、以下是在format字符串中常用的说明符,更多的说明符可在 MySQL 官方文档中进行查看:
| 格式 | 描述 |
|---|---|
%d |
月的天,数值(00-31) |
%H |
小时 (00-23) |
%h |
小时 (01-12) |
%m |
月,数值(00-12) |
%p |
AM 或 PM |
%s |
秒(00-59) |
%T |
时间,24-小时(hh:mm:ss) |
%Y |
年,4 位 |
3、流程控制类函数
| 函数 | 说明 |
|---|---|
IF() |
判断,流程控制 |
IFNULL() |
字段值是否为空 |
CASE |
搜索语句 |
4、编程要求
在Begin - End区域内进行代码补充,具体任务如下:
-
查询所有学生的出生年份及至
2019-01-01时的年龄; -
查询所有课程中的最高分、最低分、平均分和及格率,按课程
id升序输出。
########## Begin ##########
########## 查询学生出生年份及年龄 ##########
select year(s_birth) year,'2019-01-01'-s_birth '年龄' from Student;
########## 查询课程的最高分、最低分、平均分和及格率 #########
select c.c_id 课程id,
c_name 课程名,
max(s_score) 最高分,
min(s_score) '最低分',
round(avg(s_score),2) '平均分',
round((count(s_score>=60 or null)/count(s_score))*100,2) '及格率'
from Score s,Course c
where s.c_id=c.c_id
group by s.c_id;
########## End ##########
第4关 自定义函数
1、编程要求
在Begin - End区域内进行代码补充,具体任务如下:
-
定义一个函数,输出三个数中的最大值,函数形式为:
-
fn_three_max(param_1 int, param_2 int, param_3 int)。
########## Begin ##########
create function fn_three_max(param_1 int,param_2 int, param_3 int)returns int
return 999;
########## End ##########更多推荐
所有评论(0)