浙里建app官方网站,营口市住房建设保障办官方网站,安徽省住房与城乡建设部网站,网站平台建设流程今天给大家介绍以下SQLServer子查询相关知识#xff0c;希望对大家能有所帮助#xff01;1、子查询概念介绍子查询可以嵌套在SELECT、INSERT、UPDATE、DELETE语句或其他子查询语句中的查询#xff0c;子查询一般作为查询中间结果集角色#xff0c;子查询也称为内部查询或内… 今天给大家介绍以下SQLServer子查询相关知识希望对大家能有所帮助1、子查询概念介绍子查询可以嵌套在SELECT、INSERT、UPDATE、DELETE语句或其他子查询语句中的查询子查询一般作为查询中间结果集角色子查询也称为内部查询或内部选择包含子查询的语句称为外部查询或外部选择。根据可用系统内存和查询中其他表达式的复杂程度的不同嵌套限制也有所不同一般可以支持嵌套32层。个人建议尽量避免多层嵌套这样SQL语句的可读性和可维护性都会很差。使用表达式的地方一般都可以使用子查询。2、子查询分类单值子查询子查询的返回值属于单个。常见与查询列、单值的查询条件使用。多值子查询子查询的返回值多个。常见in、exists等筛选语句使用。3、子查询的使用场景3.1 选择列表中使用子查询选择列表中使用子查询作为查询结果一列值出现的。该情况下调用子查询返回的只能是单值。只能是单值子查询。-- 查询学生姓名、年龄、总成绩select a.username,a.age,(select sum(score)
from Score where userIda.userId)) totalScorefrom UserInfo a
3.2 作为查询条件-- 查询部门名称是技术部的员工信息 单值查询
select username,age,address from Emp
where deptno(select top 1 deptno
from DeptInfo where depName技术部)
-- 查询产品库存大于10吨的产品列表 多值查询
select name,code from ProductInfo
where Code in (select s.code from StockInfo s where qty20)
同样的insert、update、delete用法比较类似比如
-- 删除库存量为0的产品
delete from ProductInfo
where Code in (select s.code from StockInfo s where qty0);
-- 更新库存量为0的产品remark字段更新为标记
update ProductInfo set remark标记
where Code in (select s.code from StockInfo s where qty0)
4、子查询和连接查询的关系很多包含子查询的SQL语句都可以改成连接查询的形式表示包含子查询的语句和语义上等效的无子查询的语句性能差别不大。但针对检查存在性的情况中联接查询性能更好数据量越大联接查询会更能体现效率。比如-- 查询学生姓名、年龄、总成绩
select min(a.username),min(a.age),sum(score) totalScore
from UserInfo a
left join Score b on a.userIdb.userId
5、包含in和exists子查询区别in子查询结果是包含0个或者多个值的列表表示值的等于关系。exists子查询它只返回true或false。表示一种存在的行为。通常情况下in和exist可以互换。当子查询结果不存在NULL值时not in和not exists得到的查询结果一样所生成的查询计划也一样。当in里面的值为null的情况下查询记录为0当exists里面的值为null情况下相当于查询条件不起作用。示例select name,age UserInfo where userId in (1,2,3,4);
select name,age UserInfo where exists (1,2,3,4);
说明EXISTS与IN的使用效率的问题通常情况下采用exists要比in效率高但要看实际情况具体使用IN适合于外表大而内表小的情况EXISTS适合于外表小而内表大的情况。6、包含比较运算符的子查询子查询可以由一个比较运算符、、、、、、或引入。使用比较运算符引入的子查询必须返回单个值而不能一个值列表。否则SQL Server将显示一条错误信息。IT技术分享社区个人博客网站https://programmerblog.xyz文章推荐程序员效率画流程图常用的工具程序员效率整理常用的在线笔记软件远程办公常用的远程协助软件你都知道吗51单片机程序下载、ISP及串口基础知识硬件断路器、接触器、继电器基础知识