4.1语言分类和用户模式

4.1.1语言分类

1)数据查询语言

用语检索数据库中的数据,主要是select语句,是操作数据库时最为频繁使用。

2)数据操纵语言

用语改变数据库中的数据,主要包括insert、update和delete这3条语句。

3)事务控制语言

用语维护数据的一致性,包括commit、rollback和savepoint这3条语句。其中commit语句用于提交对数据库的更改,rollback语句用于取消对数据库的更改,savepoint语句用于设置保存点。

4)数据定义语言

用于建立、修改和删除数据库对象。如:可以使用create table语句创建表,alter table语句修改表结构,drop table语句删除表。

5)数据控制语言

用于执行权限授予和权限收回操作,主要包括grant和revoke两条命令。其中grant命令用于给用户和角色授予权限,而revoke命令则用于收回用户和角色权限。

4.1.2用户模式

在Oracle数据库中,为了便于管理用户所创建的数据库对象,引入了模式概念,这样某个用户所创建的数据库对象就都属于该用户模式。

模式是一个数据库对象的集合。模式为一个数据库所拥有,并且具有与该用户相同的名称,常见的有SYSTEM模式,SCOTT模式等。简单地说,模式与模式对象之间的关系就是拥有与被拥有的关系,即模式拥有模式对象;而模式对象被模式所拥有。

4.2检索数据

4.2.1去重查询

在select语句中,可以使用DISTINCT关键字来限制在查询结果显示不重复数据,该关键字用在SELECT子句的列表前面。

如:select distinct user_id from user_cont;

4.2.2筛选查询

1)where删选。

2)Like关键字(前加NOT,表示否定判断)。

3)In关键字(前加NOT,表示否定判断)。

4)Between关键字(通常使用between..and和not...between...and指定范围条件)

5)Is null关键字

4.2.3分组查询

数据分组的目的是用来汇总数据或为整个分组显示单行的汇总信息,通常在查询结果集中使用GROUP BY字句对记录进行分组,经常和聚合函数一起使用。语法格式:

Select columns_list from table_name [where conditional_expression] group by columns_list

4.2.4排序查询

在select语句中,可以使用order by字句对检索结果集进行排序,该字句位于from子句之后,默认按升序ASC排列。语法格式:

Select columns_list from table_name

[where conditional_expression]

[group by columns_list]

Order by{order_by_expression[ASC|DESC]}

4.3操作数据库

INSERT语句:insert into table_name[(column_name1,column_name2)]...values(values1,values2)

UPDATE语句:update table_name set column_name1=express1... Where condition

DELETE语句:delete from table_name [where condition]

4.4事务处理

4.4.1事务概述

事务是由一系列语句构成的逻辑工作单元。事务和存储过程等批处理有一定程度的相似,通常都是为了完成一定业务逻辑而将一条或者多条语句“封装”起来,使它们与其他语句之间出现一个逻辑上的边界。并形成相对独立的一个工作单元。

事务处理的结果只有两种:一种是在事务处理的过程中,如果发生了某种错误则整个事务全部回滚,使所有对数据的操作全部撤销,事务对数据库的操作是单步执行的,当遇到错误时可以随时地回滚;另一种是如果没有发生任何错误且每一步操作都执行成功,则整个事务全部被提交。从而可以看出,有效地使用事务可以提高数据的安全性,而且还可以增强数据的处理效率。

事务包含四种重要的属性:ACID(原子性、一致性、隔离性和持久性),一个事务必须通过ACID。

1)原子性(Atomic):事务是一个整体的工作单元,事务对数据库所做的操作要么全部执行,要么全部撤销。如果某条语句执行失败,则所有语句全部回滚。

2)一致性(ConDemoltent):事务在完成时,必须使所有的数据保持一致的状态。在相关数据库中,所有规则都必须应用于事务的修改,以保持所有数据的完整性。如果事务成功,则所有数据都变为一个新的状态;如果事务失败,则所有数据将处于原来的开始的状态。

3)隔离性(Isolated):由事务所做的修改必须与其他事物所做的修改隔离。事务查看数据时,数据所处的状态,要么是另一并发事务修改它之前的状态,要么是另一事务修改它之后的状态,事务不会查看中间状态的数据。

4)持久性(Durability):当事务提交后,对数据库所做的操作就会永久的保存下来。

4.4.2事务操作

Oracle结束一个事务,要么执行commit语句,要么执行rollback语句。

1)提交事务(commit语句)

提交事务是指把数据库进行的全部操作持久性地保存到数据库中,这种操作通常使用commit语句来完成。执行顺序:

A.在回滚段内记录当前事务已提交,并且声称一个唯一的系统编号(SCN),以唯一标识这个事务。

B.启动后台的日志写入进程(LGWR),将SGA区的重做日志缓冲区中的数据和当前事务的SCN写入重做日志文件中。

C.Oracle服务器开始释放事务处理所使用的系统资源。

D.显示通知,告诉用户事务已成功提交。

2)回滚事务(rollback语句)

回滚事务是指撤销对数据库的全部操作,Oracle利用回滚段来存储修改前的数据,通过重做日志来记录所做的修改。如果要回滚整个事务,Oracle系统内部将会执行下列操作过程:

A.使用回滚段中的数据撤销对数据库所做的修改。

B.Oracle后台服务进程释放掉事务所使用的系统资源。

C.显示通知,告诉用户事务回滚成功。

最新文章

  1. php 学习路线图
  2. windows php线程安全和不安全,两个版本我也看不懂,记下来再说。
  3. 高并发分布式系统中生成全局唯一Id汇总
  4. Javascript performance
  5. jsonp实现跨域访问
  6. ultraedit删除空行(含空格,tab,制表符等怪字符)
  7. 数据结构——队列(Queues)
  8. Angular2.js——主从结构
  9. 转-filebeat 源码分析
  10. IDEA 热部署设置(JRebel插件激活)
  11. Sublime Text3 配置 NodeJs 开发环境
  12. 20145221高其_PC平台逆向破解_advanced
  13. Win7如何设置多用户同时远程登录
  14. Java工具类- 跨域工具类
  15. Solidity根据精度来表示浮点数
  16. Mysql数据库-DAY2
  17. python16_day25【crm】
  18. maven <resources>标签
  19. C# 面向对象——多态
  20. 为centos桌面增加在右键中打开终端

热门文章

  1. 【数据结构】之二叉树的java实现
  2. Kia's Calculation(HDU 4267)
  3. Red5空项目的理解
  4. Bzoj 3747: [POI2015]Kinoman 线段树
  5. 批量导入图片到word并添加文件名
  6. MediaInfo源代码分析 2:API函数
  7. 1629 B君的圆锥
  8. PAT 1080. Graduate Admission (30)
  9. jetty之建立多Connector
  10. mvn创建web项目