开始记录最近学习了一些基础的SQL知识。

说起数据库,想到当时学习数据库概论这本书的时候,就学了一些基本的SQL语句以及数据库理论知识,记得最当时考试的数据库范式的知识,不知当时是怎么过来的,到现在对这些知识也模模糊糊,但是想研究一下这些内容。

其实,目前来说,对于数据库体系结构,SQL执行的原理不是特别的清楚,仅仅是搜集一些最佳的SQL书写的优化进行,有空可以研究一下数据库底层的一些东西。

刚开始吧,先回顾一下SQL语句吧,因为自己开发最多的还是SQL语句较多,其他的暂时用的不太多。

SQL:

  1.in ( select )   = 是其中的一种

  2.exists select null 这种模式 子查询  1:n的全表扫面

  3.group by  having  模式 (AVG   SUM COUNT  MAX )

  4. from  (select  .......   )  a  where  .....  模式

5. like  ,% ,between ....and....

  注意:下面是一些统计仅仅对于Oracle 10g

    a.开窗函数SUM(C) OVER (PARTITION BY B)   数据不少 列所在的类     与Group BY  一组数据 少了一些数据  类中的统计。

  6.少用distinct,union,效率不高

  7.with nolock用在Select里面,提高效率

  8.for update对查询进行加锁,保证不会发生不可重复多机制

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

  一些报表采取存储过程,这样就涉及到一些临时表,有临时表主要是为了提高检索的速度,负责大量的表关联导致查询的效率很慢。他仅仅存储一些临时的数据,仅      仅对当前会  话或者当前的事物有效,不会占用表空间,几乎都在内存里面进行。

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

补充几个常见的关键字:

  case when  then  end 的报表的查询。

  left out join   on

  right out join  on

  inner join = 常见的表连接

  case when (搜素函数) 、union  (常见的行转列)

  交叉连接(两个表的列综合)  select ta.*,tb.* from ta,tb (ta*tb的行数)

  为了是oracle的子查询的语句执行的效率更高,可以使用with as语法(connect by)

  推荐尽量使用表连接,减少使用子查询,因为子查询会产生全表扫描(本质就是IO的次数太多,导致效率低下,IO瓶颈就是速度不匹配) 

  SQL编写基本时间久了,写的多了也就熟悉了(记得当时开发时,一些SQL感觉比价难,不会写,但是开发也就是SQL),但是如何提高SQL执行的效率,这才是提高SQL的难       处所在,所以觉得有时间了解一下SQL执行的原理。

