Oracle 学习SQL
开始记录最近学习了一些基础的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的更多相关文章
- Oracle学习笔记三 SQL命令
SQL简介 SQL 支持下列类别的命令: 1.数据定义语言(DDL) 2.数据操纵语言(DML) 3.事务控制语言(TCL) 4.数据控制语言(DCL)
- [强烈推荐]ORACLE PL/SQL编程详解之七:程序包的创建与应用(聪明在于学习,天才在于积累!)
原文:[强烈推荐]ORACLE PL/SQL编程详解之七:程序包的创建与应用(聪明在于学习,天才在于积累!) [强烈推荐]ORACLE PL/SQL编程详解之七: 程序包的创建与应用(聪明在于学习,天 ...
- Oracle学习笔记之四,SQL语言入门
1. SQL语言概述 1.1 SQL语言特点 集合性,SQL可以的高层的数据结构上进行工作,工作时不是单条地处理记录,而对数据进行成组的处理. 统一性,操作任务主要包括:查询数据:插入.修改和删除数据 ...
- Oracle学习-Power Designer、visio 2003、Oracle sql developer、OEM、expdp
Oracle的体系太庞大了.对于刚開始学习的人来说,难免有些无从下手的感觉. 经过一学期的学习对Oracle学习有了一些深入的了解,由于之前学习过Oracle的一些主要的知识.所以学习起来上手比較快一 ...
- 浅析Oracle PL/SQL 学习--未完待续
这是一篇关于Oracle Pl/SQL数据库编程的课程学习分享... 首先说明几点: 学习这门课程之前,已经学过并且掌握一些基础的SQL语句.数据库结构分析.ER图设计等知识: 这里也只是较为大概地将 ...
- oracle学习笔记(十五) PL/SQL语法结构以及使用
PL/SQL 简介 PL/SQL 是过程语言(Procedural Language)与结构化查询语言(SQL)结合而成的编程语言. PL/SQL 是对 SQL 的扩展. 支持多种数据类型,如大对象和 ...
- 学习《Oracle PL/SQL 实例讲解 原书第5版》----创建账户
通过readme.pdf创建student账户. 以下用sys账户登录时都是sysdba. 一.PL/SQL 登录oracle. SYS/123 AS SYSDBA 账户名:sys:密码:123:作 ...
- 初级Oracle和SQL学习者的学习笔记。韩顺平-玩转oracle。
我自己就是一个oracle和sql的初学者,前段时间看了韩顺平老师的oracle视频教程,觉得很深入浅出,收获了很多.同时自己也做了不少笔记,现在想将纸质笔记以自己的话总结出来.俗话说得好:教学总是相 ...
- Oracle经典SQL
最近本人整理了一些Oracle sql,现分享给大家,后续还会更新.如果有错误的地方,请指正,共同学习.贴上去的sql都是我测试过的,大家可以粘贴在自己的电脑上试试. 1.查询部门的名称,及最低收入雇 ...
随机推荐
- Thumbnailator java图片压缩,加水印,批量生成缩略图
地址:http://code.google.com/p/thumbnailator/ 1.指定大小进行缩放 //size(宽度, 高度) /* * 若图片横比200小,高比300小,不变 * 若图片横 ...
- 转:sqlplus使用总结
为什么我要使用sqlplus: SQLPLUS很多人用的并不多,在我观察周围来看,很多人都在使用PLSQL DEVELOPER,尤其是开发人员,更是如此,那学习SQLPLUS有啥好处呢?在我看来有如下 ...
- php curl批处理
php模拟多线程用到curl库,这个库很强大,可以做好多事,比如模拟登陆,文件上传/下载,数据采集等. 下面是我的代码,很简单,有些还功能还不会用. <?php $node_urls=array ...
- BZOJ4872: [Shoi2017]分手是祝愿【概率期望DP】【思维好题】
Description Zeit und Raum trennen dich und mich. 时空将你我分开.B 君在玩一个游戏,这个游戏由 n 个灯和 n 个开关组成,给定这 n 个灯的初始状态 ...
- Restrictions用法
HQL运算符 QBC运算符 含义 = Restrictions.eq() 等于equal <> Restrictions.ne() 不等于not equal > Restrict ...
- python 获取中文文件名的输出
#coding:utf8 if __name__ == '__main__': srcfile = u"D:/测试路径/测试文件.txt" f = open(srcfile.enc ...
- About Apache Cordova
Apache Cordova is a set of device APIs that allow a mobile app developer to access native device fun ...
- Spring Cloud Netflix项目进入维护模式
任何项目都有其生命周期,Spring Could Netflix也不例外,官宣已进入维护模式,如果在新项目开始考虑技术选型时要考虑到这点风险,并考虑绕道的可能性. 原创: itmuch IT牧场 这 ...
- saltops 安装及相关环境安装
本次布署测试环境 阿里云 Centos 7.3 1.安装nginx,这里采用yum 安装方式 A.yum install nginx B.创建开机启动 systemctl enable nginx.s ...
- windows7 64位下git和tortoisegit的安装和使用
githttps://github.com/git-for-windows/git/releases tortoisegit安装下载https://tortoisegit.org/download/ ...