exists在sql中用法(详解sql中exists和in的语法与区别)
类别:数据库 浏览量:1792
时间:2021-10-15 00:18:32 exists在sql中用法
详解sql中exists和in的语法与区别exists和in的区别很小,几乎可以等价,但是sql优化中往往会注重效率问题,今天咱们就来说说exists和in的区别。
exists语法:
select … from table where exists (子查询)
将主查询的结果,放到子查询结果中进行校验,如子查询有数据,则校验成功,那么符合校验,保留数据。
create table teacher ( tid int(3), tname varchar(20), tcid int(3) ); insert into teacher values(1,'tz',1); insert into teacher values(2,'tw',2); insert into teacher values(3,'tl',3);
例如:
select tname from teacher exists(select * from teacher);
此sql语句等价于select tname from teacher
(主查询数据存在于子查询,则查询成功(校验成功))
此sql返回为空,因为子查询并不存在这样的数据。
in语法:
select … from table where 字段 in (子查询)
select ..from table where tid in (1,3,5) ;
select * from A where id in (select id from B);
区别:
如果主查询的数据集大,则使用in;
如果子查询的数据集大,则使用exists;
例如:
select tname from teacher where exists (select * from teacher);
这里很明显,子查询查询所有,数据集大,使用exists,效率高。
select * from teacher where tname in (select tname from teacher where tid = 3);
这里很明显,主查询数据集大,使用in,效率高。
到此这篇关于sql中exists和in的语法与区别的文章就介绍到这了,更多相关sql中exists和in语法区别内容请搜索开心学习网以前的文章或继续浏览下面的相关文章希望大家以后多多支持开心学习网!
您可能感兴趣
- mysql怎么设置存储记录(MySQL 的一行记录是怎么存储的?)
- SQL Server中GROUPING SETS
- mysql数据库丢失怎么办(MySQL 数据丢失排查案例)
- mysql存储过程声明(MySQL存储过程的深入讲解in、out、inout)
- mysql中的null是什么(浅谈为什么Mysql数据库尽量避免NULL)
- mysql新增字段并添加备注(mysql添加备注信息的实现)
- 数据库mysql基本知识(深入理解r2dbc在mysql中的使用)
- linuxmysql客户端搭建(一台linux主机启动多个MySQL数据库的方法)
- ubuntu下mysql安装教程(Ubuntu 20.04 安装和配置MySql5.7的详细教程)
- mysql 内置函数
- mysql底层原理是什么(MySQL 页完全指南—浅入深出页的原理)
- 如何找到mysqlroot密码(WDCP管理面板忘记MYSQL ROOT密码及重置后台登录密码的方法汇总)
- sql server修改sa密码(sqlserver添加sa用户和密码的实现)
- docker部署tomcat(Docker安装Tomcat、MySQL和Redis的步骤详解)
- python连接到本地的mysql数据库(Python实现连接MySql数据库及增删改查操作详解)
- mysql binlog模式实际使用(实例验证MySQL|update字段为相同的值是否会记录binlog)
- 乔欣首演古装大女主,颜值演技双在线(乔欣首演古装大女主)
- 于正又推女性古装大剧 杨蓉乔欣演女配,两位女主成 重头戏(于正又推女性古装大剧)
- 乔欣古装女主戏获热度 作为女主,却没吃到红利(乔欣古装女主戏获热度)
- 爱情是什么(爱情是什么最经典的话)
- 乔欣 古装剧中的高颜值(古装剧中的高颜值)
- 怎么才可以财富自由(如何让自己实现财富自由)
热门推荐
- sql数值函数大全(sql中mod函数取余数的用法)
- mysql 8.0.22 winx64安装配置方法图文教程(mysql 8.0.22 winx64安装配置方法图文教程)
- mysql中的null和空值的区别(解决mysql使用not in 包含null值的问题)
- css下填充代码(CSS学习笔记之常用Mixin封装实例代码)
- 织梦dedecms优化安全设置指南(DeDecms SEO优化经验谈适用于任何网站)
- mysqlbinlog优缺点(MySQL Binlog 日志处理工具对比分析)
- laravel的验证规则(解决在Laravel 中处理OPTIONS请求的问题)
- angular快速创建模块指令(详解Angular项目中共享模块的实现)
- mysql8.0.18.0安装详细教程(mysql 8.0.22 下载安装配置方法图文教程)
- vue 计算一段时间的月份和天数(vue实现指定日期之间的倒计时)
排行榜
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9