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.查询部门的名称,及最低收入雇 ...
随机推荐
- PlistBuddy
最近由于工作需要,发现了这么一个小工具. PlistBuddy是一个Mac里的命令行下读写plist文件的工具. 位于/usr/libexec/下,由于这个路径不在默认的PATH里,需要通过绝对路径/ ...
- proxool配置及测试(数据库用的MySQL)
Proxool连接池设置 Proxool连接池是sourceforge下的一个开源项目,这个项目提供一个健壮.易用的连接池,最为关键的是这个连接池提供监控的功能,方便易用,便于发现连接泄漏的情况. ...
- 5.1 socket编程、简单并发服务器
什么是socket? socket可以看成是用户进程与内核网络协议栈的编程接口.是一套api函数. socket不仅可以用于本机的进程间通信,还可以用于网络上不同主机间的进程间通信. 工业上使用的为t ...
- 【opencv基础】OpenCV从Mat中提取某些行或列
这两个函数返回的是指向原矩阵内部位置的指针,类似于浅拷贝: code cv::Mat align_mean(cv::Mat mean, cv::Rect facebox, float scaling_ ...
- CF1096:D. Easy Problem(DP)
Vasya is preparing a contest, and now he has written a statement for an easy problem. The statement ...
- BZOJ4872: [Shoi2017]分手是祝愿【概率期望DP】【思维好题】
Description Zeit und Raum trennen dich und mich. 时空将你我分开.B 君在玩一个游戏,这个游戏由 n 个灯和 n 个开关组成,给定这 n 个灯的初始状态 ...
- ElasticSearch(十):springboot集成ElasticSearch集群完成数据的增,删,改
前言 之前介绍了使用devTools进行索引库数据的crud,这里使用的是java程序,使用中间件activeMQ进行数据库和索引库数据的同步.主要是用来完成对数据库的修改来完成对索引库的同步. 正文 ...
- 《DSP using MATLAB》Problem 4.5
1. 2. 3. 5.不会
- arm交叉编译器gnueabi、none-eabi、arm-eabi、gnueabihf等的区别
博客来之于: http://www.veryarm.com/296.html 命名规则: 交叉编译工具链的命名规则为:arch [-vendor] [-os] [-(gnu)eabi] arch - ...
- $.inArray方法