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.显示通知,告诉用户事务回滚成功。

4.SQL语言基础的更多相关文章

  1. SQL语言基础和数据库操作

    Sql语言基础: 核心思想:我们自己构造一段查询的代码,然后添加到语句后,从而得到想要的某些数据. Mysql是一种开源数据库 APP Serv:Apache+php+mysql,相当于phpstud ...

  2. PL/SQL语言基础

    PL/SQL语言基础 进行PL/SQL编程前,要打开输出set serveroutput on 1.创建一个匿名PL/SQL块,将下列字符输出到屏幕:"My PL/SQL Block Wor ...

  3. orcale 之 SQL 语言基础

    SQL 全称是结构化查询语句(Structure Query Language),是数据库操作的国际化语言,对所有的数据库产品都要支持. SQL 语言的分类 我们按照其功能可以大致分为四类: 数据定义 ...

  4. 浅谈PL/SQL语言基础

    在前面的学习中,我们大部分接触的都是SQL语言,但是,在实现复杂操作的时候,SQL语言就无能为力了,这时候就需要引入新的语言,PL/SQL语言就是对SQL语言的扩展,可以实现存储过程,函数等的创建.下 ...

  5. 学习笔记:oracle学习三:SQL语言基础之sql语言简介、用户模式

    目录 1.sql语言简介 1.1 sql语言特点 1.2 sql语言分类 1.3 sql语言的编写规则 2.用户模式 2.1 模式与模式对象 2.2 实例模式scott 本系列是作为学习笔记,用于记录 ...

  6. SQL语言基础-基本概念

    SQL:IBM的圣约瑟(SanJose),SEQUEL 2(也就是现在的SQL语言) 1979.Oracle首先提出提供了商用的SQL语言 1986.10美国ANSI采用SQL作为关系数据库管理系统的 ...

  7. OCP认证之Oracle的SQL语言基础(一)

    一.Oracle命令类别 数据操纵语言(DML):select;insert;delete;update;merge 数据定义语言(DDL):create;alter;drop;truncate 事物 ...

  8. SQL语言基础

    主要学习链接1 http://www.cnblogs.com/anding/p/5281558.html 搜索学习链接2 http://www.cnblogs.com/libingql/p/41342 ...

  9. .NET面试题解析(11)-SQL语言基础及数据库基本原理

      系列文章目录地址: .NET面试题解析(00)-开篇来谈谈面试 & 系列文章索引 本文内容涉及到基本SQL语法,数据的基本存储原理,数据库一些概念.数据优化等.抱砖引玉,权当一个综合复习! ...

  10. .NET面试题解析(9)-SQL语言基础及数据库基本原理

    见面试题 1. 索引的作用?她的优点缺点是什么? 2. 介绍存储过程基本概念和 她的优缺点? 3. 使用索引有哪些需要注意的地方? 4. 索引碎片是如何产生的?有什么危害?又该如何处理? 5. 锁的目 ...

随机推荐

  1. GCC常用参数

    GCC--GNU C Compiler c语言编译器(远不止c语言) 介绍: 作为自由软件的旗舰项目,Richard Stallman 在十多年前刚开始写作 GCC 的时候,还只是把它当作仅仅一个C ...

  2. Uninstall Tool 3.3.2.5315 简体中文注册版(彻底卸载软件)

    Uninstall Tool Uninstall Tool是CrystalIdea Software出品的一款强大而灵活的Windows标准“添加/删除程序”工具的替代软件.它能快速,安全而方便的删除 ...

  3. Android学习笔记(八)深入分析Service启动、绑定过程

    Service是Android中一个重要的组件,它没有用户界面,可以运行在后太做一些耗时操作.Service可以被其他组件启动,甚至当用户切换到其他应用时,它仍然可以在后台保存运行.Service 是 ...

  4. 去掉有序数组中重复数字 原地 leetcode java (最简单的方法)

    1.利用荷兰国旗的思路,每次记住最后一个位置,遇到一个不重复的数,放在它后面,代码很简单. Given a sorted array, remove the duplicates in place s ...

  5. Bzoj 1687: [Usaco2005 Open]Navigating the City 城市交通 广搜,深搜

    1687: [Usaco2005 Open]Navigating the City 城市交通 Time Limit: 5 Sec  Memory Limit: 64 MBSubmit: 122  So ...

  6. Shell编程之函数调用

    Shell中的函数调用的使用方法见我下面的代码示例: #!/bin/bash # value init ExP="adb shell /data/local/tmp/vpxdec --yv1 ...

  7. 学习动态性能表 v$sql

    学习动态性能表 第三篇-(1)-v$sql V$SQL中存储具体的SQL语句. 一条语句可以映射多个cursor,因为对象所指的cursor可以有不同用户(如例1).如果有多个cursor(子游标)存 ...

  8. Let's Encrypt+Apache+Tomcat实现免费HTTPS

    Let's Encrypt是一个免费SSL证书发行项目,发行的证书已经获得主流浏览器的支持,亲测谷歌浏览器(桌面版).火狐浏览器(桌面版).UC浏览器(手机版).360浏览器(手机版)支持,其它的暂没 ...

  9. 简单了解View是What?

    Android UI界面架构 每个Activity包含一个PhoneWindow对象,PhoneWindow设置DecorView为应用窗口的根视图.在里面就是熟悉的TitleView和Content ...

  10. linux-centos挂载新硬盘操作

    类似的文章网上已经有很多,这里是记录重要操作的命令,精简流程 精简后的命令: fdisk -ldf -hfdisk /dev/vdbfdisk -l /dev/vdbmkfs -t ext4 /dev ...