MySQL SQL语句,主要涉及3个表(book,author,book_author)

MySQL SQL语句,主要涉及3个表(book,author,book_author)

阅读更多:MySQL 教程

1. 创建数据表

首先,我们需要创建三个数据表,分别是book(存储书籍信息),author(存储作者信息)和book_author(存储书籍和作者的关联关系)。

book 表

book表存储了书籍的信息,包括书籍ID(book_id)、书名(title)、出版社(publisher)和出版年份(publish_year)等字段。创建book表的SQL语句如下:

CREATE TABLE book (
  book_id INT PRIMARY KEY,
  title VARCHAR(100) NOT NULL,
  publisher VARCHAR(100) NOT NULL,
  publish_year INT NOT NULL
);

author 表

author表存储了作者的信息,包括作者ID(author_id)和姓名(name)等字段。创建author表的SQL语句如下:

CREATE TABLE author (
  author_id INT PRIMARY KEY,
  name VARCHAR(100) NOT NULL
);

book_author 表

book_author表用于存储书籍和作者的关联关系。它包括书籍ID(book_id)和作者ID(author_id)两个字段,这两个字段分别是book表和author表的外键。创建book_author表的SQL语句如下:

CREATE TABLE book_author (
  book_id INT,
  author_id INT,
  FOREIGN KEY (book_id) REFERENCES book(book_id),
  FOREIGN KEY (author_id) REFERENCES author(author_id),
  PRIMARY KEY (book_id, author_id)
);

2. 插入数据

接下来,我们需要向这三个表中插入数据,以便后续的查询和操作。

向book表插入数据

INSERT INTO book (book_id, title, publisher, publish_year) VALUES
  (1, 'MySQL Cookbook', 'O''Reilly Media', 2014),
  (2, 'Python Crash Course', 'No Starch Press', 2015),
  (3, 'Java: A Beginner''s Guide', 'McGraw-Hill Education', 2018),
  (4, 'The C Programming Language', 'Prentice Hall', 1988);

向author表插入数据

INSERT INTO author (author_id, name) VALUES
  (1, 'Paul DuBois'),
  (2, 'Eric Matthes'),
  (3, 'Herbert Schildt'),
  (4, 'Brian W. Kernighan'),
  (5, 'Dennis M. Ritchie');

向book_author表插入数据

INSERT INTO book_author (book_id, author_id) VALUES
  (1, 1),
  (2, 2),
  (3, 3),
  (4, 4),
  (4, 5);

3. 查询数据

现在,我们可以使用SQL查询语句从这三个表中获取所需的信息。

查询所有书籍的信息

SELECT * FROM book;

查询所有作者的信息

SELECT * FROM author;

查询书籍和作者的关联关系

SELECT b.title, a.name
FROM book b
JOIN book_author ba ON b.book_id = ba.book_id
JOIN author a ON ba.author_id = a.author_id;

查询某一书籍的作者

SELECT a.name
FROM author a
JOIN book_author ba ON a.author_id = ba.author_id
JOIN book b ON ba.book_id = b.book_id
WHERE b.title = 'MySQL Cookbook';

查询某一作者的书籍数量

SELECT a.name, COUNT(b.book_id) AS book_count
FROM author a
JOIN book_author ba ON a.author_id = ba.author_id
JOIN book b ON ba.book_id = b.book_id
GROUP BY a.author_id;

4. 更新数据

如果需要修改某些数据,可以使用UPDATE语句来更新。

更新书籍信息

UPDATE book
SET publisher = 'New Publisher'
WHERE book_id = 1;

5. 删除数据

如果需要删除数据表中的某些记录,可以使用DELETE语句来删除。

删除书籍信息

DELETE FROM book
WHERE book_id = 2;

6. 总结

在本文中,我们介绍了MySQL中的SQL语句,以3个表(book,author,book_author)为例。我们学习了如何创建这些表,插入数据,查询数据,更新数据和删除数据。

通过学习这些基本的SQL操作,你可以更好地理解如何在数据库中管理和操作数据。当你处理复杂的数据时,这些基本的SQL语句将非常有用。

希望本文能够对你在MySQL中使用SQL语句进行数据库操作有所帮助!

Camera课程

Python教程

Java教程

Web教程

数据库教程

图形图像教程

办公软件教程

Linux教程

计算机教程

大数据教程

开发工具教程