MySQL数据库——其他函数的使用

第1关 字符函数

1、字符串的常用函数:

函数作用
CONCAT()字符串的拼接
CONCAT_WS()使用指定的字符将目标字符串进行拼接
FORMAT()数字格式化
LOWER()字符串全部转换为小写
UPPER()字符串全部转换为大写
LEFT()获取左侧的字符串
RIGHT()获取右侧的字符串
LENGTH()计算字符串的长度
LTRIM()删除前导的空格
RTRIM()删除后续的空格
TRIM()删除前导和后续的空格
SUBSTRING()字符串截取
SUBSTRING_INDEX()分隔字符串
REPLACE()字符串替换
[NOT] LIKE模式匹配

2、编程要求

  • 以首字母大写,其他字母小写的方式显示所有员工的姓名。

employee员工表数据结构如下:

IdName
1lYN
2wZQ
3xLC
4aLW
5lZY
########## 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
%pAM 或 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 ##########
  • 11
    点赞
  • 60
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

椅糖

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值