小熊奶糖(BearCandy)
小熊奶糖(BearCandy)
发布于 2024-05-23 / 14 阅读
0
0

MySQL实验报告9-多表查询

MySQL实验报告9

一、实验目的

1、掌握如何多表查询。

二、实验内容

图书****系统的数据库及相关数据表的创建

  1. 创建名称为bms的数据库,并且指定数据库的字符集为utf8mb4。
  2. 选择数据库bms
  3. 在数据库bms中创建图书表(book)

数据库技术及应用

实验报告九

一、实验目的

1、掌握如何多表查询。

二、实验内容

图书****系统的数据库及相关数据表的创建

  1. 创建名称为bms的数据库,并且指定数据库的字符集为utf8mb4。
  2. 选择数据库bms
  3. 在数据库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
  1. 在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 = '三国演义';

  1. SELECT e.name, e.price, e.state:这里指定了我们要从结果集中选择的列,即 e表的 namepricestate列。
  2. FROM book e:这里指定了主表 book并给它起了别名 e
  3. INNER JOIN book e1 ON e1.state = e.state:这里通过内连接将 book表与自身连接起来,别名为 e1。连接条件是 e1表的 state列与 e表的 state列相等。
  4. WHERE e1.name = '三国演义':这里是过滤条件,它作用于内连接后的结果集,只保留那些在 e1表中 name字段值为“三国演义”的记录。

综上所述,这个查询的目的是选出所有与“三国演义”这本书状态相同的其他书籍的信息。只有当 e1表中的书籍名称为“三国演义”时,e表中的书籍信息才会被包含在结果集中。

第5章 多表操作.pptx
https://www.alipan.com/s/ncMMHnK36jr
点击链接保存,或者复制本段内容,打开「阿里云盘」APP ,无需下载极速在线查看,视频原画倍速播放。


评论