创建数据库library

创建数据表

  1. 图书类别表(booktype)

序号 属性名称 含义 数据类型 是否为空 备注
1 typeid 类别编号 int not null 主键
2 typename 类别名称 varchar(20) null
  1. 图书信息表(book)

序号 属性名称 含义 数据类型 是否为空 备注
1 bookid 图书编号 char(10) not null 主键
2 bookname 图书名称 varchar(20) not null
3 typeid 类别编号 int null 外键
4 bookauthor 图书作者 varchar(20) null
5 bookpublisher 出版社 varchar(50) null
6 bookprice 图书价格 doublue null
7 borrowsum 借阅次数 int null
  1. 图书存储信息表(bookstorage)

序号 属性名称 含义 数据类型 是否为空 备注
1 bookbarcode 图书条码 char(20) not null 主键
2 bookid 图书编号 char(10) not null 外键
3 bookintime 图书入馆时间 datetime null
4 bookstatus 图书状态 varchar(4) null
  1. 读者类别表(readertype)

序号 属性名称 含义 数据类型 是否为空 备注
1 retypeid 类别编号 int not null
2 typename 类别名称 varchar(20) not null
3 borrowquantity 可借数量 int not null
4 borrowday 可借天数 int null
  1. 读者信息表(reader)

序号 属性名称 含义 数据类型 是否为空 备注
1 readerid 读者编号 char(10) not null 主键
2 readername 读者姓名 varchar(20) not null
3 readerpass 读者密码 varchar(20) not null
4 retypeid 类别编号 int null 外键
5 readerdate 发证日期 datetime null
6 readerstatus 借书证状态 varchar(4) null
  1. 图书借阅表(bookborrow)

序号 属性名称 含义 数据类型 是否为空 备注
1 borrowid 借阅号 char(10) not null 主键
2 bookbarcode 图书条码 char(20) not null 外键
3 readerid 读者编号 char(10) not null 外键
4 borrowtime 借书日期 datetime null
5 returntime 还书日期 datetime null
6 borrowstatus 借阅状态 varchar(4) null

为创建的表插入如下数据

  1. 图书类别表(booktype)

typeid typename
1 自然科学
2 数学
3 计算机
4 建筑水利
5 旅游地理
6 励志/自我实现
7 工业技术
8 基础医学
9 室内设计
10 人文景观
  1. 图书信息表(book)

bookid bookname typeid bookauthor bookpublisher bookprice borrowsum
TP39/1712 Java程序设计 3 陈永红 机械工业出版社 35.5 30
013452 离散数学 2 张小新 机械工业出版社 45.5 10
TP/3452 JSP程序设计案例 3 刘城清 电子工业出版社 42.8 8
TH/2345 机械设计手册 7 黄明凡 人民邮电出版社 40 10
R/345677 中医的故事 8 李奇德 国防工业出版社 20.0 5
  1. 图书存储信息表(bookstorage)

bookbarcode bookid bookintime bookstatus
132782 TP39/1712 2009-08-10 00:00:00 在馆
132789 TP39/1712 2009-08-10 00:00:00 借出
145234 013452 2008-12-06 00:00:00 借出
145321 TP/3452 2007-11-04 00:00:00 借出
156833 TH/2345 2009-12-04 00:00:00 借出
345214 R/345677 2008-11-03 00:00:00 在馆
  1. 读者类别表(readertype)

retypeid typename borrowquantity borrowday
1 学生 10 30
2 教师 20 60
3 管理员 15 30
4 职工 15 20
  1. 读者信息表(reader)

readerid readername readerpass retypeid readerdate readerstatus
0016 苏小东 123456 1 1999-09-09 00:00:00 有效
0017 张明 123456 1 2010-09-10 00:00:00 有效
0018 梁君红 123456 1 2010-09-10 00:00:00 有效
0021 赵清远 123456 2 2010-07-01 00:00:00 有效
0034 李瑞清 123456 3 2009-08-03 00:00:00 有效
0042 张明月 123456 4 1997-04-23 00:00:00 有效
  1. 图书借阅表(bookborrow)

borrowid bookbarcode readerid borrowtime returntime borrowstatus
001328 132789 0017 2011-01-24 00:00:00 2011-02-28 00:00:00 已还
001356 145234 0018 2011-02-12 00:00:00 2011-02-27 00:00:00 已还
001432 132782 0016 2011-03-04 00:00:00 2011-04-05 00:00:00 已还
001435 145321 0021 2011-08-09 00:00:00 2011-09-02 00:00:00 已还
001578 156833 0034 2011-10-01 00:00:00 2011-11-01 00:00:00 未还
001679 345214 0042 2011-02-21 00:00:00 2011-03-05 00:00:00 未还

