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。

SQL的别名和SQL的执行顺序和SQL优化的更多相关文章

  1. {MySQL的逻辑查询语句的执行顺序}一 SELECT语句关键字的定义顺序 二 SELECT语句关键字的执行顺序 三 准备表和数据 四 准备SQL逻辑查询测试语句 五 执行顺序分析

    MySQL的逻辑查询语句的执行顺序 阅读目录 一 SELECT语句关键字的定义顺序 二 SELECT语句关键字的执行顺序 三 准备表和数据 四 准备SQL逻辑查询测试语句 五 执行顺序分析 一 SEL ...

  2. 容易被忽略的事----sql语句中select语句的执行顺序

    关于Sql中Select语句的执行顺序,一直很少注意这个问题,对于关键字的使用也很随意,至于效率问题,因为表中的数据量都不是很大,所以也不是很在意. 今天在一次面试的时候自己见到了,感觉没一点的印象, ...

  3. 【SQL】SQL 中Select语句完整的执行顺序

    SQL Select语句完整的执行顺序: 1.from子句组装来自不同数据源的数据: 2.where子句基于指定的条件对记录行进行筛选: 3.group by子句将数据划分为多个分组: 4.使用聚集函 ...

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

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

  5. sql语句执行顺序与性能优化(1)

    一.首先我们看一下mysql的sql语句的书写顺序 . select--distinct--from--on--where--group by--having--聚合函数cube.rollup--or ...

  6. sql 聚合函数用法,及执行顺序

    聚合函数无法用在where子句中 , 聚合函数包括count avg sum min max 子句执行顺序from -> where -> group by -> having -& ...

  7. sql中select语句的逻辑执行顺序

    下面是SELECT语句的逻辑执行顺序: FROMONJOINWHEREGROUP BYWITH CUBE or WITH ROLLUPHAVINGSELECTDISTINCTORDER BYTOP M ...

  8. 历史命令~/.bash_history,查看所有别名alias,命令执行顺序,命令行常用快捷键,输入输出重定向,wc统计字节单词行数

    历史命令大小:/etc/profile中字段HISTSIZE=1000 历史命令保存文件:~/.bash_history history -c 清空历史命令 history -w 把历史命令写入~/. ...

  9. sql执行顺序与性能优化小技巧(一)

    关于sql条件匹配对执行效率影响测试 首先,创建一个标量函数create function ff_test() returns int as begin declare @i int=0 while( ...

随机推荐

  1. Swift函数_默认参数

    swift中提供了默认参数功能,在声明函数时给参数指定默认值. 例: func inputStudentInfo(name:String,age:Int="26") { print ...

  2. [javaEE] response实现图片下载

    在Servlet中的doGet()方法中 获取FileInputStream对象,new出来,构造参数:String的文件路径 得到文件路径,调用this.getServletContext().ge ...

  3. 添加FB登陆时,需要curl扩展

    安装curl扩展遇到一个傻逼问题 [root@xxx openssl]# /usr/local/php/bin/phpizeCannot find config.m4.Make sure that y ...

  4. 一款软件同时管理MySQL,MongoDB数据库

    互联网应用开发日新月异,去年分布式应用都还大量使用springmvc+ zookeeper +dubbo,今年就被spring boot ,spring cloud微服务架构替换了,技术的更新换代太快 ...

  5. Python Django 路由分发

    mysite1 为一个django工程 cmdb为一个项目 dashboard为一个项目 在mysite1工程下的urls.py中定义如下: from django.conf.urls import ...

  6. WinFrom柱形图

    using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; usin ...

  7. NodeList、HTMLCollection和NamedNodeMap

    上篇文章以arguments为例讲到了类数组对象,这篇我们讨论更多的类数组对象NodeList.HTMLCollection和NamedNodeMap.既然是类数组对象,这3种对象也都能应用上篇文章中 ...

  8. Tomcat学习总结(一):目录简介

    一:下载地址和目录结构说明. Tomcat官方站点:http://jakarta.apache.org 下载Tomcat安装程序包:http://tomcat.apache.org/

  9. Node.js 学习笔记(一)--------- Node.js的认识和Linux部署

    Node.js 一.Node.js 简介  简单的说 Node.js 就是运行在服务端的可以解析并运行 JavaScript 脚本的软件. Node.js 是一个基于Chrome JavaScript ...

  10. C语言——链式存储实现栈的基本运算算法

    Lkstack.h // 链栈的定义 typedef struct node { int data; struct node *next; }LkStk; main.c #include <st ...