第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区域内进行代码补充,具体任务如下:

  1. 查询所有学生的出生年份及至2019-01-01时的年龄;

  2. 查询所有课程中的最高分、最低分、平均分和及格率,按课程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 ##########
Logo

腾讯云面向开发者汇聚海量精品云计算使用和开发经验,营造开放的云计算技术生态圈。

更多推荐