SQL的别名和SQL的执行顺序和SQL优化
SQL的别名
1、不可以在where子句中使用列名的别名,即select name t from emp where t>2999;是不允许的
2、使用别名的好处:
提高SQL的易读性
提高SQL的解析执行效率
语法检查
语义检查
共享池检查
生成执行树
执行
3、SQL的硬解析和软解析?
SQL的执行顺序
1、from语句--where语句--group by语句--having语句--select语句--order by语句
rownum的使用
select * from emp rownum<=2 /*查找emp表的前两条记录*/
select * from (select rownum t,ename from emp) m
where m.t>=5 and m.t<=10 /*查询某个范围的记录,先查询出rownum并保存为临时表m,再进行查询*/
where和having的区别?
where对分组前的小组内的详细信息进行过滤
having对分组后的信息进行过滤
内连接,外连接,自连接?
SQL优化
1、避免使用select * ,而是具体指出选择哪些列
2、SQL大小写,数据库在解析sql时,先把SQL语句转换为大写,再进行解析操作,所以建议直接提供大写的SQL语句。
3、过滤时,>和>=,使用>=优先,如a>2000和a>=2001,这样可以避免过滤2000和2001之间的小数,可以调高效率
4、where子句中,不等于判断会使索引失效。
5、where子句中,对列做运算,例如,加减乘除,会使索隐列失效。所以尽量不要在索隐列上做操作。
6、模糊查询时,like "%abc%",前模糊会导致索引失效,后模糊不会导致索引失效。
7、in和exists的区别?
1、in适合内表小外表大的情况,select * from emp where emp.deptno in (select deptno from dept)
2、exists适合外表小内表大的情况.如此运用可提升效率
注:由于两者对表的连接方式不同,导致以上区分,in 是把外表和内表作hash 连接,而exists是对外表作loop循环,每次loop循环再对内表进行查询。
8、not in 和 not exists 用法同上
9、某些情况下可以使用exists替换distinct。
转载于:https://www.cnblogs.com/cindy-cindy/p/6798010.html
SQL的别名和SQL的执行顺序和SQL优化相关推荐
- sql(join on 和where的执行顺序)
sql(join on 和where的执行顺序) left join :左连接,返回左表中所有的记录以及右表中连接字段相等的记录. right join :右连接,返回右表中所有的记录以及左表中连接字 ...
- mysql oracle 查询语句执行顺序_MySQL sql语句执行顺序
(8) DISTINCT (1) FROM (3) JOIN (2) ON (4) WHERE (5) GROUP BY (6) HAVING ...
- 执行sql语句_SQL查询语句的执行顺序解析
SQL语句执行顺序 结合上图,整理出如下伪SQL查询语句. 从这个顺序中我们可以发现,所有的查询语句都是从 FROM 开始执行的.在实际执行过程中,每个步骤都会为下一个步骤生成一个虚拟表,这个虚拟表将 ...
- sql执行顺序及性能优化
sql语句的执行步骤: 1)语法分析,分析语句的语法是否符合规范,衡量语句中各表达式的意义. 2)语义分析,检查语句中涉及的所有数据库对象是否存 ...
- sql语句执行顺序及简单优化
SQL的执行顺序 (1)from (表关联,是从后往前.从右到左解析的 ) 所以尽量把数据量大的表放在最左边来进行关联 (2) on 需要从哪个数据表检索数据 (3) join 多表 ...
- mysql sql 子查询 执行顺序_MySQL,SQL语句执行顺序
1.SQL执行顺序: select 考生姓名, max(总成绩) asmax总成绩fromtb_Gradewhere 考生姓名 is not null group by考生姓名having max(总 ...
- SQL语句中各个部分的执行顺序(转)
原文链接:http://www.tuicool.com/articles/fERNv2 写在前面的话:有时不理解SQL语句各个部分执行顺序,导致理解上出现偏差,或者是书写SQL语句时随心所欲,所以有必 ...
- mysql 执行顺序 别名_sql语句的执行顺序和别名问题
sql语句的别名问题: where后不能用字段的别名因为 一.sql执行顺序 (1)from (3)join (2)on (4)where (5)group by(使用select中的别名) (6)a ...
- linux mysql 运行sql文件命令大全_linux下执行mysql的sql文件
linux下执行mysql的sql文件 mysql -uroot -proot 进入到mysql 然后执行source /var/ftp/pub/sogoodsoft.sql; 即可. www.2ct ...
- java批量执行查询sql语句_如何从Java执行多个SQL语句
小编典典 您可以使用以下示例实现addBatch和executeBatch命令同时执行多个 SQL 命令. 批处理允许您将相关的SQL语句分组为一个批处理,并通过一次调用将其提交给数据库.参考 当您一 ...
最新文章
- 安卓网页广告拦截_拦截烦人的网页广告,增加上网体验
- 图森无人车联合UCSD新研究:自动驾驶更省油
- 好分数a1a5_好分数怎么查看班级排名 七年级学生成绩查询
- 测试openssl_encrypt
- linux下系统安全常见问题2
- Linux:进程实例信息(/proc)
- java中for的增强用法,Java中增强for循环的用法
- 圆 最小外包矩形_【OpenCV3图像处理】提取轮廓的凸包、外包矩形、最小外包矩形、最小外包圆...
- 《推荐系统笔记(十七)》userCF和itemCF —— 基于领域的推荐
- java 封装优化工具,Java开源封装工具
- 高项_第三章项目立项管理
- word 页眉 页脚 页码 分页符 目录
- SAP库存分析(MC.9) (转)
- OC的单例模式的实现
- 名帖203 米芾 行书《行书帖选》
- NOIP 2015 简记
- 什么是迭代和增量开发
- 区块链塔防游戏NFT游戏开发
- qml的focus问题
- 抓取某一个网站整站的记录
热门文章
- “21天好习惯“第一期-1
- 软件工程大学大三课表_专业选修课 | 面向大二、大三同学的专业选修课全面介绍来啦!...
- mysql join不加关联条件的含义
- zookeeper入门及进阶
- 03JavaScript程序设计修炼之道_2019-06-18_21-41-56_事件onfocus
- Teradata中的四舍五入问题
- LeetCode Maximum Product Subarray 解题报告
- Android ListView自定义分割线 header 和footer设置没有页眉和页脚
- LINUX邮件服务器
- OpenCV Mat 类型定义和赋值