Oracle 学习SQL的更多相关文章

  1. Oracle学习笔记三 SQL命令

    SQL简介 SQL 支持下列类别的命令: 1.数据定义语言(DDL) 2.数据操纵语言(DML) 3.事务控制语言(TCL) 4.数据控制语言(DCL)  

  2. [强烈推荐]ORACLE PL/SQL编程详解之七:程序包的创建与应用(聪明在于学习,天才在于积累!)

    原文:[强烈推荐]ORACLE PL/SQL编程详解之七:程序包的创建与应用(聪明在于学习,天才在于积累!) [强烈推荐]ORACLE PL/SQL编程详解之七: 程序包的创建与应用(聪明在于学习,天 ...

  3. Oracle学习笔记之四,SQL语言入门

    1. SQL语言概述 1.1 SQL语言特点 集合性,SQL可以的高层的数据结构上进行工作,工作时不是单条地处理记录,而对数据进行成组的处理. 统一性,操作任务主要包括:查询数据:插入.修改和删除数据 ...

  4. Oracle学习-Power Designer、visio 2003、Oracle sql developer、OEM、expdp

    Oracle的体系太庞大了.对于刚開始学习的人来说,难免有些无从下手的感觉. 经过一学期的学习对Oracle学习有了一些深入的了解,由于之前学习过Oracle的一些主要的知识.所以学习起来上手比較快一 ...

  5. 浅析Oracle PL/SQL 学习--未完待续

    这是一篇关于Oracle Pl/SQL数据库编程的课程学习分享... 首先说明几点: 学习这门课程之前,已经学过并且掌握一些基础的SQL语句.数据库结构分析.ER图设计等知识: 这里也只是较为大概地将 ...

  6. oracle学习笔记(十五) PL/SQL语法结构以及使用

    PL/SQL 简介 PL/SQL 是过程语言(Procedural Language)与结构化查询语言(SQL)结合而成的编程语言. PL/SQL 是对 SQL 的扩展. 支持多种数据类型,如大对象和 ...

  7. 学习《Oracle PL/SQL 实例讲解 原书第5版》----创建账户

    通过readme.pdf创建student账户. 以下用sys账户登录时都是sysdba. 一.PL/SQL 登录oracle. SYS/123  AS SYSDBA 账户名:sys:密码:123:作 ...

  8. 初级Oracle和SQL学习者的学习笔记。韩顺平-玩转oracle。

    我自己就是一个oracle和sql的初学者,前段时间看了韩顺平老师的oracle视频教程,觉得很深入浅出,收获了很多.同时自己也做了不少笔记,现在想将纸质笔记以自己的话总结出来.俗话说得好:教学总是相 ...

  9. Oracle经典SQL

    最近本人整理了一些Oracle sql,现分享给大家,后续还会更新.如果有错误的地方,请指正,共同学习.贴上去的sql都是我测试过的,大家可以粘贴在自己的电脑上试试. 1.查询部门的名称,及最低收入雇 ...

随机推荐

  1. L2-003. 月饼(贪心)

    L2-003. 月饼 简单的结构体和排序应用题 #include<iostream> #include<stdio.h> #include<algorithm> u ...

  2. TreeMap源码学习

    这是看过的第一个jdk源码(从立下目标以来):TreeMap.说实话断断续续的看了有好几天了,我觉得我犯了一个错误,就像一开始说的那样,我打算完完全全看懂TreeMap关于红黑树的实现方式,后来我想了 ...

  3. TypeError: HashUpdate fail

    关于crypto的md5加密报错: 代码: var crypto = require('crypto'); var md5 = crypto.createHash('md5'); //crypto模块 ...

  4. .NET 除了用 Task 之外,如何自己写一个可以 await 的对象?

    .NET 中的 async / await 写异步代码用起来真的很爽,就像写同步一样.我们可以在各种各样的异步代码中看到 Task 返回值,这样大家便可以使用 await 等待这个方法.不过,有时需要 ...

  5. Arpa’s obvious problem and Mehrdad’s terrible solution 思维

    There are some beautiful girls in Arpa’s land as mentioned before. Once Arpa came up with an obvious ...

  6. hiho1622 有趣的子区间(YY)

    题目链接:http://hihocoder.com/problemset/problem/1622?sid=1230113 #1622 : 有趣的子区间 时间限制:10000ms 单点时限:1000m ...

  7. CentOS7.4 删除virbr0 virbr0-nic虚拟网卡

    本文摘抄自  https://www.cnblogs.com/cloudos/p/8288041.html 在CentOS 7的安装过程中如果有选择相关虚拟化的的服务安装系统后,启动网卡时会发现有一个 ...

  8. 上产使用MQ的三点注意

    安全性考量:在正式环境中使用消息队列中间件服务一定要做相关的安全性设置.包括启用消息队列服务的用户名和密码.启用消息队列服务自带的SSL加密设置.如果您使用的消息队列服务不自带SSL加密,则一定要自己 ...

  9. AngularJS通过$location获取及改变当前页面的URL

    本文中获取与修改的URL以 ‘http://172.16.0.88:8100/#/homePage?id=10&a=100' 这个路径为例: 一. 获取url的相关方法(不修改URL): 1. ...

  10. FPGA配置方式

    FPGA有多种配置/加载方式.粗略可以分为主动和被动两种.主动加载是指由FPGA控制配置流程,被动加载是指FPGA仅仅被动接收配置数据. 最常见的被动配置模式就是JTAG下载bit文件.此模式下,主动 ...