查询数据

1 查询book表的书号, 书名借出数量

select `bookid`,`bookname`,`borrowsum` from book;
复制代码

2 用别名查询book表的书号, 书名借出数量

select `bookid` as 书号,`bookname` as 书名,`borrowsum` as 借出数量 from book;
复制代码

3 查询类型是学生的所有读者的信息

select * from reader where retypeid = 1;
复制代码

4 查询借出时间在2011年3月1日2011年10月1日之间的图书

select * from bookborrow where borrowtime >= '2011-3-1' and borrowtime <= '2011-10-1';
复制代码

5 查询借出时间在2011年3月1日之后并且还书时间在2011年10月1日之前的图书

select * from bookborrow where borrowtime >= '2011-3-1' and returntime <= '2011-10-1';
复制代码

6 in关键字查询类型是老师或者学生的读者信息

select * from reader where retypeid in (1,2);
复制代码

7 查询书名包含程序的图书信息

select * from book where bookname like '%程序%';
复制代码

8 查询借出数量排名前3的图书

select * from book order by borrowsum desc limit 3;
复制代码

9 按图书借出数量从高到低查询, 如果借出数量相同, 再按价格高低排序

select * from book order by borrowsum desc,bookprice desc;
复制代码

10 查找图书表中从第2条记录开始的5条记录的名称和价格

select bookname,bookprice from book limit 1,5;
复制代码

11 按照读者类型分组查询借出图书的数量

SELECTreader.retypeid,count( * )
FROMbookborrowJOIN reader ON reader.readerid = bookborrow.readerid
GROUP BYreader.retypeid;
复制代码

12 查询各个出版社的图书的平均价格

select bookpublisher,avg(bookprice) from book group by bookpublisher;
复制代码

13 查询读者编号是0021的读者借书的信息,包括读者名, 图书号, 借出时间和归还时间

SELECTreader.readername,bookstorage.bookid,bookborrow.borrowtime,bookborrow.returntime
FROMreaderJOIN bookborrow ON bookborrow.readerid = reader.readeridJOIN bookstorage ON bookstorage.bookbarcode = bookborrow.bookbarcode
WHEREreader.readerid = '0021';
复制代码

14 查询所有读者的借书信息, 包括读者名, 图书名, 借出时间和归还时间

SELECTreader.readername,book.bookname,bookstorage.bookid,bookborrow.borrowtime,bookborrow.returntime
FROMreaderJOIN bookborrow ON bookborrow.readerid = reader.readeridJOIN bookstorage ON bookstorage.bookbarcode = bookborrow.bookbarcodeJOIN book ON book.bookid = bookstorage.bookid;
复制代码

15 查询借出数量大于书籍编号为TP/3452的借出数量的图书信息

select * from book where borrowsum > (select borrowsum from book where bookid = 'TP/3452');
复制代码

16 查询已借了图书的读者信息

select * from reader where readerid in (select readerid from bookborrow WHERE borrowstatus = '未还');
复制代码

创建数据库stucourse

没有表结构, 根据数据, 自己决定使用哪种数据类型

  1. 学生表(student)

sid sname sex age dept
1001 宋江 25 计算机系
3002 张明 23 生物系
1003 李小鹏 26 计算机系
1004 郑冬 25 计算机系
4005 李晓红 27 工商管理
5006 赵紫月 24 外语系
  1. 教师表(teacher)

tid tname title salary dept cid
3102 李明 初级 2500 计算机系 C1
3108 黄晓明 初级 4000 生物系 C3
4105 张晓红 中级 3500 工商管理 C2
5102 宋力跃 高级 3500 物理系 C4
3106 赵明阳 初级 1500 地理系 C2
7108 张丽 高级 3500 生物系 C3
9103 王彬 高级 3500 计算机系 C1
7101 王力号 初级 1800 生物系 C1
  1. 课程表(courseinfo)

cid cname cbook ctest dept
C1 计算机基础 b1231 2009-4-6 计算机系
C2 工商管理基础 b1232 2009-7-16 工商管理
C3 生物科学 b1233 2010-3-6 生物系
C4 大学物理 b1234 2009-4-26 物理系
C5 数据库原理 b1235 2010-2-6 计算机系
  1. 选课表(scourse)

sid score cid tid
1001 87 C1 3102
1001 77 C2 4105
1001 63 C3 3108
1001 56 C4 5102
3002 78 C3 3108
3002 78 C4 5102
1003 89 C1 9103
1004 56 C2 3106
4005 87 C4 5102
5006 null C1 7101
  1. 教材表(bookinfo)

