珠海网站建设网,wordpress 高级自定义,企业网站建设的案例,凡总创业网站目录 子查询标量子查询数据准备 子查询
SQL语句中嵌套select语句#xff0c;称为嵌套查询#xff0c;又称子查询。
SELECT * FROM t1 WHERE column1 ( SELECT column1 FROM t2 ... );子查询外部的语句可以是insert / update / delete / select 的任何一个… 目录 子查询标量子查询数据准备 子查询
SQL语句中嵌套select语句称为嵌套查询又称子查询。
SELECT * FROM t1 WHERE column1 ( SELECT column1 FROM t2 ... );子查询外部的语句可以是insert / update / delete / select 的任何一个最常见的是 select。 根据子查询结果的不同分为 标量子查询子查询结果为单个值[一行一列] 列子查询子查询结果为一列但可以是多行 行子查询子查询结果为一行但可以是多列 表子查询子查询结果为多行多列[相当于子查询结果是一张表]
子查询可以书写的位置
where之后from之后select之后
标量子查询
子查询返回的结果是单个值(数字、字符串、日期等)最简单的形式这种子查询称为标量子查询。
常用的操作符
案例1查询教研部的所有员工信息 可以将需求分解为两步 查询 “教研部” 部门ID根据 “教研部” 部门ID查询员工信息 -- 1.查询教研部部门ID
select id from tb_dept where name 教研部; #查询结果2
-- 2.根据教研部部门ID, 查询员工信息
select * from tb_emp where dept_id 2;-- 合并出上两条SQL语句
select * from tb_emp where dept_id (select id from tb_dept where name 教研部);案例2查询在 “方东白” 入职之后的员工信息 可以将需求分解为两步 查询 方东白 的入职日期查询 指定入职日期之后入职的员工信息 -- 1.查询方东白的入职日期
select entrydate from tb_emp where name 方东白; #查询结果2012-11-01
-- 2.查询指定入职日期之后入职的员工信息
select * from tb_emp where entrydate 2012-11-01;-- 合并以上两条SQL语句
select * from tb_emp where entrydate (select entrydate from tb_emp where name 方东白);数据准备
-- 部门表
create table tb_dept
(id int unsigned primary key auto_increment comment 主键ID,name varchar(10) not null unique comment 部门名称,create_time datetime not null comment 创建时间,update_time datetime not null comment 修改时间
) comment 部门表;
-- 部门表测试
insert into tb_dept (id, name, create_time, update_time)
values (1, 学工部, now(), now()),(2, 教研部, now(), now()),(3, 咨询部, now(), now()),(4, 就业部, now(), now()),(5, 人事部, now(), now());-- 员工表
create table tb_emp
(id int unsigned primary key auto_increment comment ID,username varchar(20) not null unique comment 用户名,password varchar(32) default 123456 comment 密码,name varchar(10) not null comment 姓名,gender tinyint unsigned not null comment 性别, 说明: 1 男, 2 女,image varchar(300) comment 图像,job tinyint unsigned comment 职位, 说明: 1 班主任,2 讲师, 3 学工主管, 4 教研主管, 5 咨询师,entrydate date comment 入职时间,dept_id int unsigned comment 部门ID,create_time datetime not null comment 创建时间,update_time datetime not null comment 修改时间
) comment 员工表;
-- 员工表测试数据
INSERT INTO tb_emp(id, username, password, name, gender, image, job, entrydate,dept_id, create_time, update_time)
VALUES(1,jinyong,123456,金庸,1,1.jpg,4,2000-01-01,2,now(),now()),(2,zhangwuji,123456,张无忌,1,2.jpg,2,2015-01-01,2,now(),now()),(3,yangxiao,123456,杨逍,1,3.jpg,2,2008-05-01,2,now(),now()),(4,weiyixiao,123456,韦一笑,1,4.jpg,2,2007-01-01,2,now(),now()),(5,changyuchun,123456,常遇春,1,5.jpg,2,2012-12-05,2,now(),now()),(6,xiaozhao,123456,小昭,2,6.jpg,3,2013-09-05,1,now(),now()),(7,jixiaofu,123456,纪晓芙,2,7.jpg,1,2005-08-01,1,now(),now()),(8,zhouzhiruo,123456,周芷若,2,8.jpg,1,2014-11-09,1,now(),now()),(9,dingminjun,123456,丁敏君,2,9.jpg,1,2011-03-11,1,now(),now()),(10,zhaomin,123456,赵敏,2,10.jpg,1,2013-09-05,1,now(),now()),(11,luzhangke,123456,鹿杖客,1,11.jpg,5,2007-02-01,3,now(),now()),(12,hebiweng,123456,鹤笔翁,1,12.jpg,5,2008-08-18,3,now(),now()),(13,fangdongbai,123456,方东白,1,13.jpg,5,2012-11-01,3,now(),now()),(14,zhangsanfeng,123456,张三丰,1,14.jpg,2,2002-08-01,2,now(),now()),(15,yulianzhou,123456,俞莲舟,1,15.jpg,2,2011-05-01,2,now(),now()),(16,songyuanqiao,123456,宋远桥,1,16.jpg,2,2007-01-01,2,now(),now()),(17,chenyouliang,123456,陈友谅,1,17.jpg,NULL,2015-03-21,NULL,now(),now());