一、SQL语句优化:
1: exists 快于in
2: 数据量小时连接查询快于子查询,数据量大时子查询快于连接查询
3: select (*) 快于 select count(col)
4: 连接查询快于from多个表查询
如果查询结果来源于多个表中则用连接查询,如果最后结果来源于一个中则推荐用子查询
二、in可以分为三类:
1、形如select * from t1 where f1 in ('a','b'),应该和select * from t1 where f1 ='a' or f1='b' 或者 select * from t1 where f1 ='a' union all select * from t1 f1='b'比较效率,搂主可能指的不是这一类,这里不做讨论。
2、形如select * from t1 where f1 in (select f1 from t2 where t2.fx='x'),其中子查询的where 里的条件不受外层查询的影响,这类查询一般情况下,自动优化会转成exist语句,也就是效率和exist一样。
3、形如select * from t1 where f1 in (select f1 from t2 where t2.fx=t1.fx),其中子查询的where 里的条件受外层查询的影响,这类查询的效率要看相关条件涉及的字段的索引情况和数据量多少,一般认为效率不如exists。
除了第一类in语句都是可以转化成exists 语句的,一般编程习惯应该是用exists而不用in.
三、如A,B两个表,
当只显示一个表的数据如A,关系条件只一个如ID时,使用IN更快:
select * from A where id in (select id from B)
当只显示一个表的数据如A,关系条件不只一个如ID,col1时,使用IN就不方便了,可以使用EXISTS:
select * from A where exists (select 1 from B where id = A.id and col1 = A.col1)
当只显示两个表的数据时,使用IN,EXISTS都不合适,要使用连接:
select * from A left join B on id = A.id
所以使用何种方式,要根据要求来定。
分享到:
相关推荐
最全sql查询语句练习题汇总(面试必备) 最全sql查询语句练习题汇总(面试必备) 最全sql查询语句练习题汇总(面试必备) 最全sql查询语句练习题汇总(面试必备) 最全sql查询语句练习题汇总(面试必备) 最全sql查询语句练习...
对于开发人员来说,尤其是需要频繁进行数据查询时,可以快速构建和测试SQL语句,节省了大量的时间。同时,它降低了错误率,因为大多数工具会自动检查语法和逻辑错误,确保生成的SQL语句是有效的。 另外,可视化界面...
* FROM 子句:FROM 子句指定 SELECT 语句查询及与查询相关的表或视图,在 FROM 子句中最多可指定 256 个表或视图。 * WHERE 子句:WHERE 子句设置查询条件,过滤掉不需要的数据行,可以包括各种条件运算符。 * 联合...
SQL语句通常分为SELECT(查询)、INSERT(插入)、UPDATE(更新)和DELETE(删除)四大类。 2. SQL查询语句生成器原理: 生成器通过用户友好的界面,让用户选择所需的操作(如查询、更新等),然后根据用户的输入...
4. 图片和SQL语句:虽然SQL主要用于处理文本数据,但在实际应用中,我们可能需要与图像数据交互。这通常涉及到BLOB(Binary Large Object)类型的字段,用于存储非文本数据。查询这类数据时,可能需要用到`SELECT ...
FROM 子句指定 SELECT 语句查询及与查询相关的表或视图。在 FROM 子句中最多可指定 256 个表或视图,它们之间用逗号分隔。 * 指定多个表或视图:在 FROM 子句同时指定多个表或视图时,如果选择列表中存在同名列,...
为了使SQL语句更加清晰,通常会给表起别名。例如: ```sql SELECT username, b.cityid FROM usertable a, citytable b WHERE a.cityid = b.cityid; ``` 此外,`SELECT`语句不仅可以从表或视图中检索数据,还可以从...
14. **存储过程和函数**:预编译的SQL语句集合,可以接受参数,执行一系列操作并返回结果。 在"查询2.sql"中,你可能会找到这些概念的实际应用示例,每个示例都是一个学习和理解SQL的好机会。通过实践和研究这些...
SQL查询语句的性能优化与索引,写得还不错,可以看看了
SQL查询语句转换成图结构的算法设计与实现 本文旨在设计并实现将SQL查询语句转换成图结构的算法,利用图神经网络对SQL查询语句进行分析和处理。该算法可以将SQL查询语句中的字段、表名、函数、操作符、值和关键字...
- 一组SQL语句的集合,要么全部执行成功,要么全部回滚。常用命令:`BEGIN TRANSACTION`, `COMMIT`, `ROLLBACK`. 9. **存储过程(Stored Procedure)** - 包含一组预编译的SQL语句,可多次调用。创建存储过程:`...
sql查询语句集合sql查询语句集合sql查询语句集合sql查询语句集合sql查询语句集合sql查询语句集合sql查询语句集合sql查询语句集合
"数据库系统原理实验报告-SQL查询语句" 数据库系统原理实验报告-SQL查询语句是关系数据库管理系统的核心组件之一。实验报告的主要目的是让学生熟悉关系数据库标准语言 SQL,並且掌握基本的 SQL 查询语句。 一、...
在ACCESS中,通过“模块”可以输入和执行SQL语句,实现更复杂的数据处理。这对于需要自动化或批量处理数据的场景尤其有用。 5. **示例应用**:例如,假设我们有一个名为"Employees"的表,包含"ID"、"Name"和"Salary...
7. **存储过程**:预编译的SQL语句集合,可以接受参数,执行多次,提高性能,并提供封装和安全性的优点。 8. **触发器**:当满足特定条件时自动执行的SQL代码,常用于实现复杂的业务规则或审计功能。 9. **视图**...
存储过程是一组预编译的SQL语句,可以封装在一起并多次调用,提高代码复用性和安全性。触发器则在特定的数据库事件发生时自动执行,如INSERT、UPDATE或DELETE操作。 8. **事务管理** SQL支持事务,确保数据的一致...
对SQL查询语句语法及解题技巧的探讨.pdf
数据库中 SQL 查询语句习题含答案 本资源主要讲述了数据库中 SQL 查询语句的习题和答案,涵盖了数据库的基本概念和 SQL 查询语句的应用。通过这份资源,读者可以学习和掌握数据库中 SQL 查询语句的基础知识和高级...
经典的常用SQL查询语句,比较实用,一些常用的组合语句一一收集
SQL查询语句用法及实例资料 SQL查询语句是数据库管理系统中最基本也是最重要的一部分,掌握SQL查询语句的使用是每个IT从业者必备的技能。本文将对SQL查询语句的用法进行详细的介绍,并提供实际的实例资料,帮助读者...