MySQL5.7数据库介绍表连接、子查询、外键

文 / @WordPress主题

MySQL是一种关系型数据库管理系统,具有表连接、子查询和外键等强大功能。本文将重点介绍MySQL的表连接、子查询和外键功能,帮助读者更好地了解和掌握MySQL数据库。

一、表连接

当查询结果的列来源于多张表时,需要将多张表连接成一个大的数据集,再选择合适的列返回MySQL,这时需要表进行连接。

1. 内连接(INNER JOIN)

内连接仅选出两张表中互相匹配的记录。

例如,以下语句可以显示学生的所有信息,但只显示班级名称:

SELECT s.*, c.name
FROM students s
INNER JOIN classes c
ON s.cls_id = c.id;

2. 左连接(LEFT JOIN)

左连接查询的结果为两个表匹配到的数据,左表持有的数据,对于右表中不存在的数据使用NULL填充。

例如,以下语句可以对students表左连接classes表并查看班级为NULL的数据:

SELECT *
FROM students s
LEFT JOIN classes c
ON s.cls_id = c.id
HAVING c.cls_id IS NULL;

3. 右连接(RIGHT JOIN)

右连接查询结果为两个表匹配到的数据,右表持有的数据,对于左表中不存在的数据使用NULL填充。

例如,以下语句可以对students表右连接classes表并查看班级为NULL的数据:

SELECT *
FROM students s
RIGHT JOIN classes c
ON s.cls_id = c.id;

二、子查询

在某些情况下,当进行查询的时候,需要的条件是另外一个SELECT语句的结果,这个时候,就要使用到子查询。

例如,以下语句可以查询出身高最高的男生,显示名字和身高:

SELECT s.name, s.high
FROM students s
WHERE high = (SELECT MAX(high) FROM students) AND gender = '男';

三、外键

MySQL的外键(foreign key)是表的一个特殊字段,对于两个具有关联关系的表而言,相关联字段的主键所在表就是主表(父表),外键所在的表是从表(子表)。

当创建外键的时候,必须先删除从表才能删除主表。主表需存在时创建从表。从表的外键关联必须是主表的主键,并且主键与外键的类型必须保持一致。

例如,以下语句可以创建直接含有外键关系的学生表:

CREATE TABLE student(
sid INT(4) NOT NULL PRIMARY KEY,
sname VARCHAR(30),
cid INT(4) NOT NULL,
CONSTRAINT pk_id FOREIGN KEY (cid) REFERENCES classes (id)
);

以上就是MySQL5.7数据库介绍表连接、子查询、外键的详细内容。希望本文对读者们了解和掌握MySQL数据库有所帮助。

添加UTHEME为好友
扫码添加UTHEME微信为好友
· 分享WordPress相关技术文章,主题上新与优惠动态早知道。
· 微信端最大WordPress社群,限时免费入群。