有2张表,结构如下:
家长表 genearch:
gid varchar2(4) primary key,
gname varchar2(10)
学生表 student:
stuid varchar2(4) primary key,
sname varchar2(10) not null,
gid varchar2(4)
其中,student表中的字段gid是表genearch的外键.
现在有个小需求,student表中有些学生是没有家长的,要求查出student表中没有家长的学生信息.
以下是2个sql:
1. 使用IN查询
SELECT S.STUID, S.SNAME
FROM STUDENT S
WHERE S.GID IN (SELECT gid FROM GENEARCH);
2. 使用exists查询
SELECT S.STUID, S.SNAME
FROM STUDENT S
WHERE EXISTS (SELECT gid FROM GENEARCH WHERE s.gid=gid);
建议使用exists查询,因为exists查询效率比IN查询要高,原因请参阅:
http://blog.csdn.net/lick4050312/article/details/4476333
分享到:
相关推荐
oracle数据库关于exists使用方法与in的比较
“exists”和“in”是Oracle中,都是查询某集合的值是否存在在另一个集合,但对不同的数据有不同的用法,主要是在效率问题上存在很大的差别,以下有两个简单例子,以说明 “exists”和“in”的效率问题。
里面自己根据网上的资源整理出来的一份sql中in,exists,not in,not exists的使用方法以及注意事项等,有助于初学的朋友们借鉴。
对于使用DBLINK远程访问数据库的SQL,ORACLE可以有两种选择: 第一:在Remote数据库执行该段SQL; 第二:在Local数据库执行该段SQL; 所以优化策略和思路: 策略:远程访问,网络传输占很大部分,优化原则,减少网络...
oracle的sql优化方法 1.全表扫描和索引扫描 大数据量表尽量要避免全表扫描,全部扫描会按顺序每条记录扫描,对于>100万数据表影响很大。 Oracle中通过RowID访问数据是最快的方式 对字段进行函数转换,或者前...
《Oracle Database 11g完全参考手册》全面详细地介绍了Oracle Database 11g的强大功能,阐述了如何使用所有的新增功能和工具,如何执行功能强大的SOL查询,如何编写PL/SQL和SQL*Plus语句,如何使用大对象和对象,...
《Oracle Database 11g完全参考手册》全面详细地介绍了Oracle Database 11g的强大功能,阐述了如何使用所有的新增功能和工具,如何执行功能强大的SOL查询,如何编写PL/SQL和SQL*Plus语句,如何使用大对象和对象,...
最后,启动 Oracle 实例(和相关服务)以及企业管理器数据库控制台。 $ export ORACLE_SID=orcl1 $ srvctl start nodeapps -n rac1 $ srvctl start asm -n rac1 $ srvctl start instance -d orcl -i orcl1 $ emctl...
§12.5 使用EXISTS和IN 148 §12.6 分离事务(Discrete Transactions ) 149 §12.7 测试SQL语句性能 151 §12.7.1 SQL_Trace实用工具 151 §12.7.2 TKPROF实用程序 151 §12.8 使用SQL_Trace和TKPROF 151 §12.8.1 ...
其一、就业面广:全球前100强企业99家都在使用ORACLE相关技术,中国政府机构,大中型企事业单位都能有ORACLE技术的工程师岗位。 其二、技术层次深:如果期望进入IT服务或者产品公司(类似毕博、DELL、IBM等),...
包含:in、not in exists、not exists 范围:between…and、not between….and 匹配测试:like、not like Null测试:is null、is not null 布尔链接:and、or、not 通配符: 在where子句中,...
§10.1.8 Not in和Not Exists 218 §10.1.9 关于 COPY命令 218 §10.1.10 列值为NULL情形的处理 219 §10.1.11 使用 product_user_file来限制用户使用产品 220 §10.2 常用技巧 221 §10.2.1 long 类型的查询 222 §...
SQL Select语句完整的执行顺序:1、from子句组装来自不同数据源的数据;2、where子句基于指定的条件对记录行进行筛选;3、group by子句将数据划分为多个分组;...在Oracle中可以几乎将所有的IN操作
导入/导出是ORACLE幸存的最古老的两个命令行工具,其实我从来不认为Exp/Imp是一种好的备份方式,正确的说法是Exp/Imp只能是一个好的转储工具,特别是在小型数据库的转储,表空间的迁移,表的抽取,检测逻辑和物理...
014.sql高级查询_去重distinct.mp4 015.sql高级查询_null操作.mp4 016.sql高级查询_in操作.mp4 017.sql高级查询_between-and操作.mp4 018.sql高级查询_like模糊...034.sql函数_exists的用法.mp4 035.sql函数_decode与
2.5.5 避免在索引列上使用IS NULL和IS NOT NULL 18 2.5.6 带通配符(%)的like语句 18 2.5.7 总是使用索引的第一个列 19 2.5.8 多个平等的索引 19 2.5.9 不明确的索引等级 19 2.5.10 自动选择索引 19 2.5.11 使用...
20.oracle8中扩充了group by rollup和cube的操作。有时候省了你好多功夫的。 下面的语句可以进行总计 select region_code,count(*) from aicbs.acc_woff_notify group by rollup(region_code); <2> 对第1个字段...
Oracle9i 简要SQL语句调整 SQL语句优化方法 优化目标 最佳实例 SQL语句优化技巧 使用EXISTS和IN
在选择语句中使用更新和删除275 在执行前测试选择语句276 嵌入型SQL277 静态SQL 与动态SQL277 使用SQL 来编程279 总结280 问与答280 校练场280 练习281 第14 天动态使用SQL 282 目标282 快速入门282 ODBC 282 ...
9.3.4 CowNewSQL的使用方法 第10章 高级话题 10.1 SQL注入漏洞攻防 10.1.1 SQL注入漏洞原理 10.1.2 过滤敏感字符 10.1.3 使用参数化SQL 10.2 SQL调优 10.2.1 SQL调优的基本原则 10.2.2 索引 ...