首页概览 Dashboard
欢迎使用 MySQL 数据库作业与实战面板!已完整收录所有历史作业中的全部题目(包含用于重复演练的初始化与操作语句),并按照知识分类整理。
💡 快速上手说明
- 零基础巩固阶梯:侧边栏重构为 8 大通关章节 (Stage 1 to 8)。从最简单的单表无条件检索,一路进阶到复杂的多表连接、视图及库表定义 DDL,完美支持零基础巩固!
- 一键查看与控制:顶部控制栏支持一键展开/折叠所有 SQL 答案和运行结果,方便您快速查阅或对比答案。
- 快速复制代码:将鼠标悬停在 SQL 框中,点击右上角的
复制按钮即可快速粘贴到 Navicat。 - 开启巩固测试:左下角开关可启用“闪卡测试”模式,遮盖参考答案,输入您记忆中的 SQL 语句即可当场检测,强化考前记忆!
- 双端口保障说明:针对本地 WampServer 可能存在的端口差异,我们已在本地 3306 (MySQL) 和 3307 (MariaDB) 双端口同时部署了这三个数据库,您可以在 Navicat 中放心访问。
📊 关联数据库一览 (3 Databases)
🗄️ 教务管理系统
用于“《MySQL数据库应用》查询综合测试”,包含学生选课、选教、成绩总评的教务核心模型。
student (学生表)
score (成绩表)
course (课程表)
teacher (教师表)
class (班级表)
teatask (教师授课任务表)
🗄️ bookmanager
用于“作业1、2、3、4、5”,支持出版社、图书资料、读者分类和图书借阅的图书管理系统。
publish (出版社表)
book (图书基本表)
reader (读者基本表)
borrow (借阅记录表)
🗄️ db_library
用于“作业6视图操作”,精简版的图书借阅表,包含 90 后 / 80 后读者检索。
t_press (出版社表)
t_book (图书表)
t_reader (读者表)
t_borrow_record (借书记录)
DQL.1
【bookmanager】查询所有图书的基本信息。
LEVEL 1
🗝️ 查看 SQL 参考答案
SELECT * FROM book;
👁️ 查看运行结果
+----------+---------------------------------+--------+------------+--------+-------+----------+ | 图书编号 | 图书名称 | 作者 | 出版社编号 | 版次 | 价格 | 库存数量 | +----------+---------------------------------+--------+------------+--------+-------+----------+ | B00001 | 数据库系统概论 | 萨师喧 | P002 | 第三版 | 25.10 | 20 | | B00002 | SQL Server2005 数据库原理及应用 | 吴小刚 | NULL | 第二版 | 30.00 | 30 | | B00003 | C语言程序设计 | 谭浩强 | P001 | 第三版 | 29.00 | 25 | | B00004 | 大学英语 | 刘单 | P001 | 第一版 | 24.00 | 10 | +----------+---------------------------------+--------+------------+--------+-------+----------+
DQL.2
【bookmanager】查询所有图书的图书编号、图书名称和价格。
LEVEL 1
🗝️ 查看 SQL 参考答案
SELECT 图书编号, 图书名称, 价格 FROM book;
👁️ 查看运行结果
+----------+---------------------------------+-------+ | 图书编号 | 图书名称 | 价格 | +----------+---------------------------------+-------+ | B00001 | 数据库系统概论 | 25.10 | | B00002 | SQL Server2005 数据库原理及应用 | 30.00 | | B00003 | C语言程序设计 | 29.00 | | B00004 | 大学英语 | 24.00 | +----------+---------------------------------+-------+
DQL.3
【教务管理系统】在 Student 表中查询出所有女生的信息。
LEVEL 1
🗝️ 查看 SQL 参考答案
SELECT * FROM student WHERE ssex = '女';
👁️ 查看运行结果
+------------+--------+------+------------+----------+-------------+-------------------------------+ | sno | sname | ssex | sbirthday | classno | sphone | saddress | +------------+--------+------+------------+----------+-------------+-------------------------------+ | 2018010107 | 蒋飞飞 | 女 | 1998-02-07 | 20180101 | 18725525053 | 阜阳市阜南县焦坡镇焦坡村 | | 2018010108 | 王淑敏 | 女 | 2001-04-27 | 20180101 | 18255206926 | 亳州市涡阳县花沟镇蒋村站 | | 2018010111 | 梁雅洁 | 女 | 2000-01-09 | 20180101 | 18715226979 | 安庆怀宁三桥镇龙门村 | | 2018010119 | 陈雪丽 | 女 | 2001-01-26 | 20180101 | 18715228857 | 六安市固镇镇 | | 2018010120 | 沈宏图 | 女 | 1998-10-18 | 20180101 | 18255216860 | 滁州市定远县吴圩镇 | | 2018010121 | 浦芳远 | 女 | 1999-09-04 | 20180101 | 18255203151 | 阜阳市闻集镇 | | 2018010202 | 蒲云云 | 女 | 1999-02-11 | 20180102 | 18715227120 | 宣城市泾县琴溪镇 | | 2018010203 | 昝凡凡 | 女 | 1999-12-05 | 20180102 | 18949334556 | 合肥市庐江县魏垱村 | | 2018010209 | 赵玉 | 女 | 1998-09-16 | 20180102 | 13655663743 | 滁州市定远县朗峰村 | | 2018010211 | 汪静 | 女 | 2000-10-09 | 20180102 | 13220529963 | 合肥市肥东县古城镇 | | 2018010212 | 杨玉庆 | 女 | 2000-08-04 | 20180102 | 13185359332 | 池州市东至县尧渡镇 | | 2018010214 | 樊奇奇 | 女 | 1998-08-20 | 20180102 | 15212240637 | 阜阳市颍州区二里井新村5栋12 | | 2018010215 | 程莉莉 | 女 | 1999-09-12 | 20180102 | 13323990100 | 安庆市潜山县黄柏镇黄柏村26号 | | 2018010218 | 方德林 | 女 | 1998-10-19 | 20180102 | 13327111332 | 芜湖市无为县石涧镇 | | 2018010219 | 张能能 | 女 | 1999-08-22 | 20180102 | 13522150569 | 蚌埠市胜利一村3栋1单元5号 | | 2018010221 | 胡银君 | 女 | 1998-12-15 | 20180102 | 13099340097 | 滁州市定远县炉桥镇李巷村 | | 2018020101 | 田文文 | 女 | 1999-01-03 | 20180201 | 15178387005 | 阜南县鹿城镇小刘村 | | 2018020102 | 吴意雯 | 女 | 2000-07-04 | 20180201 | 13675635253 | 阜阳市临泉县 | | 2018020104 | 张纯 | 女 | 2001-07-23 | 20180201 | 15556256831 | 肥东县张集乡胡巷村 | | 2018020114 | 姚远 | 女 | 1999-02-01 | 20180201 | 13155545152 | 安庆市宜秀区大龙山镇 | | 2018020116 | 张紫蝶 | 女 | 2000-09-08 | 20180201 | 13101990712 | 芜湖市鸠江区龙山街道九华北路 | | 2018030103 | 张陈慧 | 女 | 1999-12-18 | 20180301 | 15056570388 | 淮南市田家庵区 | | 2018030105 | 肖阿美 | 女 | 1999-10-11 | 20180301 | 18656317127 | 宿州市泗县朝阳路108号 | | 2018030108 | 卢洪霞 | 女 | 1998-08-16 | 20180301 | 18656319367 | 宿州市萧县龙城镇淮海东路1号 | | 2018030110 | 陈乐群 | 女 | 1999-07-25 | 20180301 | 13515611087 | 萧县龙城镇淮海东路1号 | | 2018030112 | 苏皖 | 女 | 2000-05-13 | 20180301 | 15856946189 | 马鞍山市当涂县黄池中路 | | 2018040101 | 周钰杞 | 女 | 1999-10-29 | 20180401 | 13327110590 | 合肥市肥东县 | | 2018040103 | 倪敏敏 | 女 | 1998-09-02 | 20180401 | 13622152245 | 合肥市肥东县 | | 2018040105 | 赵海容 | 女 | 2000-04-14 | 20180401 | 13321110497 | 六安市舒城县城关镇 | | 2018040106 | 徐娜 | 女 | 2000-09-13 | 20180401 | 13123110508 | 蚌埠市高新区 | | 2018040108 | 浦江虹 | 女 | 1999-10-22 | 20180401 | 13301152738 | 滁州市凤阳县新城区 | | 2018040110 | 张家楠 | 女 | 1999-07-05 | 20180401 | 13121151026 | 亳州市蒙城县 | | 2018040112 | 赵妍妍 | 女 | 1998-10-26 | 20180401 | 13222150867 | 淮南市凤台县 | | 2018040113 | 夏晨 | 女 | 2000-05-23 | 20180401 | 13222156118 | 亳州市涡阳县经开区 | | 2018060101 | 张华清 | 女 | 2000-11-15 | 20180601 | 13826154672 | 六安市安丰南路金安区 | | 2018060102 | 宋蝶蝶 | 女 | 1999-04-07 | 20180601 | 13224154562 | 池州市东至县西湖路滨河园 | | 2018060103 | 徐秋月 | 女 | 2000-10-26 | 20180601 | 13827111010 | 滁州市琅琊区欧阳修大道99号 | | 2018060104 | 陈明 | 女 | 2000-06-20 | 20180601 | 13222157052 | 宿州市萧县龙城镇淮海东路1号 | | 2018060108 | 杨慧茹 | 女 | 1999-12-04 | 20180601 | 13621111829 | 合肥市滨湖新区南京路288号 | | 2018060109 | 孙静 | 女 | 1999-12-19 | 20180601 | 13501151923 | 阜阳市临泉县城中南路19号 | | 2018060111 | 刘静 | 女 | 2000-08-10 | 20180601 | 13103110149 | 滁州市凤阳县新城 | | 2018060112 | 何露露 | 女 | 1998-09-12 | 20180601 | 13621112556 | 淮南市凤台县凤城大道 | | 2018060113 | 刘良羽 | 女 | 2000-10-02 | 20180601 | 13021180007 | 蚌埠市解放路69号 | | 2018060115 | 黄想如 | 女 | 1999-04-10 | 20180601 | 13323112468 | 安庆市宿松县孚玉镇 | | 2018220101 | 朱贵莹 | 女 | 1999-04-20 | 20182201 | 13426151704 | 滁州市天长市石梁中路88号 | | 2018220107 | 刘倩 | 女 | 1999-10-06 | 20182201 | 13101991350 | 滁州市定远县幸福东路 | | 2018220108 | 易丹 | 女 | 2000-03-03 | 20182201 | 13823990059 | 合肥市肥东县张集乡 | | 2018220111 | 张爱梅 | 女 | 2000-03-05 | 20182201 | 13825990098 | 淮北市百善三十处村129号 | | 2018220112 | 江婷婷 | 女 | 1998-03-08 | 20182201 | 13202990103 | 淮北市烈山区古饶镇 | | 2018220209 | 周星星 | 女 | 1998-06-04 | 20182202 | 13201990298 | 宿州市埇桥区解集乡清泉村 | | 2019010105 | 郭冬慧 | 女 | 1998-10-22 | 20190101 | 13221153224 | 阜阳市界首市新寨乡 | | 2019010109 | 王婷婷 | 女 | 1997-12-24 | 20190101 | 13101116033 | 蚌埠市龙子湖区李楼乡 | | 2019010113 | 郑思婕 | 女 | 1999-04-14 | 20190101 | 13226112399 | 宿州市萧县杜楼镇 | | 2019010115 | 江雨婷 | 女 | 1998-04-26 | 20190101 | 13402155080 | 亳州利辛县巩店镇 | | 2019010203 | 蔺晓嫚 | 女 | 1998-06-23 | 20190102 | 13282151876 | 阜阳市临泉县张新镇 | | 2019010212 | 曹旗 | 女 | 1998-08-20 | 20190102 | 13621112748 | 安庆市枞阳县项铺镇 | | 2019020113 | 徐悦 | 女 | 1998-09-27 | 20190201 | 13823113157 | 芜湖市无为县石涧镇 | | 2019030103 | 高尚 | 女 | 2000-02-11 | 20190301 | 13301152471 | 阜阳市临泉县牛庄乡 | | 2019030109 | 徐林娟 | 女 | 2000-10-06 | 20190301 | 13825113802 | 阜阳市临泉县 | | 2019060105 | 侯香宇 | 女 | 2000-02-18 | 20190601 | 13321156065 | 宿州市埇桥区 | | 2019060108 | 张瑞 | 女 | 1999-02-25 | 20190601 | 13825111985 | 阜阳市阜南县新村镇 | | 2019060112 | 吴巧巧 | 女 | 2001-12-28 | 20190601 | 13222154618 | 蚌埠市龙子湖区 | | 2019070103 | 刘婷婷 | 女 | 1998-09-06 | 20190701 | 13423153064 | 阜阳市临泉县 | +------------+--------+------+------------+----------+-------------+-------------------------------+
DQL.4
【bookmanager】查询读者信息表中姓“刘”的读者的基本信息。
LEVEL 1
🗝️ 查看 SQL 参考答案
SELECT * FROM reader WHERE 姓名 LIKE '刘%';
👁️ 查看运行结果
+----------+------+------+----------+-------------+ | 借书证号 | 姓名 | 性别 | 部门 | 联系电话 | +----------+------+------+----------+-------------+ | R00001 | 刘飞 | 男 | 计算机系 | 13542661111 | +----------+------+------+----------+-------------+
DQL.5
【bookmanager】查询 reader 表中读者姓名和部门,输出别名 name 和 department。
LEVEL 1
🗝️ 查看 SQL 参考答案
SELECT 姓名 AS name, 部门 AS department FROM reader;
👁️ 查看运行结果
+--------+------------+ | name | department | +--------+------------+ | 刘飞 | 计算机系 | | 张云 | 总务处 | | 吴杉杉 | NULL | | 黄湘祖 | 计算机系 | | 王浩 | 计算机系 | +--------+------------+
DQL.6
【bookmanager】查询部门为计算机系的读者的借书证号、姓名和联系电话。
LEVEL 1
🗝️ 查看 SQL 参考答案
SELECT 借书证号, 姓名, 联系电话 FROM reader WHERE 部门 = '计算机系';
👁️ 查看运行结果
+----------+--------+-------------+ | 借书证号 | 姓名 | 联系电话 | +----------+--------+-------------+ | R00001 | 刘飞 | 13542661111 | | R00004 | 黄湘祖 | 13865987415 | | R00005 | 王浩 | 13566889923 | +----------+--------+-------------+
DQL.7
【教务管理系统】在 Score 表中查询出 total 总评成绩在 95 分以上的成绩信息。
LEVEL 1
🗝️ 查看 SQL 参考答案
SELECT * FROM score WHERE total > 95;
👁️ 查看运行结果
+------------+-----+-----------+----------+-------+-------+ | sno | cno | peacetime | practice | final | total | +------------+-----+-----------+----------+-------+-------+ | 2018060101 | c05 | 96.0 | 97.0 | 96.0 | 96.3 | | 2018060102 | c10 | 95.0 | 92.0 | 98.0 | 95.3 | | 2018060104 | c01 | 98.0 | 100.0 | 93.0 | 96.6 | | 2018220105 | c21 | 98.0 | 95.0 | 94.0 | 95.5 | | 2018220107 | c21 | 100.0 | 98.0 | 93.0 | 96.6 | | 2019020103 | c01 | 99.0 | 95.0 | 96.0 | 96.6 | | 2019030101 | c01 | 100.0 | 100.0 | 95.0 | 98.0 | | 2019060101 | c10 | 100.0 | 100.0 | 95.0 | 98.0 | | 2019060102 | c01 | 99.0 | 95.0 | 96.0 | 96.6 | +------------+-----+-----------+----------+-------+-------+
DQL.8
【教务管理系统】在 Score 表查询出总评成绩 total 在 80 分到 90 之间学生成绩情况。
LEVEL 1
🗝️ 查看 SQL 参考答案
SELECT * FROM score WHERE total BETWEEN 80 AND 90;
👁️ 查看运行结果
+------------+-----+-----------+----------+-------+-------+ | sno | cno | peacetime | practice | final | total | +------------+-----+-----------+----------+-------+-------+ | 2018010102 | c01 | 80.0 | 82.0 | 84.0 | 82.2 | | 2018010102 | c04 | 83.0 | 85.0 | 82.0 | 83.2 | | 2018010103 | c01 | 86.0 | 88.0 | 80.0 | 84.2 | | 2018010104 | c02 | 80.0 | 80.0 | 82.0 | 80.8 | | 2018010105 | c02 | 86.0 | 88.0 | 88.0 | 87.4 | | 2018010106 | c01 | 90.0 | 90.0 | 90.0 | 90.0 | | 2018010106 | c02 | 88.0 | 88.0 | 88.0 | 88.0 | | 2018010108 | c02 | 88.0 | 88.0 | 85.0 | 86.8 | | 2018010109 | c01 | 90.0 | 90.0 | 87.0 | 88.8 | | 2018010109 | c04 | 88.0 | 88.0 | 90.0 | 88.8 | | 2018010201 | c04 | 82.0 | 85.0 | 75.0 | 80.1 | | 2018010202 | c01 | 88.0 | 88.0 | 86.0 | 87.2 | | 2018010203 | c01 | 89.0 | 89.0 | 88.0 | 88.6 | | 2018010204 | c02 | 88.0 | 90.0 | 85.0 | 87.4 | | 2018010204 | c04 | 82.0 | 88.0 | 81.0 | 83.4 | | 2018010205 | c02 | 82.0 | 86.0 | 80.0 | 82.4 | | 2018010205 | c04 | 90.0 | 90.0 | 90.0 | 90.0 | | 2018010206 | c02 | 88.0 | 88.0 | 89.0 | 88.4 | | 2018010206 | c04 | 85.0 | 85.0 | 85.0 | 85.0 | | 2018010207 | c01 | 85.0 | 85.0 | 82.0 | 83.8 | | 2018010207 | c02 | 88.0 | 88.0 | 86.0 | 87.2 | | 2018010207 | c04 | 82.0 | 83.0 | 84.0 | 83.1 | | 2018020101 | c07 | 80.0 | 88.0 | 80.0 | 82.4 | | 2018020102 | c01 | 82.0 | 87.0 | 82.0 | 83.5 | | 2018020102 | c04 | 82.0 | 82.0 | 78.0 | 80.4 | | 2018020103 | c04 | 87.0 | 90.0 | 85.0 | 87.1 | | 2018020103 | c07 | 85.0 | 88.0 | 82.0 | 84.7 | | 2018020104 | c01 | 80.0 | 88.0 | 79.0 | 82.0 | | 2018020104 | c07 | 86.0 | 88.0 | 85.0 | 86.2 | | 2018020105 | c04 | 83.0 | 88.0 | 80.0 | 83.3 | | 2018020105 | c07 | 88.0 | 86.0 | 80.0 | 84.2 | | 2018020106 | c04 | 85.0 | 88.0 | 86.0 | 86.3 | | 2018020106 | c07 | 88.0 | 88.0 | 88.0 | 88.0 | | 2018020107 | c01 | 90.0 | 90.0 | 88.0 | 89.2 | | 2018020107 | c04 | 90.0 | 92.0 | 88.0 | 89.8 | | 2018020107 | c07 | 90.0 | 90.0 | 86.0 | 88.4 | | 2018020108 | c01 | 85.0 | 88.0 | 78.0 | 83.1 | | 2018020108 | c04 | 85.0 | 88.0 | 80.0 | 83.9 | | 2018020108 | c07 | 85.0 | 88.0 | 80.0 | 83.9 | | 2018020109 | c01 | 85.0 | 88.0 | 79.0 | 83.5 | | 2018020109 | c04 | 85.0 | 88.0 | 83.0 | 85.1 | | 2018020109 | c07 | 85.0 | 88.0 | 83.0 | 85.1 | | 2018020110 | c01 | 88.0 | 88.0 | 86.0 | 87.2 | | 2018020111 | c07 | 88.0 | 80.0 | 74.0 | 80.0 | | 2018020112 | c04 | 97.0 | 95.0 | 76.0 | 88.0 | | 2018020112 | c07 | 99.0 | 95.0 | 67.0 | 85.0 | | 2018030101 | c01 | 92.0 | 88.0 | 75.0 | 84.0 | | 2018030101 | c03 | 93.0 | 92.0 | 72.0 | 84.3 | | 2018030102 | c01 | 99.0 | 95.0 | 69.0 | 85.8 | | 2018030102 | c04 | 94.0 | 93.0 | 80.0 | 88.1 | | 2018030104 | c04 | 99.0 | 95.0 | 77.0 | 89.0 | | 2018030106 | c03 | 99.0 | 95.0 | 75.0 | 88.2 | | 2018030107 | c04 | 88.0 | 89.0 | 68.0 | 80.3 | | 2018040101 | c03 | 84.0 | 86.0 | 73.0 | 80.2 | | 2018040103 | c03 | 97.0 | 98.0 | 77.0 | 89.3 | | 2018040103 | c09 | 76.0 | 80.0 | 84.0 | 80.4 | | 2018040104 | c10 | 92.0 | 90.0 | 74.0 | 84.2 | | 2018040105 | c03 | 93.0 | 90.0 | 71.0 | 83.3 | | 2018040106 | c09 | 91.0 | 94.0 | 74.0 | 85.1 | | 2018040107 | c09 | 82.0 | 87.0 | 76.0 | 81.1 | | 2018040108 | c03 | 96.0 | 96.0 | 77.0 | 88.4 | | 2018040108 | c10 | 87.0 | 86.0 | 95.0 | 89.9 | | 2018040109 | c03 | 82.0 | 87.0 | 94.0 | 88.3 | | 2018040109 | c09 | 83.0 | 88.0 | 85.0 | 85.3 | | 2018060103 | c05 | 90.0 | 82.0 | 90.0 | 87.6 | | 2018060104 | c05 | 92.0 | 82.0 | 85.0 | 86.2 | | 2018060105 | c01 | 90.0 | 97.0 | 82.0 | 88.9 | | 2018060106 | c01 | 90.0 | 80.0 | 82.0 | 83.8 | | 2018060107 | c01 | 85.0 | 78.0 | 86.0 | 83.3 | | 2018220101 | c17 | 97.0 | 80.0 | 84.0 | 86.7 | | 2018220102 | c21 | 85.0 | 75.0 | 90.0 | 84.0 | | 2018220103 | c01 | 85.0 | 85.0 | 90.0 | 87.0 | | 2018220103 | c17 | 90.0 | 80.0 | 75.0 | 81.0 | | 2018220106 | c17 | 90.0 | 83.0 | 90.0 | 87.9 | | 2018220108 | c01 | 90.0 | 80.0 | 75.0 | 81.0 | | 2018220108 | c17 | 89.0 | 85.0 | 86.0 | 86.6 | | 2018220109 | c17 | 97.0 | 82.0 | 86.0 | 88.1 | | 2018220109 | c21 | 95.0 | 84.0 | 85.0 | 87.7 | | 2018220201 | c01 | 88.0 | 80.0 | 80.0 | 82.4 | | 2018220201 | c17 | 92.0 | 80.0 | 80.0 | 83.6 | | 2019010102 | c01 | 90.0 | 92.0 | 80.0 | 86.6 | | 2019010105 | c02 | 97.0 | 97.0 | 75.0 | 88.2 | | 2019010107 | c02 | 92.0 | 90.0 | 85.0 | 88.6 | | 2019010108 | c01 | 80.0 | 90.0 | 88.0 | 86.2 | | 2019010108 | c02 | 90.0 | 93.0 | 85.0 | 88.9 | | 2019010109 | c01 | 80.0 | 87.0 | 75.0 | 80.1 | | 2019020101 | c01 | 80.0 | 90.0 | 80.0 | 83.0 | | 2019020101 | c04 | 86.0 | 90.0 | 75.0 | 82.8 | | 2019020102 | c04 | 90.0 | 91.0 | 75.0 | 84.3 | | 2019030102 | c03 | 90.0 | 94.0 | 80.0 | 87.2 | | 2019030103 | c01 | 89.0 | 95.0 | 80.0 | 87.2 | | 2019030104 | c01 | 95.0 | 98.0 | 78.0 | 89.1 | | 2019030105 | c01 | 94.0 | 80.0 | 90.0 | 88.2 | | 2019030107 | c01 | 83.0 | 90.0 | 75.0 | 81.9 | | 2019060106 | c01 | 91.0 | 96.0 | 83.0 | 89.3 | | 2019060106 | c05 | 95.0 | 98.0 | 78.0 | 89.1 | | 2019060106 | c10 | 90.0 | 89.0 | 85.0 | 87.7 | | 2019060107 | c01 | 82.0 | 90.0 | 85.0 | 85.6 | | 2019060107 | c05 | 94.0 | 80.0 | 90.0 | 88.2 | | 2019060107 | c10 | 90.0 | 90.0 | 75.0 | 84.0 | | 2019060108 | c01 | 90.0 | 94.0 | 80.0 | 87.2 | | 2019060108 | c05 | 89.0 | 90.0 | 80.0 | 85.7 | | 2019060108 | c10 | 90.0 | 92.0 | 81.0 | 87.0 | +------------+-----+-----------+----------+-------+-------+
DQL.9
【教务管理系统】在 Course 表查询出课程号 cno 为 c01,c03,c07 的课程信息。
LEVEL 1
🗝️ 查看 SQL 参考答案
SELECT * FROM course WHERE cno IN ('c01', 'c03', 'c07');
👁️ 查看运行结果
+-----+----------------+-------+--------+----------+--------+---------+ | cno | cname | sort | theory | practice | credit | whether | +-----+----------------+-------+--------+----------+--------+---------+ | c01 | 计算机应用基础 | cs001 | 30 | 30 | 2 | 有 | | c03 | 网络管理与维护 | cs002 | 32 | 64 | 4 | 有 | | c07 | 无线传感网技术 | cs002 | 32 | 64 | 4 | 有 | +-----+----------------+-------+--------+----------+--------+---------+
DQL.10
【bookmanager】查询借阅表中,借书证号为 R00001 且所借图书编号为 B00003 的借阅日期。
LEVEL 1
🗝️ 查看 SQL 参考答案
SELECT 借阅日期 FROM borrow WHERE 借书证号 = 'R00001' AND 图书编号 = 'B00003';
👁️ 查看运行结果
+------------+ | 借阅日期 | +------------+ | 2008-12-10 | +------------+
DQL.1
【教务管理系统】在 Student 表中查询出姓“王”的学生信息。
LEVEL 2
🗝️ 查看 SQL 参考答案
SELECT * FROM student WHERE sname LIKE '王%';
👁️ 查看运行结果
+------------+--------+------+------------+----------+-------------+------------------------------+ | sno | sname | ssex | sbirthday | classno | sphone | saddress | +------------+--------+------+------------+----------+-------------+------------------------------+ | 2018010108 | 王淑敏 | 女 | 2001-04-27 | 20180101 | 18255206926 | 亳州市涡阳县花沟镇蒋村站 | | 2018010114 | 王家俊 | 男 | 1999-08-24 | 20180101 | 15155242036 | 蚌埠市解放一路 | | 2018010118 | 王昌龙 | 男 | 2000-03-07 | 20180101 | 18949333398 | 合肥市合作化南路23号 | | 2018010207 | 王路 | 男 | 1999-05-23 | 20180102 | 15955245927 | 蚌埠市高新区蓝天城 | | 2018010217 | 王炜 | 男 | 1999-10-28 | 20180102 | 13324112292 | 宿州市泗县草庙镇治岗村 | | 2018030114 | 王兆坤 | 男 | 1998-12-30 | 20180301 | 13675635253 | 合肥市瑶海区 | | 2018220201 | 王一凡 | 男 | 2000-08-28 | 20182202 | 13282152851 | 阜阳市临泉县宋集镇马营行政村 | | 2018220210 | 王健 | 男 | 1998-06-09 | 20182202 | 13402116212 | 宿州市埇桥区芦岭镇 | | 2019010109 | 王婷婷 | 女 | 1997-12-24 | 20190101 | 13101116033 | 蚌埠市龙子湖区李楼乡 | | 2019010111 | 王湘松 | 男 | 2000-01-20 | 20190101 | 13601111769 | 蚌埠市五河县小溪镇 | | 2019030104 | 王龙飞 | 男 | 1998-11-01 | 20190301 | 13823113954 | 安庆市潜山县油坝乡 | +------------+--------+------+------------+----------+-------------+------------------------------+
DQL.2
【教务管理系统】在 Student 表中查询出姓名中第 2 个字为“嘉”的学生的学号、姓名信息。
LEVEL 2
🗝️ 查看 SQL 参考答案
SELECT sno, sname FROM student WHERE sname LIKE '_嘉%';
👁️ 查看运行结果
+------------+--------+ | sno | sname | +------------+--------+ | 2018060107 | 耿嘉宾 | | 2018220110 | 朱嘉豪 | +------------+--------+
DQL.3
【bookmanager】查询 borrow 表中未还图书的记录。
LEVEL 2
🗝️ 查看 SQL 参考答案
SELECT * FROM borrow WHERE 还书日期 IS NULL;
👁️ 查看运行结果
+----------+----------+------------+----------+----------+----------+ | 借书证号 | 图书编号 | 借阅日期 | 借书期限 | 还书日期 | 是否过期 | +----------+----------+------------+----------+----------+----------+ | R00001 | B00001 | 2009-01-05 | 60 | NULL | 是 | | R00002 | B00001 | 2009-01-05 | 60 | NULL | 否 | | R00002 | B00002 | 2009-02-01 | 60 | NULL | 否 | | R00003 | B00003 | 2009-02-15 | 60 | NULL | 否 | | R00004 | B00003 | 2008-12-12 | 60 | NULL | 否 | +----------+----------+------------+----------+----------+----------+
DQL.4
【bookmanager】查询借阅日期在“2008-12-6”至“2009-2-6”的借书记录信息。
LEVEL 2
🗝️ 查看 SQL 参考答案
SELECT * FROM borrow WHERE 借阅日期 BETWEEN '2008-12-06' AND '2009-02-06';
👁️ 查看运行结果
+----------+----------+------------+----------+------------+----------+ | 借书证号 | 图书编号 | 借阅日期 | 借书期限 | 还书日期 | 是否过期 | +----------+----------+------------+----------+------------+----------+ | R00001 | B00002 | 2008-12-06 | 60 | 2009-01-20 | 否 | | R00001 | B00003 | 2008-12-10 | 60 | 2009-01-20 | 否 | | R00001 | B00001 | 2009-01-05 | 60 | NULL | 是 | | R00002 | B00001 | 2009-01-05 | 60 | NULL | 否 | | R00002 | B00002 | 2009-02-01 | 60 | NULL | 否 | | R00004 | B00003 | 2008-12-12 | 60 | NULL | 否 | +----------+----------+------------+----------+------------+----------+
DQL.5
【bookmanager】查询借书证号为 R00001、R00004、R00005 的借书记录信息。
LEVEL 2
🗝️ 查看 SQL 参考答案
SELECT * FROM borrow WHERE 借书证号 IN ('R00001', 'R00004', 'R00005');
👁️ 查看运行结果
+----------+----------+------------+----------+------------+----------+ | 借书证号 | 图书编号 | 借阅日期 | 借书期限 | 还书日期 | 是否过期 | +----------+----------+------------+----------+------------+----------+ | R00001 | B00001 | 2009-01-05 | 60 | NULL | 是 | | R00001 | B00002 | 2008-12-06 | 60 | 2009-01-20 | 否 | | R00001 | B00003 | 2008-12-10 | 60 | 2009-01-20 | 否 | | R00004 | B00003 | 2008-12-12 | 60 | NULL | 否 | +----------+----------+------------+----------+------------+----------+
DQL.1
【bookmanager】查询所有图书信息,结果按价格的降序排列。
LEVEL 3
🗝️ 查看 SQL 参考答案
SELECT * FROM book ORDER BY 价格 DESC;
👁️ 查看运行结果
+----------+---------------------------------+--------+------------+--------+-------+----------+ | 图书编号 | 图书名称 | 作者 | 出版社编号 | 版次 | 价格 | 库存数量 | +----------+---------------------------------+--------+------------+--------+-------+----------+ | B00002 | SQL Server2005 数据库原理及应用 | 吴小刚 | NULL | 第二版 | 30.00 | 30 | | B00003 | C语言程序设计 | 谭浩强 | P001 | 第三版 | 29.00 | 25 | | B00001 | 数据库系统概论 | 萨师喧 | P002 | 第三版 | 25.10 | 20 | | B00004 | 大学英语 | 刘单 | P001 | 第一版 | 24.00 | 10 | +----------+---------------------------------+--------+------------+--------+-------+----------+
DQL.2
【bookmanager】查询借书证号为 R00002 的读者一共借了多少本图书。
LEVEL 3
🗝️ 查看 SQL 参考答案
SELECT COUNT(*) AS 借书总数 FROM borrow WHERE 借书证号 = 'R00002';
👁️ 查看运行结果
+----------+ | 借书总数 | +----------+ | 2 | +----------+
DQL.3
【bookmanager】查询所有图书的库存总量。
LEVEL 3
🗝️ 查看 SQL 参考答案
SELECT SUM(库存数量) AS 总库存 FROM book;
👁️ 查看运行结果
+--------+ | 总库存 | +--------+ | 85 | +--------+
DQL.4
【教务管理系统】在 Score 表中统计学号为“2018010101”学生的总分和平均分。
LEVEL 3
🗝️ 查看 SQL 参考答案
SELECT SUM(total) AS 总分, AVG(total) AS 平均分 FROM score WHERE sno = '2018010101';
👁️ 查看运行结果
+-------+----------+ | 总分 | 平均分 | +-------+----------+ | 173.5 | 57.83333 | +-------+----------+
DQL.5
【教务管理系统】在 Score 表中查询选修了课程号为“c02”学生的学号及成绩,并将结果按成绩降序排列。
LEVEL 3
🗝️ 查看 SQL 参考答案
SELECT sno, total FROM score WHERE cno = 'c02' ORDER BY total DESC;
👁️ 查看运行结果
+------------+-------+ | sno | total | +------------+-------+ | 2019010103 | 93.1 | | 2018010107 | 91.4 | | 2018010203 | 91.0 | | 2019010108 | 88.9 | | 2019010107 | 88.6 | | 2018010206 | 88.4 | | 2019010105 | 88.2 | | 2018010106 | 88.0 | | 2018010105 | 87.4 | | 2018010204 | 87.4 | | 2018010207 | 87.2 | | 2018010108 | 86.8 | | 2018010205 | 82.4 | | 2018010104 | 80.8 | | 2019010109 | 79.9 | | 2018010109 | 76.6 | | 2019010106 | 74.1 | | 2018010102 | 73.0 | | 2018010202 | 71.5 | | 2018010201 | 71.0 | | 2018010103 | 70.4 | | 2019010104 | 67.8 | | 2019010102 | 67.3 | | 2019010101 | 57.4 | | 2018010110 | 55.5 | | 2018010101 | 53.0 | +------------+-------+
DQL.1
【教务管理系统】从 Student 表中统计出各班男女生的人数。
LEVEL 4
🗝️ 查看 SQL 参考答案
SELECT classno, ssex, COUNT(*) AS 人数 FROM student GROUP BY classno, ssex;
👁️ 查看运行结果
+----------+------+------+ | classno | ssex | 人数 | +----------+------+------+ | 20180101 | 男 | 16 | | 20180101 | 女 | 6 | | 20180102 | 男 | 11 | | 20180102 | 女 | 10 | | 20180201 | 女 | 5 | | 20180201 | 男 | 13 | | 20180301 | 男 | 11 | | 20180301 | 女 | 5 | | 20180401 | 女 | 8 | | 20180401 | 男 | 5 | | 20180601 | 女 | 10 | | 20180601 | 男 | 7 | | 20182201 | 女 | 5 | | 20182201 | 男 | 10 | | 20182202 | 男 | 12 | | 20182202 | 女 | 1 | | 20190101 | 男 | 11 | | 20190101 | 女 | 4 | | 20190102 | 男 | 11 | | 20190102 | 女 | 2 | | 20190201 | 男 | 14 | | 20190201 | 女 | 1 | | 20190301 | 男 | 8 | | 20190301 | 女 | 2 | | 20190601 | 男 | 12 | | 20190601 | 女 | 3 | | 20190701 | 男 | 4 | | 20190701 | 女 | 1 | +----------+------+------+
DQL.2
【教务管理系统】从 Student 表中查询出班级男生人数大于等于 10 人的班级编号和男生人数。
LEVEL 4
🗝️ 查看 SQL 参考答案
SELECT classno, COUNT(*) AS 男生人数 FROM student WHERE ssex = '男' GROUP BY classno HAVING COUNT(*) >= 10;
👁️ 查看运行结果
+----------+----------+ | classno | 男生人数 | +----------+----------+ | 20180101 | 16 | | 20180102 | 11 | | 20180201 | 13 | | 20180301 | 11 | | 20182201 | 10 | | 20182202 | 12 | | 20190101 | 11 | | 20190102 | 11 | | 20190201 | 14 | | 20190601 | 12 | +----------+----------+
DQL.3
【bookmanager】统计图书信息表中不同出版社出版的图书的数目,把统计结果大于或等于 2 的记录输出。
LEVEL 4
🗝️ 查看 SQL 参考答案
SELECT 出版社编号, COUNT(*) AS 图书数量 FROM book GROUP BY 出版社编号 HAVING COUNT(*) >= 2;
👁️ 查看运行结果
+------------+----------+ | 出版社编号 | 图书数量 | +------------+----------+ | P001 | 2 | +------------+----------+
DQL.4
【bookmanager】查询借书证号为 R00001 的读者所借图书至今的已有多少天。
LEVEL 4
🗝️ 查看 SQL 参考答案
SELECT 图书编号, DATEDIFF(CURDATE(), 借阅日期) AS 借阅天数 FROM borrow WHERE 借书证号 = 'R00001';
👁️ 查看运行结果
+----------+----------+ | 图书编号 | 借阅天数 | +----------+----------+ | B00001 | 6379 | | B00002 | 6409 | | B00003 | 6405 | +----------+----------+
DQL.5
【bookmanager】根据借阅日期 and 借书期限,以当前的系统日期,输出已过期的借阅记录。
LEVEL 4
🗝️ 查看 SQL 参考答案
SELECT * FROM borrow WHERE 还书日期 IS NULL AND DATE_ADD(借阅日期, INTERVAL 借书期限 DAY) < CURDATE();
👁️ 查看运行结果
+----------+----------+------------+----------+----------+----------+ | 借书证号 | 图书编号 | 借阅日期 | 借书期限 | 还书日期 | 是否过期 | +----------+----------+------------+----------+----------+----------+ | R00001 | B00001 | 2009-01-05 | 60 | NULL | 是 | | R00002 | B00001 | 2009-01-05 | 60 | NULL | 否 | | R00002 | B00002 | 2009-02-01 | 60 | NULL | 否 | | R00003 | B00003 | 2009-02-15 | 60 | NULL | 否 | | R00004 | B00003 | 2008-12-12 | 60 | NULL | 否 | +----------+----------+------------+----------+----------+----------+
DML.1
【bookmanager】【作业 1/2】为 publish 表录入 7 条出版社数据记录。
LEVEL 5
🗝️ 查看 SQL 参考答案
INSERT INTO publish (出版社编号, 出版社名称, 联系电话) VALUES ('P001', '清华大学出版社', '010-88556616'), ('P002', '高等教育出版社', '010-77564582'), ('P003', '北京大学出版社', '010-78777444'), ('P004', '人民邮电出版社', '010-25587788'), ('P005', '东南大学出版社', '021-58788878'), ('P006', '广东教育出版社', '020-22233352'), ('P007', '水利水电出版社', '010-55665544');
👁️ 查看运行状态
Query OK, 7 rows affected
DML.2
【bookmanager】【作业 1/2】为 book 表录入 4 条图书数据记录。
LEVEL 5
🗝️ 查看 SQL 参考答案
INSERT INTO book (图书编号, 图书名称, 作者, 出版社编号, 版次, 价格, 库存数量) VALUES ('B00001', '数据库系统概论', '萨师喧', 'P002', '第三版', 25.10, 20), ('B00002', 'SQL Server2005 数据库原理及应用', '吴小刚', NULL, '第二版', 30.00, 30), ('B00003', 'C语言程序设计', '谭浩强', 'P001', '第三版', 29.00, 25), ('B00004', '大学英语', '刘单', 'P001', '第一版', 24.00, 10);
👁️ 查看运行状态
Query OK, 4 rows affected
DML.3
【bookmanager】【作业 1/2】为 reader 表添加读者基本数据记录 (至少含本人及一名同学)。
LEVEL 5
🗝️ 查看 SQL 参考答案
INSERT INTO reader (借书证号, 姓名, 性别, 部门, 联系电话) VALUES ('R00001', '刘飞', '男', '计算机系', '13542661111'), ('R00002', '张云', '女', '总务处', '13751644444'), ('R00003', '吴杉杉', '男', NULL, '13751688877'), ('R00004', '黄湘祖', '男', '计算机系', '13865987415'), ('R00005', '王浩', '男', '计算机系', '13566889923');
👁️ 查看运行状态
Query OK, 5 rows affected
DML.4
【bookmanager】【作业 1/2】为 borrow 表录入借阅详细信息记录。
LEVEL 5
🗝️ 查看 SQL 参考答案
INSERT INTO borrow (借书证号, 图书编号, 借阅日期, 借书期限, 还书日期, 是否过期) VALUES ('R00001', 'B00002', '2008-12-06', 60, '2009-01-20', '否'), ('R00001', 'B00003', '2008-12-10', 60, '2009-01-20', '否'), ('R00001', 'B00001', '2009-01-05', 60, NULL, '是'), ('R00002', 'B00001', '2009-01-05', 60, NULL, '否'), ('R00002', 'B00002', '2009-02-01', 60, NULL, '否'), ('R00003', 'B00003', '2009-02-15', 60, NULL, '否'), ('R00004', 'B00003', '2008-12-12', 60, NULL, '否');
👁️ 查看运行状态
Query OK, 7 rows affected
DML.5
【bookmanager】【作业 3】实训准备:为 reader 表添加学生本人和同学的至少两条数据记录。
LEVEL 5
🗝️ 查看 SQL 参考答案
INSERT INTO reader (借书证号, 姓名, 性别, 部门, 联系电话) VALUES ('R00004', '黄湘祖', '男', '计算机系', '13865987415'), ('R00005', '王浩', '男', '计算机系', '13566889923');
👁️ 查看运行状态
Query OK, 2 rows affected
DML.6
【bookmanager】【作业 3】实训准备:为 borrow 表添加学生本人和同学的至少三条数据记录。
LEVEL 5
🗝️ 查看 SQL 参考答案
INSERT INTO borrow (借书证号, 图书编号, 借阅日期, 借书期限, 还书日期, 是否过期) VALUES ('R00004', 'B00003', '2008-12-12', 60, NULL, '否'), ('R00005', 'B00001', '2009-01-05', 60, NULL, '否'), ('R00004', 'B00001', '2009-01-05', 60, NULL, '是');
👁️ 查看运行状态
Query OK, 3 rows affected
DML.7
【bookmanager】【作业 4】实训准备:为 reader 表添加学生本人和同学的至少两条数据记录。
LEVEL 5
🗝️ 查看 SQL 参考答案
INSERT INTO reader (借书证号, 姓名, 性别, 部门, 联系电话) VALUES ('R00004', '黄湘祖', '男', '计算机系', '13865987415'), ('R00005', '王浩', '男', '计算机系', '13566889923');
👁️ 查看运行状态
Query OK, 2 rows affected
DML.8
【bookmanager】【作业 4】实训准备:为 borrow 表添加学生本人和同学的至少三条数据记录。
LEVEL 5
🗝️ 查看 SQL 参考答案
INSERT INTO borrow (借书证号, 图书编号, 借阅日期, 借书期限, 还书日期, 是否过期) VALUES ('R00004', 'B00003', '2008-12-12', 60, NULL, '否'), ('R00005', 'B00001', '2009-01-05', 60, NULL, '否'), ('R00004', 'B00001', '2009-01-05', 60, NULL, '是');
👁️ 查看运行状态
Query OK, 3 rows affected
DML.9
【bookmanager】【作业 5】实训准备:为 reader 表添加学生本人和同学的至少两条数据记录。
LEVEL 5
🗝️ 查看 SQL 参考答案
INSERT INTO reader (借书证号, 姓名, 性别, 部门, 联系电话) VALUES ('R00004', '黄湘祖', '男', '计算机系', '13865987415'), ('R00005', '王浩', '男', '计算机系', '13566889923');
👁️ 查看运行状态
Query OK, 2 rows affected
DML.10
【bookmanager】【作业 5】实训准备:为 borrow 表添加学生本人和同学的至少三条数据记录。
LEVEL 5
🗝️ 查看 SQL 参考答案
INSERT INTO borrow (借书证号, 图书编号, 借阅日期, 借书期限, 还书日期, 是否过期) VALUES ('R00004', 'B00003', '2008-12-12', 60, NULL, '否'), ('R00005', 'B00001', '2009-01-05', 60, NULL, '否'), ('R00004', 'B00001', '2009-01-05', 60, NULL, '是');
👁️ 查看运行状态
Query OK, 3 rows affected
DML.11
【db_library】【作业 6】实训准备:为 t_reader 表添加学生本人和同学的至少两条数据记录。
LEVEL 5
🗝️ 查看 SQL 参考答案
INSERT INTO t_reader (reader_id, reader_name, reader_birthday, reader_sex) VALUES ('R06', '黄湘祖', '2000-01-01', '男'), ('R07', '同学甲', '2000-02-02', '女');
👁️ 查看运行状态
Query OK, 2 rows affected
DML.12
【db_library】【作业 6】实训准备:为 t_borrow_record 表添加学生本人和同学的至少三条数据记录。
LEVEL 5
🗝️ 查看 SQL 参考答案
INSERT INTO t_borrow_record (borrow_id, reader_id, book_id, borrow_date) VALUES ('BR04', 'R06', 'B01', '2026-04-01'), ('BR05', 'R07', 'B03', '2026-04-15'), ('BR06', 'R06', 'B02', '2026-04-20');
👁️ 查看运行状态
Query OK, 3 rows affected
DML.13
【bookmanager】【作业 1/2】把 reader 表中吴杉杉的部门修改为“机电系”。
LEVEL 5
🗝️ 查看 SQL 参考答案
UPDATE reader SET 部门 = '机电系' WHERE 姓名 = '吴杉杉';
👁️ 查看运行状态
Query OK, 1 row affected
DML.14
【bookmanager】【作业 1/2】删除 publish 表中的出版社编号为 P006 的记录。
LEVEL 5
🗝️ 查看 SQL 参考答案
DELETE FROM publish WHERE 出版社编号 = 'P006';
👁️ 查看运行状态
Query OK, 1 row affected
DML.15
【bookmanager】【作业 1/2】删除 publish 表中出版社编号为 P007 的记录。
LEVEL 5
🗝️ 查看 SQL 参考答案
DELETE FROM publish WHERE 出版社编号 = 'P007';
👁️ 查看运行状态
Query OK, 1 row affected
DML.16
【bookmanager】【作业 1/2】把 book 表中图书编号为 B00002 的图书的出版社编号修改为“P005”、版次修改为“第一版”。
LEVEL 5
🗝️ 查看 SQL 参考答案
UPDATE book SET 出版社编号 = 'P005', 版次 = '第一版' WHERE 图书编号 = 'B00002';
👁️ 查看运行状态
Query OK, 1 row affected
DML.17
【bookmanager】【作业 4】根据借阅日期 and 借书期限,判断还书日期为空的借阅记录是否过期,若过期,把“是否过期”修改为“是”。
LEVEL 5
🗝️ 查看 SQL 参考答案
UPDATE borrow SET 是否过期 = '是' WHERE 还书日期 IS NULL AND DATE_ADD(借阅日期, INTERVAL 借书期限 DAY) < CURDATE();
👁️ 查看运行状态
Query OK, 5 rows affected
DML.18
【教务管理系统】【综合测试】为 student 表添加学生本人和同学的至少两条数据记录。
LEVEL 5
🗝️ 查看 SQL 参考答案
INSERT INTO student (sno, sname, ssex, sbirthday, classno, sphone, saddress) VALUES ('2018010199', '黄湘祖', '男', '2000-01-01', '20180101', '13865987415', '广东省'), ('2018010198', '同学甲', '女', '2000-02-02', '20180101', '13566889923', '广东省');
👁️ 查看运行状态
Query OK, 2 rows affected
DML.19
【教务管理系统】【综合测试】为 score 表添加学生本人 and 同学的至少两条成绩数据记录。
LEVEL 5
🗝️ 查看 SQL 参考答案
INSERT INTO score (sno, cno, peacetime, practice, final) VALUES ('2018010199', 'c01', 95.0, 95.0, 95.0), ('2018010198', 'c02', 88.0, 88.0, 88.0);
👁️ 查看运行状态
Query OK, 2 rows affected
DML.20
【教务管理系统】【综合测试】删除“2018010102”号同学的成绩记录。
LEVEL 5
🗝️ 查看 SQL 参考答案
DELETE FROM score WHERE sno = '2018010102';
👁️ 查看运行状态
Query OK, 1 row affected
DML.21
【教务管理系统】【综合测试】将“2018010101”号同学的“c02”课程成绩修改为 100 分。
LEVEL 5
🗝️ 查看 SQL 参考答案
UPDATE score SET peacetime = 100, practice = 100, final = 100 WHERE sno = '2018010101' AND cno = 'c02';
👁️ 查看运行状态
Query OK, 1 row affected
DQL.1
【bookmanager】查询读者的借书证号、姓名、联系电话以及所借书的图书编号、借阅日期。
LEVEL 6
🗝️ 查看 SQL 参考答案
SELECT r.借书证号, r.姓名, r.联系电话, b.图书编号, b.借阅日期 FROM reader r JOIN borrow b ON r.借书证号 = b.借书证号;
👁️ 查看运行结果
+----------+--------+-------------+----------+------------+ | 借书证号 | 姓名 | 联系电话 | 图书编号 | 借阅日期 | +----------+--------+-------------+----------+------------+ | R00001 | 刘飞 | 13542661111 | B00001 | 2009-01-05 | | R00001 | 刘飞 | 13542661111 | B00002 | 2008-12-06 | | R00001 | 刘飞 | 13542661111 | B00003 | 2008-12-10 | | R00002 | 张云 | 13751644444 | B00001 | 2009-01-05 | | R00002 | 张云 | 13751644444 | B00002 | 2009-02-01 | | R00003 | 吴杉杉 | 13751688877 | B00003 | 2009-02-15 | | R00004 | 黄湘祖 | 13865987415 | B00003 | 2008-12-12 | +----------+--------+-------------+----------+------------+
DQL.2
【bookmanager】查询图书信息以及相对应的出版社的详细信息。
LEVEL 6
🗝️ 查看 SQL 参考答案
SELECT bk.*, pb.出版社名称, pb.联系电话 FROM book bk JOIN publish pb ON bk.出版社编号 = pb.出版社编号;
👁️ 查看运行结果
+----------+----------------+--------+------------+--------+-------+----------+----------------+--------------+ | 图书编号 | 图书名称 | 作者 | 出版社编号 | 版次 | 价格 | 库存数量 | 出版社名称 | 联系电话 | +----------+----------------+--------+------------+--------+-------+----------+----------------+--------------+ | B00001 | 数据库系统概论 | 萨师喧 | P002 | 第三版 | 25.10 | 20 | 高等教育出版社 | 010-77564582 | | B00003 | C语言程序设计 | 谭浩强 | P001 | 第三版 | 29.00 | 25 | 清华大学出版社 | 010-88556616 | | B00004 | 大学英语 | 刘单 | P001 | 第一版 | 24.00 | 10 | 清华大学出版社 | 010-88556616 | +----------+----------------+--------+------------+--------+-------+----------+----------------+--------------+
DQL.3
【教务管理系统】查询“刘宇”同学所选修的课程号及成绩。
LEVEL 6
🗝️ 查看 SQL 参考答案
SELECT sc.cno, sc.total FROM student s INNER JOIN score sc ON s.sno = sc.sno WHERE s.sname = '刘宇';
👁️ 查看运行结果
+-----+-------+ | cno | total | +-----+-------+ | c01 | 78.0 | | c02 | 53.0 | | c04 | 42.5 | +-----+-------+
DQL.4
【教务管理系统】查询出选修了 'c01' 课程的学生学号和姓名。
LEVEL 6
🗝️ 查看 SQL 参考答案
SELECT s.sno, s.sname FROM student s INNER JOIN score sc ON s.sno = sc.sno WHERE sc.cno = 'c01';
👁️ 查看运行结果
+------------+--------+ | sno | sname | +------------+--------+ | 2018010101 | 刘宇 | | 2018010102 | 吴迪 | | 2018010103 | 韩硕 | | 2018010104 | 刘宇成 | | 2018010105 | 郁天宇 | | 2018010106 | 宋长旭 | | 2018010107 | 蒋飞飞 | | 2018010108 | 王淑敏 | | 2018010109 | 童强 | | 2018010110 | 赵辉 | | 2018010201 | 冯思义 | | 2018010202 | 蒲云云 | | 2018010203 | 昝凡凡 | | 2018010204 | 赵仲品 | | 2018010205 | 余海波 | | 2018010206 | 韩吉生 | | 2018010207 | 王路 | | 2018020101 | 田文文 | | 2018020102 | 吴意雯 | | 2018020103 | 段文昌 | | 2018020104 | 张纯 | | 2018020105 | 费企翔 | | 2018020106 | 丁旺 | | 2018020107 | 陈锐 | | 2018020108 | 吕登峰 | | 2018020109 | 林凯伦 | | 2018020110 | 刘鸣瑞 | | 2018020111 | 张啸天 | | 2018020112 | 卢荣绪 | | 2018030101 | 郭建国 | | 2018030102 | 刘晟宇 | | 2018030103 | 张陈慧 | | 2018030104 | 裴锋阳 | | 2018030105 | 肖阿美 | | 2018030106 | 蔡少昌 | | 2018030107 | 李帅宇 | | 2018060101 | 张华清 | | 2018060102 | 宋蝶蝶 | | 2018060103 | 徐秋月 | | 2018060104 | 陈明 | | 2018060105 | 金驰浩 | | 2018060106 | 裴一寒 | | 2018060107 | 耿嘉宾 | | 2018220101 | 朱贵莹 | | 2018220102 | 许伟强 | | 2018220103 | 刘象来 | | 2018220104 | 郑国栋 | | 2018220105 | 郑晓军 | | 2018220106 | 孙思远 | | 2018220107 | 刘倩 | | 2018220108 | 易丹 | | 2018220109 | 聂祥龙 | | 2018220201 | 王一凡 | | 2018220202 | 刘顺 | | 2018220203 | 付晓龙 | | 2019010101 | 彭超超 | | 2019010102 | 闫立志 | | 2019010103 | 赵威威 | | 2019010104 | 聂建成 | | 2019010105 | 郭冬慧 | | 2019010106 | 胡伟 | | 2019010107 | 吴德军 | | 2019010108 | 黄亲 | | 2019010109 | 王婷婷 | | 2019020101 | 吴豪豪 | | 2019020102 | 贾冉冉 | | 2019020103 | 李强强 | | 2019020104 | 李少鹏 | | 2019020105 | 祖辉 | | 2019030101 | 惠岚 | | 2019030102 | 关邦云 | | 2019030103 | 高尚 | | 2019030104 | 王龙飞 | | 2019030105 | 崔健方 | | 2019030106 | 鞠学鑫 | | 2019030107 | 孙怀坤 | | 2019060101 | 孙同 | | 2019060102 | 单陈习 | | 2019060103 | 张登基 | | 2019060104 | 陶广震 | | 2019060105 | 侯香宇 | | 2019060106 | 陈威振 | | 2019060107 | 冯光辉 | | 2019060108 | 张瑞 | +------------+--------+
DQL.5
【bookmanager】【思考题1】查询借阅了图书编号为 B00001 的图书的读者信息。
LEVEL 6
🗝️ 查看 SQL 参考答案
SELECT r.* FROM reader r JOIN borrow b ON r.借书证号 = b.借书证号 WHERE b.图书编号 = 'B00001';
👁️ 查看运行结果
+----------+------+------+----------+-------------+ | 借书证号 | 姓名 | 性别 | 部门 | 联系电话 | +----------+------+------+----------+-------------+ | R00001 | 刘飞 | 男 | 计算机系 | 13542661111 | | R00002 | 张云 | 女 | 总务处 | 13751644444 | +----------+------+------+----------+-------------+
DQL.6
【bookmanager】【思考题2】查询姓名为张云的读者的借阅记录。
LEVEL 6
🗝️ 查看 SQL 参考答案
SELECT b.* FROM borrow b JOIN reader r ON b.借书证号 = r.借书证号 WHERE r.姓名 = '张云';
👁️ 查看运行结果
+----------+----------+------------+----------+----------+----------+ | 借书证号 | 图书编号 | 借阅日期 | 借书期限 | 还书日期 | 是否过期 | +----------+----------+------------+----------+----------+----------+ | R00002 | B00001 | 2009-01-05 | 60 | NULL | 否 | | R00002 | B00002 | 2009-02-01 | 60 | NULL | 否 | +----------+----------+------------+----------+----------+----------+
DQL.7
【bookmanager】查询读者的借书证号、姓名、联系电话以及所借图书的图书编号、借阅日期、出版社编号和名称。
LEVEL 6
🗝️ 查看 SQL 参考答案
SELECT r.借书证号, r.姓名, r.联系电话, b.图书编号, b.借阅日期, pb.出版社编号, pb.出版社名称 FROM reader r JOIN borrow b ON r.借书证号 = b.借书证号 JOIN book bk ON b.图书编号 = bk.图书编号 JOIN publish pb ON bk.出版社编号 = pb.出版社编号;
👁️ 查看运行结果
+----------+--------+-------------+----------+------------+------------+----------------+ | 借书证号 | 姓名 | 联系电话 | 图书编号 | 借阅日期 | 出版社编号 | 出版社名称 | +----------+--------+-------------+----------+------------+------------+----------------+ | R00001 | 刘飞 | 13542661111 | B00001 | 2009-01-05 | P002 | 高等教育出版社 | | R00001 | 刘飞 | 13542661111 | B00003 | 2008-12-10 | P001 | 清华大学出版社 | | R00002 | 张云 | 13751644444 | B00001 | 2009-01-05 | P002 | 高等教育出版社 | | R00003 | 吴杉杉 | 13751688877 | B00003 | 2009-02-15 | P001 | 清华大学出版社 | | R00004 | 黄湘祖 | 13865987415 | B00003 | 2008-12-12 | P001 | 清华大学出版社 | +----------+--------+-------------+----------+------------+------------+----------------+
VIEW.1
【db_library】创建 90 后读者信息的视图 view_after90。
LEVEL 7
🗝️ 查看 SQL 参考答案
CREATE VIEW view_after90 AS SELECT * FROM t_reader WHERE reader_birthday BETWEEN '1990-01-01' AND '1999-12-31';
👁️ 查看运行结果
+-----------+-------------+-----------------+------------+ | reader_id | reader_name | reader_birthday | reader_sex | +-----------+-------------+-----------------+------------+ | R01 | 张三 | 1992-05-12 | 男 | | R03 | 王五 | 1998-11-02 | 男 | +-----------+-------------+-----------------+------------+
VIEW.2
【db_library】创建“清华大学出版社”出版的图书信息的视图 view_qinghua。
LEVEL 7
🗝️ 查看 SQL 参考答案
CREATE VIEW view_qinghua AS SELECT bk.* FROM t_book bk JOIN t_press pr ON bk.press_id = pr.press_id WHERE pr.press_name = '清华大学出版社';
👁️ 查看运行结果
+---------+------------------+----------+-------+ | book_id | book_name | press_id | price | +---------+------------------+----------+-------+ | B01 | 数据库系统概论 | P001 | 39.00 | | B02 | Java从入门到精通 | P001 | 59.00 | +---------+------------------+----------+-------+
VIEW.3
【教务管理系统】创建名为 grade_xsqk 的视图,用来显示所有不及格学生的信息,包括学号 (sno)、姓名 (sname)、课程名称 (cname)、成绩 (total)。
LEVEL 7
🗝️ 查看 SQL 参考答案
CREATE VIEW grade_xsqk AS SELECT s.sno, s.sname, c.cname, sc.total FROM student s JOIN score sc ON s.sno = sc.sno JOIN course c ON sc.cno = c.cno WHERE sc.total < 60;
👁️ 查看运行结果
+------------+--------+----------------+-------+ | sno | sname | cname | total | +------------+--------+----------------+-------+ | 2018010101 | 刘宇 | 平面设计 | 53.0 | | 2018010101 | 刘宇 | 数据库应用技术 | 42.5 | | 2018010110 | 赵辉 | 平面设计 | 55.5 | | 2018020110 | 刘鸣瑞 | 数据库应用技术 | 56.0 | | 2018020110 | 刘鸣瑞 | 无线传感网技术 | 58.0 | | 2018020111 | 张啸天 | 计算机应用基础 | 58.0 | | 2018040104 | 胡洪广 | Java程序设计 | 59.6 | | 2018040106 | 徐娜 | 网络管理与维护 | 59.0 | | 2018060105 | 金驰浩 | Python程序设计 | 54.4 | | 2018220202 | 刘顺 | 计算机应用基础 | 56.6 | | 2018220203 | 付晓龙 | 财务会计 | 37.0 | | 2019010101 | 彭超超 | 平面设计 | 57.4 | | 2019030106 | 鞠学鑫 | 计算机应用基础 | 59.5 | +------------+--------+----------------+-------+
VIEW.4
【db_library】修改视图 view_after90,改为包含 80 后读者信息。
LEVEL 7
🗝️ 查看 SQL 参考答案
ALTER VIEW view_after90 AS SELECT * FROM t_reader WHERE reader_birthday BETWEEN '1980-01-01' AND '1989-12-31';
👁️ 查看运行结果
+-----------+-------------+-----------------+------------+ | reader_id | reader_name | reader_birthday | reader_sex | +-----------+-------------+-----------------+------------+ | R02 | 李四 | 1985-08-23 | 女 | | R04 | 赵六 | 1988-03-15 | 男 | +-----------+-------------+-----------------+------------+
VIEW.5
【db_library】删除视图 view_after90。
LEVEL 7
🗝️ 查看 SQL 参考答案
DROP VIEW view_after90;
👁️ 查看运行结果
+---------------------------+ | Status | +---------------------------+ | View dropped successfully | +---------------------------+
DDL
MySQL 一键初始化建表与初始数据注入 SQL 脚本
EASY SETUP
如果您需要重置您的 WampServer 本地环境,请在 Navicat 中新建查询,运行下面的脚本,将自动生成并重置 bookmanager 和 db_library 两个数据库。
-- ==================================================== -- 1. 教务管理系统 数据库导入说明 -- ==================================================== -- 在 Navicat 中右键新建数据库“教务管理系统”(utf8mb4_general_ci) -- 双击打开数据库,右键选择“运行 SQL 文件”并选中“教务管理系统.sql”导入。 -- ==================================================== -- 2. bookmanager 数据库建表与数据初始化 DDL -- ==================================================== CREATE DATABASE IF NOT EXISTS bookmanager DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci; USE bookmanager; CREATE TABLE IF NOT EXISTS publish ( 出版社编号 VARCHAR(10) PRIMARY KEY, 出版社名称 VARCHAR(50) NOT NULL, 联系电话 VARCHAR(20) ); CREATE TABLE IF NOT EXISTS book ( 图书编号 VARCHAR(10) PRIMARY KEY, 图书名称 VARCHAR(100) NOT NULL, 作者 VARCHAR(50), 出版社编号 VARCHAR(10), 版次 VARCHAR(20), 价格 DECIMAL(10, 2), 库存数量 INT, FOREIGN KEY (出版社编号) REFERENCES publish(出版社编号) ON DELETE SET NULL ON UPDATE CASCADE ); CREATE TABLE IF NOT EXISTS reader ( 借书证号 VARCHAR(10) PRIMARY KEY, 姓名 VARCHAR(50) NOT NULL, 性别 VARCHAR(2), 部门 VARCHAR(50), 联系电话 VARCHAR(20) ); CREATE TABLE IF NOT EXISTS borrow ( 借书证号 VARCHAR(10), 图书编号 VARCHAR(10), 借阅日期 DATE, 借书期限 INT NOT NULL, 还书日期 DATE, 是否过期 VARCHAR(2) DEFAULT '否', PRIMARY KEY (借书证号, 图书编号, 借阅日期), FOREIGN KEY (借书证号) REFERENCES reader(借书证号) ON DELETE CASCADE ON UPDATE CASCADE, FOREIGN KEY (图书编号) REFERENCES book(图书编号) ON DELETE CASCADE ON UPDATE CASCADE ); -- 插入出版社数据 INSERT INTO publish (出版社编号, 出版社名称, 联系电话) VALUES ('P001', '清华大学出版社', '010-88556616'), ('P002', '高等教育出版社', '010-77564582'), ('P003', '北京大学出版社', '010-78777444'), ('P004', '人民邮电出版社', '010-25587788'), ('P005', '东南大学出版社', '021-58788878'), ('P006', '广东教育出版社', '020-22233352'), ('P007', '水利水电出版社', '010-55665544') ON DUPLICATE KEY UPDATE 出版社名称=VALUES(出版社名称), 联系电话=VALUES(联系电话); -- 插入图书数据 INSERT INTO book (图书编号, 图书名称, 作者, 出版社编号, 版次, 价格, 库存数量) VALUES ('B00001', '数据库系统概论', '萨师喧', 'P002', '第三版', 25.10, 20), ('B00002', 'SQL Server2005 数据库原理及应用', '吴小刚', NULL, '第二版', 30.00, 30), ('B00003', 'C语言程序设计', '谭浩强', 'P001', '第三版', 29.00, 25), ('B00004', '大学英语', '刘单', 'P001', '第一版', 24.00, 10) ON DUPLICATE KEY UPDATE 图书名称=VALUES(图书名称), 作者=VALUES(作者), 出版社编号=VALUES(出版社编号), 版次=VALUES(版次), 价格=VALUES(价格), 库存数量=VALUES(库存数量); -- 插入读者数据 INSERT INTO reader (借书证号, 姓名, 性别, 部门, 联系电话) VALUES ('R00001', '刘飞', '男', '计算机系', '13542661111'), ('R00002', '张云', '女', '总务处', '13751644444'), ('R00003', '吴杉杉', '男', NULL, '13751688877'), ('R00004', '黄湘祖', '男', '计算机系', '13865987415'), ('R00005', '王浩', '男', '计算机系', '13566889923') ON DUPLICATE KEY UPDATE 姓名=VALUES(姓名), 性别=VALUES(性别), 部门=VALUES(部门), 联系电话=VALUES(联系电话); -- 插入借阅记录数据 INSERT INTO borrow (借书证号, 图书编号, 借阅日期, 借书期限, 还书日期, 是否过期) VALUES ('R00001', 'B00002', '2008-12-06', 60, '2009-01-20', '否'), ('R00001', 'B00003', '2008-12-10', 60, '2009-01-20', '否'), ('R00001', 'B00001', '2009-01-05', 60, NULL, '是'), ('R00002', 'B00001', '2009-01-05', 60, NULL, '否'), ('R00002', 'B00002', '2009-02-01', 60, NULL, '否'), ('R00003', 'B00003', '2009-02-15', 60, NULL, '否'), ('R00004', 'B00003', '2008-12-12', 60, NULL, '否') ON DUPLICATE KEY UPDATE 借阅日期=VALUES(借阅日期), 借书期限=VALUES(借书期限), 还书日期=VALUES(还书日期), 是否过期=VALUES(是否过期); -- ==================================================== -- 3. db_library 数据库建表与数据初始化 DDL -- ==================================================== CREATE DATABASE IF NOT EXISTS db_library DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci; USE db_library; CREATE TABLE IF NOT EXISTS t_press ( press_id VARCHAR(10) PRIMARY KEY, press_name VARCHAR(50) NOT NULL ); CREATE TABLE IF NOT EXISTS t_book ( book_id VARCHAR(10) PRIMARY KEY, book_name VARCHAR(100) NOT NULL, press_id VARCHAR(10), price DECIMAL(10, 2), FOREIGN KEY (press_id) REFERENCES t_press(press_id) ON DELETE SET NULL ON UPDATE CASCADE ); CREATE TABLE IF NOT EXISTS t_reader ( reader_id VARCHAR(10) PRIMARY KEY, reader_name VARCHAR(50) NOT NULL, reader_birthday DATE, reader_sex VARCHAR(2) ); CREATE TABLE IF NOT EXISTS t_borrow_record ( borrow_id VARCHAR(10) PRIMARY KEY, reader_id VARCHAR(10), book_id VARCHAR(10), borrow_date DATE, FOREIGN KEY (reader_id) REFERENCES t_reader(reader_id) ON DELETE CASCADE ON UPDATE CASCADE, FOREIGN KEY (book_id) REFERENCES t_book(book_id) ON DELETE CASCADE ON UPDATE CASCADE ); INSERT INTO t_press (press_id, press_name) VALUES ('P001', '清华大学出版社'), ('P002', '高等教育出版社'), ('P003', '人民邮电出版社') ON DUPLICATE KEY UPDATE press_name=VALUES(press_name); INSERT INTO t_book (book_id, book_name, press_id, price) VALUES ('B01', '数据库系统概论', 'P001', 39.00), ('B02', 'Java从入门到精通', 'P001', 59.00), ('B03', '操作系统设计', 'P002', 45.00), ('B04', '计算机网络', 'P003', 49.00) ON DUPLICATE KEY UPDATE book_name=VALUES(book_name), press_id=VALUES(press_id), price=VALUES(price); INSERT INTO t_reader (reader_id, reader_name, reader_birthday, reader_sex) VALUES ('R01', '张三', '1992-05-12', '男'), ('R02', '李四', '1985-08-23', '女'), ('R03', '王五', '1998-11-02', '男'), ('R04', '赵六', '1988-03-15', '男'), ('R05', '陈七', '2001-09-30', '女') ON DUPLICATE KEY UPDATE reader_name=VALUES(reader_name), reader_birthday=VALUES(reader_birthday), reader_sex=VALUES(reader_sex); INSERT INTO t_borrow_record (borrow_id, reader_id, book_id, borrow_date) VALUES ('BR01', 'R01', 'B01', '2026-01-10'), ('BR02', 'R02', 'B03', '2026-02-15'), ('BR03', 'R03', 'B02', '2026-03-20') ON DUPLICATE KEY UPDATE reader_id=VALUES(reader_id), book_id=VALUES(book_id), borrow_date=VALUES(borrow_date);
DDL.1
【bookmanager】建立表 publish。要求字段:
出版社编号 char(4) 主键
出版社名称 varchar(30) 唯一性且不为空
联系电话 Varchar(23) LEVEL 8
出版社编号 char(4) 主键
出版社名称 varchar(30) 唯一性且不为空
联系电话 Varchar(23) LEVEL 8
🗝️ 查看 SQL 参考答案
CREATE TABLE publish ( 出版社编号 CHAR(4) NOT NULL PRIMARY KEY, 出版社名称 VARCHAR(30) NOT NULL UNIQUE, 联系电话 VARCHAR(23) NULL );
DDL.2
【db_library】建立 t_press 表 (出版社表)。要求字段:
press_id varchar(10) 主键
press_name varchar(50) 不为空 LEVEL 8
press_id varchar(10) 主键
press_name varchar(50) 不为空 LEVEL 8
🗝️ 查看 SQL 参考答案
CREATE TABLE t_press ( press_id VARCHAR(10) PRIMARY KEY, press_name VARCHAR(50) NOT NULL );
DDL.3
【bookmanager】建立 reader 表,并建立主键约束。要求字段:
借书证号 char(8) 主键
姓名 char(8) 不为空
性别 char(2) null 默认’男’
部门 char(16)
联系电话 varchar(23) 不为空 LEVEL 8
借书证号 char(8) 主键
姓名 char(8) 不为空
性别 char(2) null 默认’男’
部门 char(16)
联系电话 varchar(23) 不为空 LEVEL 8
🗝️ 查看 SQL 参考答案
CREATE TABLE reader ( 借书证号 CHAR(8) NOT NULL PRIMARY KEY, 姓名 CHAR(8) NOT NULL, 性别 CHAR(2) NULL DEFAULT '男', 部门 CHAR(16) NULL, 联系电话 VARCHAR(23) NOT NULL );
DDL.4
【db_library】建立 t_reader 表 (读者表)。要求字段:
reader_id varchar(10) 主键
reader_name varchar(50) 不为空
reader_birthday date
reader_sex varchar(2) LEVEL 8
reader_id varchar(10) 主键
reader_name varchar(50) 不为空
reader_birthday date
reader_sex varchar(2) LEVEL 8
🗝️ 查看 SQL 参考答案
CREATE TABLE t_reader ( reader_id VARCHAR(10) PRIMARY KEY, reader_name VARCHAR(50) NOT NULL, reader_birthday DATE, reader_sex VARCHAR(2) );
DDL.5
【bookmanager】建立 book 表,并建立主外键约束。要求字段:
图书编号 char(6) 主键
图书名称 Varchar(40) 不为空
作者 char(8) 不为空
出版社编号 char(4) 外键关联 publish
版次 char(10)
价格 float 不为空
库存数量 int 不为空 LEVEL 8
图书编号 char(6) 主键
图书名称 Varchar(40) 不为空
作者 char(8) 不为空
出版社编号 char(4) 外键关联 publish
版次 char(10)
价格 float 不为空
库存数量 int 不为空 LEVEL 8
🗝️ 查看 SQL 参考答案
CREATE TABLE book ( 图书编号 CHAR(6) NOT NULL PRIMARY KEY, 图书名称 VARCHAR(40) NOT NULL, 作者 CHAR(8) NOT NULL, 出版社编号 CHAR(4) NULL, 版次 CHAR(10) NULL, 价格 FLOAT NOT NULL, 库存数量 INT NOT NULL, FOREIGN KEY (出版社编号) REFERENCES publish(出版社编号) ON DELETE SET NULL ON UPDATE CASCADE );
DDL.6
【db_library】建立 t_book 表 (图书表)。要求字段:
book_id varchar(10) 主键
book_name varchar(100) 不为空
press_id varchar(10) 外键关联 t_press
price decimal(10,2) LEVEL 8
book_id varchar(10) 主键
book_name varchar(100) 不为空
press_id varchar(10) 外键关联 t_press
price decimal(10,2) LEVEL 8
🗝️ 查看 SQL 参考答案
CREATE TABLE t_book ( book_id VARCHAR(10) PRIMARY KEY, book_name VARCHAR(100) NOT NULL, press_id VARCHAR(10), price DECIMAL(10, 2), FOREIGN KEY (press_id) REFERENCES t_press(press_id) ON DELETE SET NULL ON UPDATE CASCADE );
DDL.7
【bookmanager】建立 borrow 表。要求字段:
借书证号 char(8) NOT NULL 外键
图书编号 char(6) NOT NULL 外键
借阅日期 datetime NOT NULL
借书期限 int NOT NULL
还书日期 datetime
是否过期 char(2) 默认 '否'
复合主键:借书证号, 图书编号, 借阅日期 LEVEL 8
借书证号 char(8) NOT NULL 外键
图书编号 char(6) NOT NULL 外键
借阅日期 datetime NOT NULL
借书期限 int NOT NULL
还书日期 datetime
是否过期 char(2) 默认 '否'
复合主键:借书证号, 图书编号, 借阅日期 LEVEL 8
🗝️ 查看 SQL 参考答案
CREATE TABLE borrow ( 借书证号 CHAR(8) NOT NULL, 图书编号 CHAR(6) NOT NULL, 借阅日期 DATETIME NOT NULL, 借书期限 INT NOT NULL, 还书日期 DATETIME NULL, 是否过期 CHAR(2) NULL DEFAULT '否', PRIMARY KEY (借书证号, 图书编号, 借阅日期), FOREIGN KEY (借书证号) REFERENCES reader(借书证号) ON DELETE CASCADE ON UPDATE CASCADE, FOREIGN KEY (图书编号) REFERENCES book(图书编号) ON DELETE CASCADE ON UPDATE CASCADE );
DDL.8
【db_library】建立 t_borrow_record 表 (借阅记录表)。要求字段:
borrow_id varchar(10) 主键
reader_id 外键关联 t_reader
book_id 外键关联 t_book
borrow_date date LEVEL 8
borrow_id varchar(10) 主键
reader_id 外键关联 t_reader
book_id 外键关联 t_book
borrow_date date LEVEL 8
🗝️ 查看 SQL 参考答案
CREATE TABLE t_borrow_record ( borrow_id VARCHAR(10) PRIMARY KEY, reader_id VARCHAR(10), book_id VARCHAR(10), borrow_date DATE, FOREIGN KEY (reader_id) REFERENCES t_reader(reader_id) ON DELETE CASCADE ON UPDATE CASCADE, FOREIGN KEY (book_id) REFERENCES t_book(book_id) ON DELETE CASCADE ON UPDATE CASCADE );