数据库原理与应用 第 15 章 · 上机三
课程第 15 章上机三 数学函数字符串函数日期函数系统与加密聚合统计控制流函数连续练习 版式
第 15 章 存储过程与函数 · 上机三

内置函数照着课件试一遍

课件第 41 到 51 页十一页全是表格,投影上看不清,这一份把每一类挑出来敲。
已完成 0 / 6
本 次 上 机 题 目
  1. 01四个取整,各取各的
  2. 02数长度那两个不一样
  3. 03取一段、算差、换格式
  4. 04问服务器它自己,再算一个摘要
  5. 05例 15-8:每人几门课,平均几分
  6. 06在一句 SQL 里做判断
  7. 几类函数拼一张学生名片
01
第 15 章 · 上机三

四个取整,各取各的

ROUND 四舍五入,TRUNCATE 直接砍掉。

Welcome to the MySQL monitor. Commands end with ;
Server version: 8.0.36 MySQL Community Server - GPL
终端一打开就在 teaching 库里,五张表已经装好。这一章要往里面存过程和函数。
mysql>

重 点

TRUNCATE(3.19,1) 是 3.1,ROUND(3.19,1) 是 3.2,一个砍一个进。

想一想

算钱的时候该用哪一个?

02
第 15 章 · 上机三

数长度那两个不一样

LENGTH 数字节,CHAR_LENGTH 数字符,中文差三倍。

Welcome to the MySQL monitor. Commands end with ;
Server version: 8.0.36 MySQL Community Server - GPL
终端一打开就在 teaching 库里,五张表已经装好。这一章要往里面存过程和函数。
mysql>

重 点

一个汉字在 utf8mb4 里占三个字节,LENGTH('数据库') 是 9 不是 3。

知道更多

第 4 章讲字符集时埋的那个坑,到这里才有函数把它数出来。

想一想

要限制姓名不超过十个字,该用哪一个函数?

03
第 15 章 · 上机三

取一段、算差、换格式

格式符那一串记住 %Y %m %d 就够用了。

Welcome to the MySQL monitor. Commands end with ;
Server version: 8.0.36 MySQL Community Server - GPL
终端一打开就在 teaching 库里,五张表已经装好。这一章要往里面存过程和函数。
mysql>

重 点

1 月 31 日加一个月是 2 月 28 日,MySQL 自己会往回缩到当月最后一天。

知道更多

第 14 章说日期要用 DATE 不要用字符串,这一批函数就是那样做的回报。

想一想

把 tcdate 改成 VARCHAR,这些函数还能用吗?

04
第 15 章 · 上机三

问服务器它自己,再算一个摘要

MD5 是单向的,只能对着比,还原不回来。

Welcome to the MySQL monitor. Commands end with ;
Server version: 8.0.36 MySQL Community Server - GPL
终端一打开就在 teaching 库里,五张表已经装好。这一章要往里面存过程和函数。
mysql>

重 点

MD5 出来永远是 32 位,第 14 章那个 char(32) 的密码列就是给它留的。

知道更多

存摘要不存明文,库被拖走了口令也不会直接泄露,这是最起码的做法。

想一想

两个人的口令一样,库里存的摘要一样吗?

05
第 15 章 · 上机三

例 15-8:每人几门课,平均几分

课件出的题,一句 GROUP BY 就够。

Welcome to the MySQL monitor. Commands end with ;
Server version: 8.0.36 MySQL Community Server - GPL
终端一打开就在 teaching 库里,五张表已经装好。这一章要往里面存过程和函数。
mysql>

重 点

题目说的是「已选课同学」,所以只有七行,s6 一门没选就不在里面。

知道更多

COUNT(列名) 不数 NULL,COUNT(*) 数,最后一句把这个差别摆出来了。

想一想

平均分那一列为什么带六位小数?

06
第 15 章 · 上机三

在一句 SQL 里做判断

IF、IFNULL、CAST 三个,不用写存储过程也能拐弯。

Welcome to the MySQL monitor. Commands end with ;
Server version: 8.0.36 MySQL Community Server - GPL
终端一打开就在 teaching 库里,五张表已经装好。这一章要往里面存过程和函数。
mysql>

重 点

IF() 是函数,写在一行里。IF…THEN 是语句,只能写在过程体里。两回事。

分清楚同名两样

写法用在哪
IF(a,b,c)任何 SQL 里
IF..THEN过程体里

想一想

最后一句要是成绩为空,判定列会是什么?

第 15 章 · 上机三

几类函数拼一张学生名片

把这一节学的东西凑到一句里去。

Welcome to the MySQL monitor. Commands end with ;
Server version: 8.0.36 MySQL Community Server - GPL
终端一打开就在 teaching 库里,五张表已经装好。这一章要往里面存过程和函数。
mysql>

重 点

第二句里没选课的同学平均分是 0 不是 NULL,因为外面套了 IFNULL。

知道更多

把 IFNULL 去掉再跑一遍,就知道这一层包装挡掉了什么。

想一想

ORDER BY 后面能直接写中文别名吗?

保山学院·人工智能教研室·曹鼎鼎