我是靠谱客的博主 闪闪黑米,最近开发中收集的这篇文章主要介绍oracle重点知识,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

目录

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、dcldtl的使用

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重点知识所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(53)

评论列表共有 0 条评论

立即
投稿
返回
顶部