¶前言
—李冠《蝶恋花·春暮》
遥夜亭皋闲信步。
才过清明,渐觉伤春暮。
数点雨声风约住。朦胧淡月云来去。桃杏依稀香暗渡。
谁在秋千,笑里轻轻语。
一寸相思千万绪。人间没个安排处。
大早, 喜见枯草堆中顽强的四叶草:
¶说明
接着之前的SQL语句继续整理, 内容大多参考了互联网上的很多内容, 好多都相似, 结尾缀上出处, 感谢分享. 这一部分内容, 在mysql中也亲自测试了, 带有截图.
这一部分主要内容为:mysql数据库改变表结构相关的SQL语句, 在书写上的格式、规范及环境配置等,详见:数据库题目整理及详解(一),说明部分 .
¶题目详情
- 设某图书馆借阅系统数据库包含如下关系:
1 | T_CARD(Cno, Cname, Class) |
¶解前初始化
1>, 创建表结构:
1 | create database books; ## 创建名为:books的数据库 |
2>, 完善表结构:
1 | ## 添加主键(t_borrow表) |
3>, 插入数据:
1 | ## 向t_card插入9条数据 |
¶题目详解
- 写出建立该数据库表的 SQL 语句,要求定义主码完整性约束和引用完整性约束。
见前部分的解前初始化内容.
- 找出借书超过 3 本的读者,输出借书卡号及所借图书册数。
1 | select cno, count(*) cs from t_borrow br group by cno having count(*) > 3; |
- 查询借阅了"Chinese Book"一书的读者,输出姓名及班级。
1 | select c.cno, c.name cname, c.class classname |
- 查询过期未还图书,输出借阅者(卡号)、书号及还书日期。
1 | select cno, bno, rdate from t_borrow where rdate < current_date(); |
- 查询书名包括"Chinese"关键词的图书,输出书号、书名、作者。
1 | select bno, bname, author from t_books where bname like '%Chinese%'; |
- 查询现有图书中价格最高的图书,输出书名及作者。
1 | select bname, author from t_books where price =(select max(price) from t_books); |
- 查询当前借了"Chinese Book"但没有借"English Book"的读者,输出其借书
卡号,并按卡号降序排序输出。
1 | select cno |
- 将"class_1"班同学所借图书的还期都延长一周。
1 | update t_borrow br set br.rdate=br.rdate + 7 |
- 从 T_BOOKS 表中删除当前无人借阅的图书记录
1 | delete from t_books |
- 如果经常按书名查询图书信息,请建立合适的索引。
1 | create index index_t_books_name on t_books(bname); |
- 在 BORROW 表上建立一个触发器, 完成如下功能:如果读者借阅的书名是"Computer Book", 就将该读者的借阅记录保存在 BORROW_SAVE 表中(注ORROW_SAVE 表结构同 BORROW 表) 。
1 | ## 先创建t_borrow_save表 |
- 建立一个视图,显示"力 01"班学生的借书信息(只要求显示姓名和书名)。
1 | create view view_t_borrow as |
- 查询当前同时借有"Computer Book"和"Math Book"两本书的读者,输出其借书卡号,并按卡号升序排序输出。
1 | select a.cno |
- 假定在建 BOOKS 表时没有定义主码,写出为 BOOKS 表追加定义主码的语句。
1 | alter table t_books |
- 对 CARD 表做如下修改:
a. 将 NAME 最大列宽增加到 10 个字符(假定原为 6 个字符);
b. 为该表增加 1 列 NAME(系名),可变长,最大 20 个字符。
1 | alter table t_card modify name varchar(50); |
¶参考资料
[1]. http://blog.csdn.net/tu451953337/article/details/45190849
[2]. http://mrxiong.blog.51cto.com/287318/1651098/
[3]. http://blog.csdn.net/jeamking/article/details/5953986
[4]. http://blog.163.com/yang_jianli/blog/static/1619900062011282225274/
[5]. http://www.111cn.net/database/mysql/36105.htm
[6]. http://blog.csdn.net/wjeson/article/details/17166205
[7]. http://www.cnblogs.com/zzwlovegfj/archive/2012/07/04/2576989.html
[8]. http://www.jb51.net/article/49207.htm