MySQL5.7数据库介绍表连接、子查询、外键
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数据库有所帮助。

-
mysql修改表结构的语句是什么 2023-05-14 07:00:03
-
mysql驱动是什么 2023-05-14 07:00:03
-
MySQL 语法整理介绍 2023-05-14 07:00:03
-
qt5.8如何连接mysql 2023-05-14 07:00:03
-
mysql怎么将查询结果赋给变量 2023-05-14 07:00:03
-
mysql乐观锁和悲观锁的区别是什么 2023-05-14 07:00:03
-
一起聊聊MySQL主从延时的处理方案 2023-05-14 07:00:03
-
mysql怎么查询临时表 2023-05-14 07:00:02
-
mysql中between and怎么用 2023-05-14 07:00:02
-
mysql怎么查询所有数据库 2023-05-14 07:00:02