Verified Commit 64b5371d authored by Kiryuu Sakuya's avatar Kiryuu Sakuya 🎵
Browse files

Finish No.3

parent 2ef2e21c
# 图书管理数据库
## 数据库
现有图书管理数据库的三个关系模式:
book - 图书(总编号, 分类号, 书名, 作者, 出版单位, 单价)
reader - 读者(借书证号, 单位, 姓名, 性别, 职称, 地址, 电话)
lr - 借阅(借书证号, 总编号, 借书日期)
在 MYSQL 中建立一个 TSDB 的数据库并在数据库中建立三张表,在三张表中分别插入以下所给的元组。(字段的数据类型请自己定义,不做要求,需建主键,无需建外键)
### 建库命令
请参阅 `图书管理数据库.sql`
## 题目与解答
### 1. 查找书名以计算机打头的所有图书和作者
```mysql
SELECT * FROM book WHERE Bname LIKE '计算机%';
```
### 2. 检索同时借阅了总编号为 112266 和 449901 两本书的借书证号
```mysql
SELECT reader.Lno
FROM book
LEFT JOIN lr ON lr.Bno = book.Bno
LEFT JOIN reader ON reader.Lno = lr.Lno
WHERE lr.Bno = '112266' AND '449901';
```
### 3. 找出李某所借图书的所有图书的书名及借书日期
```mysql
SELECT book.Bname, lr.Ltime
FROM book
LEFT JOIN lr ON lr.Bno = book.Bno
LEFT JOIN reader ON reader.Lno = lr.Lno
WHERE reader.Lname LIKE '李%';
```
### 4. 求信息系当前借阅图书的读者人次数
```mysql
-- COUNT 的话,比如 SELECT COUNT(*) FROM pet; 这种就是数 pet 里所有的。
-- DISTINCT 是去除重复记录的。
SELECT count(DISTINCT Lno)
FROM lr
WHERE Lno in (
SELECT Lno
FROM reader
WHERE dept='信息系');
```
### 5. 找出借阅了 FoxPro 大全一书的借书证号
```mysql
SELECT reader.Lno
FROM book
LEFT JOIN lr ON lr.Bno = book.Bno
LEFT JOIN reader ON reader.Lno = lr.Lno
WHERE book.Bname = 'FoxPro 大全';
```
\ No newline at end of file
/*
Navicat MySQL Data Transfer
Source Server : localhost_3306
Source Server Version : 50714
Source Host : localhost:3306
Source Database : tsdb
Target Server Type : MYSQL
Target Server Version : 50714
File Encoding : 65001
Date: 2018-01-03 10:04:58
*/
SET FOREIGN_KEY_CHECKS=0;
-- ----------------------------
-- Table structure for `book`
-- ----------------------------
DROP TABLE IF EXISTS `book`;
CREATE TABLE `book` (
`Bno` varchar(6) NOT NULL,
`Cno` varchar(7) DEFAULT NULL,
`Bname` varchar(10) DEFAULT NULL,
`writer` varchar(10) DEFAULT NULL,
`publication` varchar(10) DEFAULT NULL,
`price` decimal(9,2) DEFAULT NULL,
PRIMARY KEY (`Bno`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8mb4;
-- ----------------------------
-- Records of book
-- ----------------------------
INSERT INTO `book` VALUES ('445501', 'TP3/12', '数据库导论', '王强', '科学出版社', '17.90');
INSERT INTO `book` VALUES ('445502', 'TP3/12', '数据库导论', '王强', '科学出版社', '17.90');
INSERT INTO `book` VALUES ('445503', 'TP3/12', '数据库导论', '王强', '科学出版社', '17.90');
INSERT INTO `book` VALUES ('332211', 'TP5/10', '计算机基础', '李伟', '高等教育出版社', '18.00');
INSERT INTO `book` VALUES ('112266', 'TP3/12', 'FoxBASE', '张三', '电子工业出版社', '23.60');
INSERT INTO `book` VALUES ('665544', 'TS7/21', '高等数学', '刘明', '高等教育出版社', '20.00');
INSERT INTO `book` VALUES ('114455', 'TR9/12', '线性代数', '孙业', '北京大学出版社', '20.80');
INSERT INTO `book` VALUES ('113388', 'TR7/90', '大学英语', '胡玲', '清华大学出版社', '12.50');
INSERT INTO `book` VALUES ('446601', 'TP4/13', '数据库基础', '马凌云', '人民邮电出版社', '22.50');
INSERT INTO `book` VALUES ('446602', 'TP4/13', '数据库基础', '马凌云', '人民邮电出版社', '22.50');
INSERT INTO `book` VALUES ('446603', 'TP4/13', '数据库基础', '马凌云', '人民邮电出版社', '22.50');
INSERT INTO `book` VALUES ('449901', 'TP4/14', 'FoxPro 大全', '周虹', '科学出版社', '32.70');
INSERT INTO `book` VALUES ('449902', 'TP4/14', 'FoxPro 大全', '周虹', '科学出版社', '32.70');
INSERT INTO `book` VALUES ('118801', 'TP4/15', '计算机网络', '黄力钧', '高等教育出版社', '21.80');
INSERT INTO `book` VALUES ('118802', 'TP4/15', '计算机网络', '黄力钧', '高等教育出版社', '21.80');
-- ----------------------------
-- Table structure for `lr`
-- ----------------------------
DROP TABLE IF EXISTS `lr`;
CREATE TABLE `lr` (
`Lno` varchar(3) DEFAULT NULL,
`Bno` varchar(6) DEFAULT NULL,
`Ltime` date DEFAULT NULL
) ENGINE=MyISAM DEFAULT CHARSET=utf8mb4;
-- ----------------------------
-- Records of lr
-- ----------------------------
INSERT INTO `lr` VALUES ('112', '445501', '1997-03-19');
INSERT INTO `lr` VALUES ('125', '332211', '1997-02-12');
INSERT INTO `lr` VALUES ('111', '445503', '1997-08-21');
INSERT INTO `lr` VALUES ('112', '112266', '1997-03-14');
INSERT INTO `lr` VALUES ('114', '665544', '1997-10-21');
INSERT INTO `lr` VALUES ('120', '114455', '1997-11-02');
INSERT INTO `lr` VALUES ('120', '118801', '1997-10-18');
INSERT INTO `lr` VALUES ('119', '446603', '1997-12-12');
INSERT INTO `lr` VALUES ('112', '449901', '1997-10-23');
INSERT INTO `lr` VALUES ('115', '449902', '1997-08-21');
INSERT INTO `lr` VALUES ('118', '118801', '1997-09-10');
-- ----------------------------
-- Table structure for `reader`
-- ----------------------------
DROP TABLE IF EXISTS `reader`;
CREATE TABLE `reader` (
`Lno` varchar(3) NOT NULL,
`dept` varchar(6) DEFAULT NULL,
`Lname` varchar(6) DEFAULT NULL,
`sex` varchar(1) DEFAULT NULL,
`work` varchar(20) DEFAULT NULL,
`addr` varchar(20) DEFAULT NULL,
`tel` varchar(11) DEFAULT NULL,
PRIMARY KEY (`Lno`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8mb4;
-- ----------------------------
-- Records of reader
-- ----------------------------
INSERT INTO `reader` VALUES ('111', '信息系', '王维利', '女', '教授', '1 号楼 424', null);
INSERT INTO `reader` VALUES ('112', '财会系', '李立', '男', '副教授', '2 号楼 316', null);
INSERT INTO `reader` VALUES ('113', '经济系', '张三', '男', '讲师', '3 号楼 105', null);
INSERT INTO `reader` VALUES ('114', '信息系', '周华发', '男', '讲师', '1 号楼 316', null);
INSERT INTO `reader` VALUES ('115', '信息系', '赵正义', '男', '工程师', '1 号楼 224', null);
INSERT INTO `reader` VALUES ('116', '信息系', '李明', '男', ' 副教授', '1 号楼 318', null);
INSERT INTO `reader` VALUES ('117', '计算机系', '李小峰', '男', '助教', '1 号楼 214', null);
INSERT INTO `reader` VALUES ('118', '计算机系', '许鹏飞', '男', '助工', '1 号楼 216', null);
INSERT INTO `reader` VALUES ('119', '计算机系', '刘大龙', '男', '教授', '1 号楼 318', null);
INSERT INTO `reader` VALUES ('120', '国际贸易', '李雪', '男', '副教授', '4 号楼 506', null);
INSERT INTO `reader` VALUES ('121', '国际贸易', '李爽', '女', '讲师', '4 号楼 510', null);
INSERT INTO `reader` VALUES ('122', '国际贸易', '王纯', '女', '讲师', '4 号楼 512', null);
INSERT INTO `reader` VALUES ('123', '财会系', '沈小霞', '女', '助教', '2 号楼 202', null);
INSERT INTO `reader` VALUES ('124', '财会系', '朱海', '男', '讲师', '2 号楼 210', null);
INSERT INTO `reader` VALUES ('125', '财会系', '马英明', '男', '副教授', '2 号楼 212', null);
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment