《数据库原理与应用技术-MySQL》MySQL基础知识(2)(举一反三考点练)-课后自测(卷2)

2025-10-10
| 2份
| 10页
| 88人阅读
| 0人下载

内容正文:

举一反三考点练 《数据库原理与应用技术-MySQL》MySQL基础知识-课后自测 知识点一 MySQL运算符分类与使用规则 1.(SQL 语句题)请写出一条 SELECT 语句,计算表达式 17 DIV 5 与 17 % 5 的值,并把两列结果分别命名为 int_quo 和 int_mod。 2.(SQL 语句题)写出一条语句,查询 t_student 表中年龄 age 在 15 到 18 之间(含 15、18)且性别 sex 为 '女' 的学生全部字段。 3.(程序填空题)下列命令用于判断字段 bonus 是否为空,若为空则显示 0,否则显示原值,请补全空缺函数名。 SELECT ________(bonus,0) FROM t_salary; 4.(程序填空题)在 WHERE 子句中,若要把某字符串列 city 的“以 B 开头倒数第 3 字符为 e”的记录筛选出来,应使用 LIKE 模式: city LIKE '_____%'; 5.(综合应用题) 成绩表 t_grade id stu_id score course_id 1 1001 95.5 1 2 1002 88 1 3 1003 79.5 2 4 1004 84.5 2 5 1005 90 3 6 1006 89.99 3 7 1007 80 4 8 1008 77 4 课程表 t_course id name 1 高等数学 2 英语 3 NULL 4 物理 5 NULL 1) 用一条语句查询 t_grade 表中成绩 score 在 [80,90) 区间内的记录,只显示 id、stu_id、score 三列; 2) 再写一条语句统计上述区间成绩的学生人数,并把结果列命名为 cnt; 3) 写一条语句将 t_course 表中 name 值为 NULL 的记录查询出来,只返回 id 列。 知识点二 MySQL函数的分类与功能 1.(SQL 语句题)写出一条语句,查询 t_student 表,返回每名学生的姓名 name 及其姓名的字符长度(列别名 name_len)。 2.(SQL 语句题)使用数学函数,生成一个 1—100 之间(含 1 不含 100)的随机整数,并把该列别名设为 lucky。 3.(程序填空题)若要把字符串列 phone 的中间 4 位替换为星号,可写: SELECT CONCAT(LEFT(phone,3),'____',RIGHT(phone,4)) FROM t_user; 4.(程序填空题)计算某列 birth(DATE 型)到今天的年龄(周岁),应写: SELECT TIMESTAMPDIFF(______,birth,CURDATE()) AS age FROM t_user; 5.(综合应用题) t_grade 成绩表 score 95.5 79.5 84.5 90 89.99 80 77 t_course 课程表 name 高等数学 英语 NULL 物理 NULL 1) 用聚合函数统计 t_grade 表的最高分、最低分、平均分,列别名分别为 max_s、min_s、avg_s; 2) 用字符串函数把课程名 name 列统一为大写并去掉首尾空格,返回两列:原 name、处理后的 name(别名 clean_name); 3) 用日期函数查询当前是星期几(英文全称),列别名 week_day。 知识点三 MySQL函数的实际应用与注意事项 1.(SQL 语句题)写出一条语句,查询 t_grade 表,若 score 为 NULL 则显示 0,否则显示原值,列别名 real_score。 2.(SQL 语句题)把 t_student 表按性别 sex 分组,统计每组人数,要求使用 COUNT 函数并去除同名学生(按 name 去重),结果列别名 cnt_dist。 3.(程序填空题)在批量插入后若想获取最近一次生成的自增 ID,应使用系统函数: SELECT ________(); 4.(程序填空题)当需要把价格列 price 保留 2 位小数并格式化为千分位字符串(如 1,234.56)时,应使用函数: SELECT ________(price,2) FROM t_goods; 5.(综合应用题) t_grade id stu_id score 1 1001 95.5 2 1002 88 3 1003 79.5 4 1004 84.5 t_student name sex age 张三 男 20 李四 女 17 王五 男 18 1) 用 ROUND 函数把 t_grade 表中 score 列四舍五入到整数,更新回原列; 2) 用日期函数查询今天距离 2026-06-07 00:00:00 还有多少天,列别名 days_left; 3) 用 IF 函数查询 t_student 表,返回 name、sex,并增加一列描述 desc,规则:若 age>=18 显示“成年”,否则显示“未成年”。 原创精品资源学科网独家享有版权,侵权必究!2 学科网(北京)股份有限公司 学科网(北京)股份有限公司 $ 举一反三考点练 《数据库原理与应用技术-MySQL》MySQL基础知识-课后自测 知识点一 MySQL运算符分类与使用规则 1.(SQL 语句题)请写出一条 SELECT 语句,计算表达式 17 DIV 5 与 17 % 5 的值,并把两列结果分别命名为 int_quo 和 int_mod。 【答案】SELECT 17 DIV 5 AS int_quo, 17 % 5 AS int_mod; 2.(SQL 语句题)写出一条语句,查询 t_student 表中年龄 age 在 15 到 18 之间(含 15、18)且性别 sex 为 '女' 的学生全部字段。 【答案】SELECT * FROM t_student WHERE age BETWEEN 15 AND 18 AND sex='女'; 3.(程序填空题)下列命令用于判断字段 bonus 是否为空,若为空则显示 0,否则显示原值,请补全空缺函数名。 SELECT ________(bonus,0) FROM t_salary; 【答案】IFNULL 4.(程序填空题)在 WHERE 子句中,若要把某字符串列 city 的“以 B 开头倒数第 3 字符为 e”的记录筛选出来,应使用 LIKE 模式: city LIKE '_____%'; 【答案】B%e__ 5.(综合应用题) 成绩表 t_grade id stu_id score course_id 1 1001 95.5 1 2 1002 88 1 3 1003 79.5 2 4 1004 84.5 2 5 1005 90 3 6 1006 89.99 3 7 1007 80 4 8 1008 77 4 课程表 t_course id name 1 高等数学 2 英语 3 NULL 4 物理 5 NULL 1) 用一条语句查询 t_grade 表中成绩 score 在 [80,90) 区间内的记录,只显示 id、stu_id、score 三列; 2) 再写一条语句统计上述区间成绩的学生人数,并把结果列命名为 cnt; 3) 写一条语句将 t_course 表中 name 值为 NULL 的记录查询出来,只返回 id 列。 【答案】 1) SELECT id,stu_id,score FROM t_grade WHERE score BETWEEN 80 AND 89.999; 2) SELECT COUNT(*) AS cnt FROM t_grade WHERE score BETWEEN 80 AND 89.999; 3) SELECT id FROM t_course WHERE name IS NULL; 知识点二 MySQL函数的分类与功能 1.(SQL 语句题)写出一条语句,查询 t_student 表,返回每名学生的姓名 name 及其姓名的字符长度(列别名 name_len)。 【答案】SELECT name,CHAR_LENGTH(name) AS name_len FROM t_student; 2.(SQL 语句题)使用数学函数,生成一个 1—100 之间(含 1 不含 100)的随机整数,并把该列别名设为 lucky。 【答案】SELECT FLOOR(1+RAND()*99) AS lucky; 3.(程序填空题)若要把字符串列 phone 的中间 4 位替换为星号,可写: SELECT CONCAT(LEFT(phone,3),'____',RIGHT(phone,4)) FROM t_user; 【答案】**** 4.(程序填空题)计算某列 birth(DATE 型)到今天的年龄(周岁),应写: SELECT TIMESTAMPDIFF(______,birth,CURDATE()) AS age FROM t_user; 【答案】YEAR 5.(综合应用题) t_grade 成绩表 score 95.5 79.5 84.5 90 89.99 80 77 t_course 课程表 name 高等数学 英语 NULL 物理 NULL 1) 用聚合函数统计 t_grade 表的最高分、最低分、平均分,列别名分别为 max_s、min_s、avg_s; 2) 用字符串函数把课程名 name 列统一为大写并去掉首尾空格,返回两列:原 name、处理后的 name(别名 clean_name); 3) 用日期函数查询当前是星期几(英文全称),列别名 week_day。 【答案】 1) SELECT MAX(score) AS max_s,MIN(score) AS min_s,AVG(score) AS avg_s FROM t_grade; 2) SELECT name,UPPER(TRIM(name)) AS clean_name FROM t_course; 3) SELECT DAYNAME(NOW()) AS week_day; 知识点三 MySQL函数的实际应用与注意事项 1.(SQL 语句题)写出一条语句,查询 t_grade 表,若 score 为 NULL 则显示 0,否则显示原值,列别名 real_score。 【答案】SELECT IFNULL(score,0) AS real_score FROM t_grade; 2.(SQL 语句题)把 t_student 表按性别 sex 分组,统计每组人数,要求使用 COUNT 函数并去除同名学生(按 name 去重),结果列别名 cnt_dist。 【答案】SELECT sex,COUNT(DISTINCT name) AS cnt_dist FROM t_student GROUP BY sex; 3.(程序填空题)在批量插入后若想获取最近一次生成的自增 ID,应使用系统函数: SELECT ________(); 【答案】LAST_INSERT_ID 4.(程序填空题)当需要把价格列 price 保留 2 位小数并格式化为千分位字符串(如 1,234.56)时,应使用函数: SELECT ________(price,2) FROM t_goods; 【答案】FORMAT 5.(综合应用题) t_grade id stu_id score 1 1001 95.5 2 1002 88 3 1003 79.5 4 1004 84.5 t_student name sex age 张三 男 20 李四 女 17 王五 男 18 1) 用 ROUND 函数把 t_grade 表中 score 列四舍五入到整数,更新回原列; 2) 用日期函数查询今天距离 2026-06-07 00:00:00 还有多少天,列别名 days_left; 3) 用 IF 函数查询 t_student 表,返回 name、sex,并增加一列描述 desc,规则:若 age>=18 显示“成年”,否则显示“未成年”。 【答案】 1) UPDATE t_grade SET score=ROUND(score); 2) SELECT DATEDIFF('2026-06-07',CURDATE()) AS days_left; 3) SELECT name,sex,IF(age>=18,'成年','未成年') AS desc FROM t_student; 原创精品资源学科网独家享有版权,侵权必究!2 学科网(北京)股份有限公司 学科网(北京)股份有限公司 $

资源预览图

《数据库原理与应用技术-MySQL》MySQL基础知识(2)(举一反三考点练)-课后自测(卷2)
1
《数据库原理与应用技术-MySQL》MySQL基础知识(2)(举一反三考点练)-课后自测(卷2)
2
所属专辑
由于学科网是一个信息分享及获取的平台,不确保部分用户上传资料的 来源及知识产权归属。如您发现相关资料侵犯您的合法权益,请联系学科网,我们核实后将及时进行处理。