在SQL中,子查询可以简单地定义为另一个查询中的查询。换句话说,我们可以说子查询是嵌入到另一个SQL查询的WHERE子句中的查询。
null
子查询的重要规则:
- 可以将子查询放在多个SQL子句中: 哪里 条款 有 从句,从句。 子查询可以与SELECT、UPDATE、INSERT、DELETE语句以及表达式运算符一起使用。它可以是相等运算符或比较运算符,例如=、>、=、<=和Like运算符。
- 子查询是另一个查询中的查询。外部查询称为 主查询 内部查询称为 子查询 .
- 子查询通常首先执行,其输出用于完成主查询或外部查询的查询条件。
- 子查询必须用括号括起来。
- 子查询位于比较运算符的右侧。
- 订购人 命令 不能 可以在子查询中使用。 群比 命令可用于执行与按命令排序相同的功能。
- 对单行子查询使用单行运算符。对多行子查询使用多行运算符。
语法: 子查询没有任何通用语法。但是,子查询在SELECT语句中使用最频繁,如下所示:
SELECT column_name FROM table_name WHERE column_name expression operator ( SELECT COLUMN_NAME from TABLE_NAME WHERE ... );
样本表 :
数据库
名字 | 滚不 | 地方 | 电话号码 |
---|---|---|---|
内存 | 101 | 钦奈 | 9988775566 |
拉杰 | 102 | 哥印拜陀 | 8877665544 |
萨西 | 103 | 马杜赖 | 7766553344 |
拉维 | 104 | 塞勒姆 | 8989898989 |
苏马提 | 105 | 坎奇普兰 | 8989856868 |
大学生
名称 | 滚不 | 部分 |
---|---|---|
拉维 | 104 | A. |
苏马提 | 105 | B |
拉杰 | 102 | A. |
示例查询
:
- 从数据库表中显示学生的姓名、位置、电话号码,该表的分区为A
Select NAME, LOCATION, PHONE_NUMBER from DATABASE WHERE ROLL_NO IN (SELECT ROLL_NO from STUDENT where SECTION=’A’);
说明: 第一个子查询执行“SELECT ROLL_NO from STUDENT where SECTION=’A’”从节为’A’的STUDENT表返回ROLL_NO。然后外部查询执行它,并从数据库表中返回从内部子查询返回卷号的学生的姓名、位置、电话号码。 输出:
名称 滚不 地方 电话号码 拉维 104 塞勒姆 8989898989 拉杰 102 哥印拜陀 8877665544 - 插入查询示例:
表1:学生1
名称 滚不 地方 电话号码 内存 101 钦奈 9988773344 拉朱 102 哥印拜陀 9090909090 拉维 103 塞勒姆 8989898989 表2:学生2
名称 滚不 地点 电话号码 拉杰 111 钦奈 8787878787 赛 112 孟买 6565656565 斯里兰卡 113 哥印拜陀 7878787878 要将Student2插入Student1表,请执行以下操作:
INSERT INTO Student1 SELECT * FROM Student2;
输出:
名称 滚不 地方 电话号码 内存 101 钦奈 9988773344 拉朱 102 哥印拜陀 9090909090 拉维 103 塞勒姆 8989898989 拉杰 111 钦奈 8787878787 赛 112 孟买 6565656565 斯里兰卡 113 哥印拜陀 7878787878 - 从Student2表中删除rollno与Student1表中相同且位置为chennai的学生
DELETE FROM Student2 WHERE ROLL_NO IN ( SELECT ROLL_NO FROM Student1 WHERE LOCATION = ’chennai’);
输出:
1 row delete successfully.
显示学生2表格:
名称 滚不 地方 电话号码 赛 112 孟买 6565656565 斯里兰卡 113 哥印拜陀 7878787878 - 将学生姓名更新为Student2表中的极客,其位置和Student1表中的Raju、Ravi相同
UPDATE Student2 SET NAME=’geeks’ WHERE LOCATION IN ( SELECT LOCATION FROM Student1 WHERE NAME IN (‘Raju’,’Ravi’));
输出:
1 row updated successfully.
显示学生2表格:
名称 滚不 地方 电话号码 赛 112 孟买 6565656565 极客 113 哥印拜陀 7878787878
本文由 兰贾尼拉维 .如果你喜欢GeekSforgek,并想贡献自己的力量,你也可以使用 贡献极客。组织 或者把你的文章寄到contribute@geeksforgeeks.org.看到你的文章出现在Geeksforgeks主页上,并帮助其他极客。
如果您发现任何不正确的地方,或者您想分享有关上述主题的更多信息,请写下评论。
© 版权声明
文章版权归作者所有,未经允许请勿转载。
THE END