图书馆查询练习

本文介绍了几个关于MySQL数据库查询的复杂问题,包括从TBL_User表中筛选出前3个姓'李'的用户记录,查找各出版社最薄的图书,以及统计图书总数在2册以上的出版社。同时,展示了如何查询所有借过书的女生信息。这些例子有助于提升对SQL查询的理解和应用。
摘要由CSDN通过智能技术生成

Mysql语句——图书馆查询练习(部分)

表的属性

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-tqmrJID8-1619514960931)(C:\Users\小坏蛋次奥\Pictures\20210423092236268.png)]

以下是创建表的具体源码
create table TBL_BorrowInfo(
BorrowInfoID int primary key not null comment '借阅记录编号',
BookID char(10) not null comment '图书编号',
BorrowDate datetime not null default current_timestamp comment '借阅时间',
ReturnDate datetime default null comment '归还日期',
UserID char(10) not null comment '借阅者ID',
IsReturned bit comment '是否归还'
) engine=innodb default charset=utf8;

create table TBL_BookInfo(
BookID char(10) primary key not null comment '图书编号',
ISBN char(20) not null comment '图书ISBN号',
Bookname nvarchar(50) not null comment '书名',
Author nvarchar(20) not null comment '作者',
PublishDate datetime default null comment '出版日期',
BookVersion nvarchar(40) not null comment '图书版本',
WordCount int not null comment '字数',
PageCount smallint not null comment '页数',
Publisher nvarchar(40) not null default '' comment '出版社',
ClassID char(10) not null comment '图书分类编号'
) engine=innodb default charset=utf8;

create table TBL_User(
UserID char(10) primary key not null comment '用户ID',
UserName nvarchar(20) not null unique default '' comment '用户名',
Sex tinyint unsigned not null default 0 comment '性别',
Password binary(20) not null default '' comment '密码',
Email varchar(50) default '' comment '邮箱',
Class nvarchar(40) not null default '' comment '所在班级',
Photo mediumblob comment '照片'
) engine=innodb default charset=utf8;

create table TBL_BookClass(
ClassID char(10) primary key not null comment '图书分类编号',
ClassName nvarchar(50) comment '分类名'
) engine=innodb default charset=utf8;

create table TBL_AdminInfo(
AdminID char(10) not null primary key comment '管理员ID',
AdminName nvarchar(30) not null default '' comment '管理员姓名',
Password binary(20) not null default '' comment '管理员密码',
Email varchar(40) not null default '' comment '管理员电子邮箱'
) engine=innodb default charset=utf8;

#外键约束
ALTER TABLE TBL_BorrowInfo ADD CONSTRAINT FK_UserID FOREIGN KEY(UserID) REFERENCES  TBL_User(UserID);

ALTER TABLE TBL_BorrowInfo ADD CONSTRAINT FK_ID FOREIGN KEY(BookID) REFERENCES  TBL_BookInfo(BookID);

ALTER TABLE TBL_BookInfo ADD CONSTRAINT FK_ClassID FOREIGN KEY(ClassID) REFERENCES  TBL_BookClass(ClassID);

找一些个人认为比较有难度或者有意思题目来记录一下,以防再次掉坑。
  1. 从TBL_ User 表中检索出最前面的3个姓‘李’的用户记录的借书证号,姓名,性别并将保存到一个新表中。

    分析:最前面的3个姓‘李’(UserName asc limit 3)、并将保存到新表(create table abc select…)

    create table 新表 select UserID,UserName,Sex+0 from tbl_user where UserName like '李%' order by UserName asc limit 3;
    

    输入数据测试

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-clzEd0RB-1619514960934)(C:\Users\小坏蛋次奥\Pictures\截图\学习\Mysql\QQ截图20210427170901.png)]

    结果

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-BpIiip1g-1619514960938)(C:\Users\小坏蛋次奥\Pictures\截图\学习\Mysql\QQ截图20210427171048.png)]

  2. 查询各出版社最薄的图书并将结果保存到一个新表中。

    分析:最薄的图书(min(pagecount))

    create table abc select publisher,min(pagecount) from tbl_bookinfo group by publisher;
    

    输入数据测试

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-bxfNHXcd-1619514960940)(C:\Users\小坏蛋次奥\Pictures\截图\学习\Mysql\QQ截图20210427162318.png)]

    结果

    ![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-1eM1se6w-1619514960943)(C:\Users\小坏蛋次奥\Pictures\截图\学习\Mysql\QQ截图20210427162432.png)]](https://img-blog.csdnimg.cn/20210427172043166.png#pic_center

  3. 从TBL_Bookinfo 表查询出各出版社的图书总数在2册以上的图书总数并将结果保存到一个新表中。

    分析:要注意清空重复值2册以上的图书总数

    create table abc select publisher,group_concat(bookname) from tbl_bookinfo group by publisher having count(*)>=2;
    

    输入数据测试

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-V9LWbjCv-1619514960946)(C:\Users\小坏蛋次奥\Pictures\截图\学习\Mysql\QQ截图20210427162318.png)]

    结果

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-9zQPfYXR-1619514960947)(C:\Users\小坏蛋次奥\Pictures\截图\学习\Mysql\QQ截图20210427163206.png)]

  4. 查询出所有借过书的女生的信息。

    分析:用 join on 再加上无限的 andIsReturned =1表示已归还(归还过) sex=1 表示女生

    select username,sex,password,email,class,photo from TBL_BorrowInfo join TBL_User on TBL_BorrowInfo.userid=TBL_User.userid and TBL_BorrowInfo.IsReturned=1 and sex=1;
    

    输入数据测试

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-6WJuH6K3-1619514960948)(C:\Users\小坏蛋次奥\Pictures\截图\学习\Mysql\QQ截图20210427171322.png)]

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-RJECeGf5-1619514960950)(C:\Users\小坏蛋次奥\Pictures\截图\学习\Mysql\QQ截图20210427170901.png)]

    结果

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ufwZ8XJA-1619514960951)(C:\Users\小坏蛋次奥\Pictures\截图\学习\Mysql\QQ截图20210427171435.png)]

有空更新

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值