bid bname bpublish bprice quantity
b1231 Image Processing 人民大学出版社 34.56 8
b1212 Signal Processing 清华大学出版社 51.75 10
b1233 Digital Signal Processing 邮电出版社 48.5 11
b1234 The Logic Circuit 北大出版社 49.2 40
b1235 SQL Techniques 邮电出版社 65.4 20

查询数据

  1. 查询全体学生的学号, 姓名年龄

    select sid,sname,age from student;
    复制代码
  2. 查询选修了课程的学生号

    select sid from student where sid in (select sid from scourse);
    复制代码
  3. 查询选修课程号c3学号成绩

    select sid, score from scourse where cid = 'C3';
    复制代码
  4. 查询成绩高于85分的学生的学号课程号成绩

    SELECTsid,score,cid
    FROMscourse
    WHEREscore > 85;
    复制代码
  5. 查询没有选修C1也没有选修C2学生学号课程号成绩

    SELECTsid,score,cid
    FROMscourse
    WHEREcid NOT IN ( 'c1', 'c2' );
    复制代码
  6. 查询工资在1500~2000之间的教师的教师号姓名职称

    SELECTtid,tname,title
    FROMteacher
    WHEREsalary BETWEEN 1500 AND 2000;
    复制代码
  7. 查询选修C1C2的学生的学号课程号成绩

    SELECTsid,score,cid
    FROMscourse
    WHEREcid IN ( 'c1', 'c2' );
    复制代码
  8. 查询所有姓张的教师的教师号姓名

    SELECTteacher.tid,teacher.tname
    FROMteacher
    WHEREteacher.tname LIKE '张%';
    复制代码
  9. 查询姓名中第2个汉字是教师号姓名

    SELECTteacher.tid,teacher.tname
    FROMteacher
    WHEREteacher.tname LIKE '_力%';
    复制代码
  10. 查询所有没有成绩的学生的学号和相应的课程号

    SELECTsid,cid
    FROMscourse
    WHEREscore IS NULL;
    复制代码
  11. 查询选修C1学生学号成绩,并按照成绩降序排列

    SELECTsid,score
    FROMscourse
    WHEREcid = 'C1'
    ORDER BYscore DESC;
    复制代码
  12. 查询选修C2,或者C3,或者C4,或者C5课程的学号课程号成绩, 查询结果按学号升序排列,学号相同,再按成绩降序排列

    SELECTsid,cid,score
    FROMscourse
    WHEREcid IN ( 'C2', 'C3', 'C4', 'C5' )
    ORDER BYsid,score DESC;
    复制代码
  13. 查询选修C1学生学号成绩,并显示成绩前三的学生

    SELECTsid,score
    FROMscourse
    WHEREcid = 'C1'
    ORDER BYscore DESC LIMIT 3;
    复制代码
  14. 查询计算机系学生的总数

    SELECTcount( * )
    FROMstudent
    WHEREdept = '计算机系';
    复制代码
  15. 查询每位学生的学号及其选修课的门数

    SELECTsid,count( * )
    FROMscourse
    GROUP BYsid;
    复制代码
  16. 在分组查询中使用having条件查询,平均成绩大于85的学生学号平均成绩

    SELECTsid,avg( score )
    FROMscourse
    GROUP BYsid
    HAVINGavg( score ) > 85;
    复制代码
  17. 查询选课在两门以上且各门课均及格的学生的学号及其总成绩, 查询结果按总成绩降序列出

    SELECTsid,count( * ),sum( score )
    FROMscourse
    WHEREscore > 60 and sid not in (select sid from scourse where score < 60)
    GROUP BYsid
    HAVINGcount( * ) > 2
    ORDER BYsum( score ) DESC;
    复制代码
  18. 查询所有选课学生的学号姓名选课名称成绩

    SELECTstudent.sid,student.sname,scourse.cid,scourse.score
    FROMscourse,student
    WHEREstudent.sid = scourse.sid;
    复制代码
  19. 查询选修C1课程且成绩在60以上的所有学生的学号, 姓名分数

    SELECTstudent.sid,student.sname,scourse.score,scourse.cid
    FROMstudentJOIN scourse ON scourse.sid = student.sid
    WHEREscourse.cid = 'C1' AND scourse.score > 60;
    复制代码
  20. 查询与李明教师职称相同的教师号, 姓名

    SELECTteacher.tid,teacher.tname,teacher.title
    FROMteacher
    WHEREteacher.title = ( SELECT title FROM teacher WHERE tname = '李明' ) AND teacher.tname != '李明';
    复制代码

快速跳转

  • [MySQL光速入门]006 留点作业...
  • [MySQL光速入门]008 SQL强化练习

