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语句进行数据库操作有所帮助!