概述
目录
1.delete与Truncate区别?
2.集合操作符
3.解释data block , extent 和 segment的区别?
4.简述oracle中 dml、ddl、dcl、dtl的使用
5.存储过程
6.左右连接、内连接、全连接的区别
7.sql语句执行顺序
1.delete与Truncate区别?
1)Truncate 是DDL 语句,DELETE 是DML语句。
2)Truncate 的速度远快于DELETE;
原因是:当执行DELETE操作时所有表数据先被COPY到回滚表空间,数据量不同花费时间长短不一。而TRUNCATE 是直接删除数据不进回滚表空间。
3)delete 数据可以运行Rollback 进行数据回滚。而Truncate 则是永久删除不能回滚。
4) Truncate 操作不会触发表上的delete触发器,而delete 会正常触发。
5) Truncate 语句不能带where 条件意味着只能全部数据删除,而DELETE可带where 条件进行删除数据。
6)Truncate 操作会重置表的高水位线(High Water Mark),而delete 不会。
7)DELETE可以操作视图,TRUNCATE不能操作视图
2.集合操作符
Union操作符返回两个查询的结果集的并集,不包含重复值
Union ALL操作符返回两个查询的结果集的并集,包括所有重复⾏。
Minus 是从第⼀个查询结果减去第二个查询结果,如果有相交部分就减去相交部分, 不包含重复值。
INTERSECT操作符只返回两个查询的公共行。是交集,不包含重复值。
3.解释data block , extent 和 segment的区别?
data block 数据块,是oracle最小的逻辑单位,通常oracle从磁盘读写的就是块
extent 区,是由若干个相邻的block组成
segment段,是有一组区组成
tablespace表空间,数据库中数据逻辑存储的地方,一个tablespace可以包含多个数据文件
4.简述oracle中 dml、ddl、dcl、dtl的使用
DDL(Data Definition Language):数据定义语言,用来定义表、列等;
如:创建数据表...
DML(Data Manipulation Language):数据操作语言,用来定义数据库记录(如:添加数据,修改数据,删除数据)
DQL(Data Query Language):数据查询语言,用来查询记录(数据)。 如:查询数据
DTL (Data Transaction Language):数据事务语言,用来操作事务。
如:开启事务,提交事务
DCL (Data Control Language):数据控制语言。用来操作用户和权限
如:创建用户,授权。
5.存储过程
存储就是在数据库服务器中封装了一段或多段SQL语句,完成某一特定功能的PL/SQL代码块。
它可以被用户随时调用,这种方式极大的节省了用户的时间,也提高了程序的执行效率。另外存储过程还可以在编程语言中调用。
存储过程的优点
1.存储过程只在创造时进行编译,以后每次执行存储过程都不需再重新编译。
2.建立过程不会很耗系统资源,因为过程只是在调用才执行。
3.可重复使用。
4.可维护性高。
存储过程的缺点:
1.考虑移植性,存储过程的致命伤
2.大量的利用过程,会对服务器压力比较大
存储过程语法:
1.创建语句:create or replace procedure 存储过程名。
2.存储过程名定义:存储过程可以有参数,也可以没有参数。
3.变量声明块:紧跟着的is关键字,用于声明变量。变量声明块用于声明该存储过程需要用到的变量,它的作用域为该存储过程。另外这里声明的变量必须指定宽度。
4.过程语句块:从begin 关键字开始为过程的语句块。存储过程的具体逻辑在这里来实现。
5.异常处理块:关键字为exception ,为处理语句产生的异常。该部分为可选 。
6.结束块:由end关键字结束。
存储过程的参数传递方式 :
IN 表示输入参数,按值传递方式。
OUT表示输出参数,可以理解为按引用传递方式。可以作为存储过程的输出结果,供外部调用者使用。
IN OUT即可作输入参数,也可作输出参数。
存储过程的优化
1利用一些sql语句来代替一些小循环,例如聚合函数
2不要按照算法描述,一直将一条长达100多个字段的记录分90次来更新,而是采用拼凑语句,将更新语句在循环中拼凑后,在统一更新
3中间结果存放临时表,加索引
4少用游标
5事务越短越好
6查找语句尽量不要放在循环内。
6.左右连接、内连接、全连接的区别
left join (左连接):返回包括左表中的所有记录和右表中连接字段相等的记录。
right join (右连接):返回包括右表中的所有记录和左表中连接字段相等的记录。
inner join (等值连接或者叫内连接):只返回两个表中连接字段相等的行。
full join (全外连接):返回左右表中所有的记录和左右表中连接字段相等的记录。
7.sql语句执行顺序
1、最先执行from 表名
2、where语句是对条件加以限定
3、分组语句【group by…… having】
4、聚合函数
5、select语句
6、order by排序语句
最后
以上就是闪闪黑米为你收集整理的oracle重点知识的全部内容,希望文章能够帮你解决oracle重点知识所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复