sql语句在面试里面问道的问题:

sql的解析的顺序

1.where里面的条件是从右向左扫描解析

2.from里面的大表在前,小表在后,解析的顺序是从右向左解析。

3.left/right/inner join 链接基于hashjoin/loop/merge三种方式构建链接方式(最终翻译成oracle内部的一些函数)。

4.存储过程的有点就是sql解析完一次之后,以后就可以恭喜,不需要重新构建sql解析过程(执行计划,类似一个翻译的过程),在开发中我们也可以给予绑定变量,减少sql硬解析的开销。

5.物化视图/分区表

6.游标就是SQL语句执行过程中的一个内存区域的指针,比如存储过程里面常用的游标,但是游标比较消耗内存,占用资源,开销大。解决的方法可以使用临时表机制。

==========================================================================

rank            一般项目里面很少用,比较高级的语法 partion by 很好用,避免过多的group by

dense_rank

over 

partition by

order by

===

rowid

===

rownum     常用

===

case when  常用

===

left join        常用(项目开发中大量使用left join 做一些报表查询,比较少使用子查询)

inner join     常用

===

exist in 用,但是不是很多,子查询使用不多,基本都是join连接

===

存储过程

临时表   存储过程常用----其实个人感觉存储过程一个就是游标,一个就是临时表存储数据

===

系统视图,部分开发场景要使用---比如开发一个类似于PL/SQL的客户端软件就需要一些系统特殊的视图以及Metedata元数据信息

===

触发器  少用----没办法了就是要触发器

===

自定义一些函数,也就是对oracle里面的函数进行封装成我们自己的函数,方便后期项目的维护

SQL执行的原理以及一些常见的关键字的更多相关文章

  1. SQL 执行 底层原理(一)

    一.SQL Server组成部分 1.关系引擎:主要作用是优化和执行查询.包含三大组件: (1)命令解析器:检查语法和转换查询树. (2)查询执行器:优化查询. (3)查询优化器:负责执行查询. 2. ...

  2. mysql 原理 ~ sql执行

    一 普通sql执行的具体过程1 连接器  管理连接,权限验证2 分析器  词法分析,语法分析   比如 数据表和数据列是否存在, 别名是否有歧义,是否符合标准sql语法等3 优化器检测   执行计划生 ...

  3. SQL select查询原理--查询语句执行原则<转>

    1.单表查询:根据WHERE条件过滤表中的记录,形成中间表(这个中间表对用户是不可见的):然后根据SELECT的选择列选择相应的列进行返回最终结果. 1)简单的单表查询 SELECT 字段 FROM ...

  4. 【Mybatis】SQL语句的解析执行过程原理

    sqlSession简单介绍 拿到SqlSessionFactory对象后,会调用SqlSessionFactory的openSesison方法,这个方法会创建一个Sql执行器(Executor),这 ...

  5. Sql注入基础原理介绍

    说明:文章所有内容均截选自实验楼教程[Sql注入基础原理介绍]~ 实验原理 Sql 注入攻击是通过将恶意的 Sql 查询或添加语句插入到应用的输入参数中,再在后台 Sql 服务器上解析执行进行的攻击, ...

  6. sql优化(原理,方法,特点,实例)

    整理的有点多,做好心理准备...... 1.资源优化理解: 不同设备,io不同.每种设备都有两个指标:延时(响应时间):表示硬件的突发处理能力:带宽(吞吐量):代表硬件持续处理能力. 每种硬件主要的工 ...

  7. MySQL中的索引、左连接、右连接、join、sql执行顺序

    逻辑架构: 1.连接层 2.服务层 3.引擎层(插拔式) 4.存储层 存储引擎: 常用的有:MyISAM.InnoDB 查看命令:show variables like '%storage_engin ...

  8. Atitit sql执行计划

    Atitit sql执行计划 1.1. 首先要搞明白什么叫执行计划? 执行计划是数据库根据SQL语句和相关表的统计信息作出的一个查询方案,这个方案是由查询优化器自动分析产生的 Oracle中的执行计划 ...

  9. Spark SQL / Catalyst 内部原理 与 RBO

    原创文章,转载请务必将下面这段话置于文章开头处. 本文转发自技术世界,原文链接 http://www.jasongj.com/spark/rbo/ 本文所述内容均基于 2018年9月10日 Spark ...

随机推荐

  1. flume ng 问题点

    1. 启动Flume,出现脚本错误 错误如下: bin/flume-ng: line 82: syntax error in conditional expression: unexpected to ...

  2. [转]Linux环境下查看线程数的几种方法

    1.cat /proc/${pid}/status 2.pstree -p ${pid} 3.top -p ${pid} 再按H,或者直接输入 top -bH -d 3 -p  ${pid} top ...

  3. js 标签云效果

    下载:http://files.cnblogs.com/zjfree/js_tag_list.rar 效果如下: 源码如下: <html> <head> <meta ht ...

  4. == Got TLE on OJ? Here is the solution! ==

    As a solo warrior in OJ, I spent about nearly 50% of my time on tackling TLE - that is innumerous ho ...

  5. Puppet's Architecture 3.7

    Puppet configures systems in two main stages: Compile a catalog Apply the catalog The Agent/Master A ...

  6. android如何播放资源文件夹raw中的视频

    转自这里 videoView.setVideoURI(Uri.parse("android.resource://" + getPackageName() + "/&qu ...

  7. 在html中添加缩放meta

    见代码(html) <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://w ...

  8. C++命名空间 namespace的作用和使用解析

    一. 为什么需要命名空间(问题提出) 命名空间是ANSIC++引入的可以由用户命名的作用域,用来处理程序中 常见的同名冲突. 在 C语言中定义了3个层次的作用域,即文件(编译单元).函数和复合语句.C ...

  9. [CSS]当选择器没有指定元素时

    当选择器没有指定元素时,样式会作用于(匹配)所有html元素. 如下面代码: <!DOCTYPE html> <html> <head> <style> ...

  10. sublime运行c++快捷建修改

    打开preferences->key bingings -user 输入 [ {"keys": ["f9"], "command": ...