ITPub博客

首页 > 数据库 > > SQL子查询

SQL子查询

作者:浪花小雨滴 时间:2020-05-14 15:46:43 0 删除 编辑

子查询也可以叫嵌套查询
子查询用于为主查询返回其所需数据,或者对检索数据进行进一步的限制。
子查询可以在 SELECT、INSERT、UPDATE 和DELETE 语句中,或嵌套在where子句、from 子句和select 子句中。与=、<、>、>=、<=、IN、BETWEEN 等运算符一起使用。
创建测试数据


CREATE TABLE student (  sno varchar(255) NOT NULL,  sname varchar(255) NULL,  ssex varchar(255) NULL,  sage int  NULL,  sdept varchar(255) NULL)



INSERT INTO student VALUES ('s001', '张三', '男', '20', '会计')INSERT INTO student VALUES ('s002', '张四', '女', '18', '保险')INSERT INTO student VALUES ('s003', '王五', '男', '20', '金融')INSERT INTO student VALUES ('s004', '赵六', '女', '20', '会计')INSERT INTO student VALUES ('s005', '孙七', '女', '18', '会计')INSERT INTO student VALUES ('s006', '钱八', '男', '19', '保险')INSERT INTO student VALUES ('s007', '黄九', '男', '20', '金融')INSERT INTO student VALUES ('s008', '方十', '女', '21', '会计')


(一)SELECT语句中的子查询
语法:
SELECT column_name [,column_name] FROM table1 [,table2] WHERE column_name OPERATOR (SELECT column_name [,column_name] FROM table1 [, table2 ] [WHERE])
示例:
student表

语句:
select * from student where sage in (select sage from student where sage<19)
输出结果集:


(二)INSERT语句中的子查询
语法:
INSERT INTO table_name [ (column1 [, column2 ]) ] SELECT [ *|column1 [, column2] FROM table1 [, table2 ] [ WHERE VALUE OPERATOR ]
示例:
先创建与student表相似结构的表student_bak,然后将student表中所有数据复制到student_bak表中,语句如下
insert into student_bak select sno,sname,ssex,sage,sdept from student where ssex='男'

输出结果集:


(三)UPDATE语句中的子查询
语法:
UPDATE table SET column_name = new_value [ WHERE OPERATOR [ VALUE ] (SELECT COLUMN_NAME FROM TABLE_NAME) [ WHERE) ]
示例:

假设我们有一份 student_bak 表作为 student表的备份。

 下面的示例将  student_bak 表中性别为‘男’且在金融部门的员工年龄增加1岁

语句:

update student_bak set sage=sage+1 where sno in(select sno from student where ssex='男'and sdept='金融')


查询执行结果如下



(四)DELETE语句中的子查询
语法:
DELETE FROM TABLE_NAME [ WHERE OPERATOR [ VALUE ] (SELECT COLUMN_NAME FROM TABLE_NAME) [ WHERE) ]
示例:

假设我们有一份 student_bak 表作为 student表的备份。

 下面的示例将  student_bak 表删除性别为‘男’且在金融部门的员工

语句:

delete from student_bak where sno in (select sno from student where ssex='男'and sdept='金融')


查询执行结果如下:




来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/31537575/viewspace-3145035/ ,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论

注册时间:2018-05-16

  • 博文量
    4259
  • 访问量
    40655