MySQL SQL: 3张表(书籍、作者、书籍作者)

MySQL SQL: 3张表(书籍、作者、书籍作者)

在本文中,我们将介绍MySQL中使用SQL语言操作三个表的示例。这三个表分别是“书籍”、”作者”以及”书籍作者”。

阅读更多:MySQL 教程

1. 书籍表

书籍表包含了图书的相关信息,例如书籍ID、书名、出版社、出版日期等等。下面是一个书籍表的示例:

书籍ID 书名 出版社 出版日期
1 MySQL进阶指南 A出版社 2020-01-01
2 Python编程入门 B出版社 2019-05-10
3 Java编程基础 C出版社 2018-12-15

2. 作者表

作者表用于存储作者的基本信息,例如作者ID、姓名、国籍等等。下面是一个作者表的示例:

作者ID 姓名 国籍
1 张三 中国
2 John 美国
3 王五 中国

3. 书籍作者表

书籍作者表是一个连接表,用于记录每本书籍和其对应的作者。这个表通过书籍ID和作者ID来建立关联。下面是一个书籍作者表的示例:

书籍ID 作者ID
1 1
1 2
2 3

SQL操作示例

1. 查询特定书籍的作者

我们可以使用SQL语句通过连接这三个表来查询特定书籍的作者。例如,我们要查询书名为“MySQL进阶指南”的书籍的作者:

SELECT author.姓名
FROM 书籍
JOIN 书籍作者 ON 书籍.书籍ID = 书籍作者.书籍ID
JOIN 作者 ON 书籍作者.作者ID = 作者.作者ID
WHERE 书籍.书名 = 'MySQL进阶指南';
SQL

这个查询语句将返回该书籍的所有作者姓名,例如在上面的示例中,返回结果将是”张三”和”John”。

2. 查询某个作者的所有书籍

类似地,我们也可以通过连接这三个表来查询某个作者的所有书籍。例如,我们要查询作者姓名为”张三”的所有书籍:

SELECT 书籍.书名
FROM 作者
JOIN 书籍作者 ON 作者.作者ID = 书籍作者.作者ID
JOIN 书籍 ON 书籍作者.书籍ID = 书籍.书籍ID
WHERE 作者.姓名 = '张三';
SQL

这个查询语句将返回该作者的所有书籍的书名,例如在上面的示例中,返回结果将是”MySQL进阶指南”。

3. 插入新的书籍和作者

我们可以使用INSERT语句向这三个表中插入新的书籍和作者的信息。例如,我们要插入一本新的书籍“Python数据分析”和对应的作者”李四”:

首先,向作者表插入新的作者信息:

INSERT INTO 作者 (姓名, 国籍)
VALUES ('李四', '中国');
SQL

然后,向书籍表插入新的书籍信息:

INSERT INTO 书籍 (书名, 出版社, 出版日期)
VALUES ('Python数据分析', 'D出版社', '2022-03-01');
SQL

最后,向书籍作者表插入新的书籍和作者的关联信息:

INSERT INTO 书籍作者 (书籍ID, 作者ID)
VALUES (4, 4);
SQL

这样就成功插入了一本新书和对应的作者。

4. 更新书籍信息

我们可以使用UPDATE语句来更新书籍表中的某本书的信息。例如,我们要更新书名为”Python编程入门”的书籍的出版社为”E出版社”:

UPDATE 书籍
SET 出版社 = 'E出版社'
WHERE 书名 = 'Python编程入门';
SQL

这个UPDATE语句将把出版社从原来的”B出版社”更新为”E出版社”。

5. 删除作者信息

如果某个作者不再需要,我们可以使用DELETE语句从作者表中删除对应的作者信息。例如,我们要删除作者姓名为”John”的作者信息:

DELETE FROM 作者
WHERE 姓名 = 'John';
SQL

这个DELETE语句将把姓名为”John”的作者信息从作者表中删除。

总结

本文介绍了在MySQL中操作三个表(书籍、作者、书籍作者)的示例。我们学习了如何通过连接表来查询特定书籍的作者,查询某个作者的所有书籍,插入新的书籍和作者信息,更新书籍信息以及删除作者信息。熟练掌握这些操作将有助于我们在实际开发中更好地使用MySQL和SQL语言。

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程