转载于:https://juejin.im/post/5c9b301f518825529a0c78ff

[MySQL光速入门]007 作业解答相关推荐

  1. [MySQL光速入门]012 作业解答

    实训内容二 使用算数运算符-, 查询最低借阅量与最高借阅量的差值 select max(borrowsum)-min(borrowsum) as 差值 from book; 复制代码 使用比较运算符( ...

  2. [MySQL光速入门]004 作业解答

    创建数据库library create database library character set utf8; use library; 复制代码 创建数据表 图书类别表(booktype) 序号 ...

  3. [MySQL光速入门]003 留点作业...

    创建数据库library 创建数据表 图书类别表(booktype) 序号 属性名称 含义 数据类型 是否为空 备注 1 typeid 类别编号 int not null 主键 2 typename ...

  4. [MySQL光速入门]020 事务

    TCL 事务控制语言 SQL的四种语言 DDL(Data Definition Language)数据库定义语言 建表, 建库, 修改表结构 DML(Data Manipulation Languag ...

  5. mysql的第一次作业_数据库入门第一次作业 - osc_2frf70qv的个人空间 - OSCHINA - 中文开源技术交流社区...

    数据库入门第一次作业 1.在某大学的<>中,用如下表来存储学生信息.其中,用户信息.星座信息和血型信息分别采用Users.Star和Blood三个表来保存,其中Users表引用了Star和 ...

  6. 光速入门MyBatis-Plus

    光速入门MyBatis-Plus 0.特性 无侵入:只做增强不做改变,引入它不会对现有工程产生影响,如丝般顺滑 损耗小:启动即会自动注入基本 CURD,性能基本无损耗,直接面向对象操作 强大的 CRU ...

  7. 3000门徒内部训练绝密视频(泄密版)第1课:大数据最火爆语言Scala光速入门

    大数据最火爆语言Scala光速入门 scala 可以使用java的库 scala 的工厂方法:apply 条件表达式有返回值 数组可以用to ,箭头 <- 最后一行内容的值是整个代码块的返回值 ...

  8. 推荐系统[一]:超详细知识介绍,一份完整的入门指南,解答推荐系统相关算法流程、衡量指标和应用,以及如何使用jieba分词库进行相似推荐,业界广告推荐技术最新进展

    搜索推荐系统专栏简介:搜索推荐全流程讲解(召回粗排精排重排混排).系统架构.常见问题.算法项目实战总结.技术细节以及项目实战(含码源) 专栏详细介绍:搜索推荐系统专栏简介:搜索推荐全流程讲解(召回粗排 ...

  9. mysql从入门到精通之数据库安装图解

    Mysql是基于C/S架构的.客户端/服务器Clinent /Server 安装版本建议:对于开源软件,不要追求最新的版本,最好是经过线上测试比较稳定的,也就是生产环境中的稳定版的,请务必选用稳定版本 ...

最新文章

  1. android studio安装中出现Failed to install Intel HAXM错误的解决方法
  2. 第二阶段团队项目冲刺第六天
  3. spring31-1: 事务-传播行为
  4. 《算法基础》——2.3 求幂运算
  5. 李宏毅深度学习——第一天
  6. SQL Server 2008带字段注释导入Power Designer 9.5
  7. JZOJ 5699. 【gdoi2018 day1】涛涛接苹果(appletree)
  8. 关闭 Adobe Flash 沙箱(保护模式)解决Flash崩溃及卡顿问题
  9. 一种全数字实时仿真的安全关键领域解决方案
  10. LLVM 核心类简明示例
  11. php curl设置headers,php curl如何设置头部信息
  12. 使用WinMTR软件简单分析跟踪检测网络路由情况
  13. 关卡 - Aragami关卡设计
  14. kibana日志收集
  15. stm32usb做虚拟串口和键盘_在MINI STM32 板子上实现USB虚拟串口
  16. 海贼王剧场版:Z 剧情详解(附TS无字幕版地址)
  17. GitHub开源:支持100多种语言的OCR文字识别
  18. java中的double 类型数据相加问题
  19. Unity实现幸运大转盘
  20. PageHelper 插件踩过的坑

热门文章

  1. 树莓派4B——操作系统的安装
  2. 常见文件的加密工具类
  3. 技术体系构建_构建出色的技术简历的简单指南
  4. 搭建股票期货分仓系统如何
  5. IBM专家畅谈未来存储十大挑战
  6. 家电行业MES解决方案
  7. 基于ALIENTEK MINISTM32开发板 ADC+DMA 8通道显示
  8. transform使用导致元素内字体出现模糊的坑
  9. 网站下方的copyright和ICP备案号是什么意思?
  10. 六、创建Templates(模板)