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优化相关推荐

  1. sql(join on 和where的执行顺序)

    sql(join on 和where的执行顺序) left join :左连接,返回左表中所有的记录以及右表中连接字段相等的记录. right join :右连接,返回右表中所有的记录以及左表中连接字 ...

  2. mysql oracle 查询语句执行顺序_MySQL sql语句执行顺序

    (8)     DISTINCT (1)     FROM (3)      JOIN (2)     ON (4)     WHERE (5)     GROUP BY (6)     HAVING ...

  3. 执行sql语句_SQL查询语句的执行顺序解析

    SQL语句执行顺序 结合上图,整理出如下伪SQL查询语句. 从这个顺序中我们可以发现,所有的查询语句都是从 FROM 开始执行的.在实际执行过程中,每个步骤都会为下一个步骤生成一个虚拟表,这个虚拟表将 ...

  4. sql执行顺序及性能优化

    sql语句的执行步骤:               1)语法分析,分析语句的语法是否符合规范,衡量语句中各表达式的意义.               2)语义分析,检查语句中涉及的所有数据库对象是否存 ...

  5. sql语句执行顺序及简单优化

    SQL的执行顺序 (1)from    (表关联,是从后往前.从右到左解析的 ) 所以尽量把数据量大的表放在最左边来进行关联 (2) on     需要从哪个数据表检索数据 (3) join   多表 ...

  6. mysql sql 子查询 执行顺序_MySQL,SQL语句执行顺序

    1.SQL执行顺序: select 考生姓名, max(总成绩) asmax总成绩fromtb_Gradewhere 考生姓名 is not null group by考生姓名having max(总 ...

  7. SQL语句中各个部分的执行顺序(转)

    原文链接:http://www.tuicool.com/articles/fERNv2 写在前面的话:有时不理解SQL语句各个部分执行顺序,导致理解上出现偏差,或者是书写SQL语句时随心所欲,所以有必 ...

  8. mysql 执行顺序 别名_sql语句的执行顺序和别名问题

    sql语句的别名问题: where后不能用字段的别名因为 一.sql执行顺序 (1)from (3)join (2)on (4)where (5)group by(使用select中的别名) (6)a ...

  9. linux mysql 运行sql文件命令大全_linux下执行mysql的sql文件

    linux下执行mysql的sql文件 mysql -uroot -proot 进入到mysql 然后执行source /var/ftp/pub/sogoodsoft.sql; 即可. www.2ct ...

  10. java批量执行查询sql语句_如何从Java执行多个SQL语句

    小编典典 您可以使用以下示例实现addBatch和executeBatch命令同时执行多个 SQL 命令. 批处理允许您将相关的SQL语句分组为一个批处理,并通过一次调用将其提交给数据库.参考 当您一 ...

最新文章

  1. 安卓网页广告拦截_拦截烦人的网页广告,增加上网体验
  2. 图森无人车联合UCSD新研究:自动驾驶更省油
  3. 好分数a1a5_好分数怎么查看班级排名 七年级学生成绩查询
  4. 测试openssl_encrypt
  5. linux下系统安全常见问题2
  6. Linux:进程实例信息(/proc)
  7. java中for的增强用法,Java中增强for循环的用法
  8. 圆 最小外包矩形_【OpenCV3图像处理】提取轮廓的凸包、外包矩形、最小外包矩形、最小外包圆...
  9. 《推荐系统笔记(十七)》userCF和itemCF —— 基于领域的推荐
  10. java 封装优化工具,Java开源封装工具
  11. 高项_第三章项目立项管理
  12. word 页眉 页脚 页码 分页符 目录
  13. SAP库存分析(MC.9) (转)
  14. OC的单例模式的实现
  15. 名帖203 米芾 行书《行书帖选》
  16. NOIP 2015 简记
  17. 什么是迭代和增量开发
  18. 区块链塔防游戏NFT游戏开发
  19. qml的focus问题
  20. 抓取某一个网站整站的记录

热门文章

  1. “21天好习惯“第一期-1
  2. 软件工程大学大三课表_专业选修课 | 面向大二、大三同学的专业选修课全面介绍来啦!...
  3. mysql join不加关联条件的含义
  4. zookeeper入门及进阶
  5. 03JavaScript程序设计修炼之道_2019-06-18_21-41-56_事件onfocus
  6. Teradata中的四舍五入问题
  7. LeetCode Maximum Product Subarray 解题报告
  8. Android ListView自定义分割线 header 和footer设置没有页眉和页脚
  9. LINUX邮件服务器
  10. OpenCV Mat 类型定义和赋值