几种常见的嵌套查询——以学员成绩为例
嵌套查询,也称为子查询,是实际工作中经常用到的一种查询方式。子查询其实就是在已有的查询语句中的where后面再嵌套一层查询语句,也就是把内层查询结果当做外层查询参照的数据表来使用。
在工作中,经常会遇见4种子查询,即含有比较运算符(>、>=、<、<=、=、!=)、IN关键词、ANY/ALL关键词以及EXISTS关键词的嵌套查询。下面我们以学员考试成绩为例,来学习一下这四种子查询的应用。
# 创建学员信息表
CREATE TABLE stu_info
(
id INT AUTO_INCREMENT PRIMARY KEY,
iname VARCHAR(20),
gender CHAR(1),
department VARCHAR(10),
age TINYINT,
province VARCHAR(10),
email VARCHAR(50),
mobilephone CHAR(11)
);
# 向学员表中插入数据
INSERT INTO stu_info(iname,gender,department,age,province,email,mobilephone) VALUES
('张勇','男','数学系',23,'河南','[email protected]','13323564321'),
('王兵','男','数学系',25,'江苏','[email protected]','17823774329'),
('刘伟','男','计算机系',21,'江苏','[email protected]','13834892240'),
('张峰','男','管理系',22,'上海','[email protected]','13923654481'),
('董敏','女','生物系',22,'浙江','[email protected]','13428439022'),
('徐晓红','女','计算机系',24,'浙江','[email protected]',