MySQL实验报告9
一、实验目的
1、掌握如何多表查询。
二、实验内容
图书****系统的数据库及相关数据表的创建
- 创建名称为bms的数据库,并且指定数据库的字符集为utf8mb4。
- 选择数据库bms
- 在数据库bms中创建图书表(book)
数据库技术及应用
实验报告九
一、实验目的
1、掌握如何多表查询。
二、实验内容
图书****系统的数据库及相关数据表的创建
- 创建名称为bms的数据库,并且指定数据库的字符集为utf8mb4。
- 选择数据库bms
- 在数据库bms中创建图书表(book)
字段名称 | 数据类型 | 约束 | 默认值 | 是否自增 | 说明 |
---|---|---|---|---|---|
id | INT | 主键约束 | 是 | 图书编号 | |
name | VARCHAR(20) | 非空约束唯一约束 | 否 | 图书名称 | |
price | DECIMAL(6,2) | 非空约束 | 否 | 图书价格 | |
upload_time | DATETIME | 非空约束 | 否 | 上架时间 | |
borrower_id | INT | 否 | 借阅人编号 | ||
borrow_time | DATETIME | 否 | 借阅时间 | ||
state | CHAR(1) | 非空约束 | '0' | 否 | (0表示可借阅,1表示已借阅,2表示已下架) |
CREATE TABLE book (
id INT PRIMARY KEY AUTO_INCREMENT,
name VARCHAR(20) NOT NULL UNIQUE,
price DECIMAL(6, 2) NOT NULL,
upload_time DATETIME NOT NULL,
borrower_id INT ,
borrow_time DATETIME,
state CHAR(1) NOT NULL DEFAULT 0
- 在book表中插入信息
INSERT INTO book (name,price,upload_time,state) VALUES ('三国演义',69.00,CURRENT_TIMESTAMP,2), ('MySQL数据库入门',40.00,CURRENT_TIMESTAMP,0), ('JavaWeb程序开发入门',49.00,CURRENT_TIMESTAMP,0), ('西游记',59.00,CURRENT_TIMESTAMP,2), ('红楼梦',33.00,CURRENT_TIMESTAMP,2), ('Java基础入门(第3版)',59.00,CURRENT_TIMESTAMP,0), ('水浒传',66.66,CURRENT_TIMESTAMP,2);
5.查询图书状态和《三国演义》相同的图书信息,图书信息只需显示图书名称、图书价格和状态。(用自连接查询做)
select e.name,e.price,e.state from book e inner join book e1 on e1.state=
e.state where e1.name='三国演义';
6.修改name字段名为bookname
alter table book change name bookname VARCHAR(20) unique not null;
在SQL查询中,WHERE
子句是用来过滤记录的条件,它应用于整个查询的结果集。在您提供的查询中,WHERE e1.name = '三国演义'
这部分的意思是,我们需要从内连接的结果集中筛选出那些在 e1
表中 name
字段值为“三国演义”的记录。
让我们再次分析整个查询:
SELECT e.name, e.price, e.state
FROM book e
INNER JOIN book e1 ON e1.state = e.state
WHERE e1.name = '三国演义';
SELECT e.name, e.price, e.state
:这里指定了我们要从结果集中选择的列,即e
表的name
、price
和state
列。FROM book e
:这里指定了主表book
并给它起了别名e
。INNER JOIN book e1 ON e1.state = e.state
:这里通过内连接将book
表与自身连接起来,别名为e1
。连接条件是e1
表的state
列与e
表的state
列相等。WHERE e1.name = '三国演义'
:这里是过滤条件,它作用于内连接后的结果集,只保留那些在e1
表中name
字段值为“三国演义”的记录。
综上所述,这个查询的目的是选出所有与“三国演义”这本书状态相同的其他书籍的信息。只有当 e1
表中的书籍名称为“三国演义”时,e
表中的书籍信息才会被包含在结果集中。
第5章 多表操作.pptx
https://www.alipan.com/s/ncMMHnK36jr
点击链接保存,或者复制本段内容,打开「阿里云盘」APP ,无需下载极速在线查看,视频原画倍速播放。