4.SQL语言基础
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语言基础的更多相关文章
- SQL语言基础和数据库操作
Sql语言基础: 核心思想:我们自己构造一段查询的代码,然后添加到语句后,从而得到想要的某些数据. Mysql是一种开源数据库 APP Serv:Apache+php+mysql,相当于phpstud ...
- PL/SQL语言基础
PL/SQL语言基础 进行PL/SQL编程前,要打开输出set serveroutput on 1.创建一个匿名PL/SQL块,将下列字符输出到屏幕:"My PL/SQL Block Wor ...
- orcale 之 SQL 语言基础
SQL 全称是结构化查询语句(Structure Query Language),是数据库操作的国际化语言,对所有的数据库产品都要支持. SQL 语言的分类 我们按照其功能可以大致分为四类: 数据定义 ...
- 浅谈PL/SQL语言基础
在前面的学习中,我们大部分接触的都是SQL语言,但是,在实现复杂操作的时候,SQL语言就无能为力了,这时候就需要引入新的语言,PL/SQL语言就是对SQL语言的扩展,可以实现存储过程,函数等的创建.下 ...
- 学习笔记:oracle学习三:SQL语言基础之sql语言简介、用户模式
目录 1.sql语言简介 1.1 sql语言特点 1.2 sql语言分类 1.3 sql语言的编写规则 2.用户模式 2.1 模式与模式对象 2.2 实例模式scott 本系列是作为学习笔记,用于记录 ...
- SQL语言基础-基本概念
SQL:IBM的圣约瑟(SanJose),SEQUEL 2(也就是现在的SQL语言) 1979.Oracle首先提出提供了商用的SQL语言 1986.10美国ANSI采用SQL作为关系数据库管理系统的 ...
- OCP认证之Oracle的SQL语言基础(一)
一.Oracle命令类别 数据操纵语言(DML):select;insert;delete;update;merge 数据定义语言(DDL):create;alter;drop;truncate 事物 ...
- SQL语言基础
主要学习链接1 http://www.cnblogs.com/anding/p/5281558.html 搜索学习链接2 http://www.cnblogs.com/libingql/p/41342 ...
- .NET面试题解析(11)-SQL语言基础及数据库基本原理
系列文章目录地址: .NET面试题解析(00)-开篇来谈谈面试 & 系列文章索引 本文内容涉及到基本SQL语法,数据的基本存储原理,数据库一些概念.数据优化等.抱砖引玉,权当一个综合复习! ...
- .NET面试题解析(9)-SQL语言基础及数据库基本原理
见面试题 1. 索引的作用?她的优点缺点是什么? 2. 介绍存储过程基本概念和 她的优缺点? 3. 使用索引有哪些需要注意的地方? 4. 索引碎片是如何产生的?有什么危害?又该如何处理? 5. 锁的目 ...
随机推荐
- GCC常用参数
GCC--GNU C Compiler c语言编译器(远不止c语言) 介绍: 作为自由软件的旗舰项目,Richard Stallman 在十多年前刚开始写作 GCC 的时候,还只是把它当作仅仅一个C ...
- Uninstall Tool 3.3.2.5315 简体中文注册版(彻底卸载软件)
Uninstall Tool Uninstall Tool是CrystalIdea Software出品的一款强大而灵活的Windows标准“添加/删除程序”工具的替代软件.它能快速,安全而方便的删除 ...
- Android学习笔记(八)深入分析Service启动、绑定过程
Service是Android中一个重要的组件,它没有用户界面,可以运行在后太做一些耗时操作.Service可以被其他组件启动,甚至当用户切换到其他应用时,它仍然可以在后台保存运行.Service 是 ...
- 去掉有序数组中重复数字 原地 leetcode java (最简单的方法)
1.利用荷兰国旗的思路,每次记住最后一个位置,遇到一个不重复的数,放在它后面,代码很简单. Given a sorted array, remove the duplicates in place s ...
- Bzoj 1687: [Usaco2005 Open]Navigating the City 城市交通 广搜,深搜
1687: [Usaco2005 Open]Navigating the City 城市交通 Time Limit: 5 Sec Memory Limit: 64 MBSubmit: 122 So ...
- Shell编程之函数调用
Shell中的函数调用的使用方法见我下面的代码示例: #!/bin/bash # value init ExP="adb shell /data/local/tmp/vpxdec --yv1 ...
- 学习动态性能表 v$sql
学习动态性能表 第三篇-(1)-v$sql V$SQL中存储具体的SQL语句. 一条语句可以映射多个cursor,因为对象所指的cursor可以有不同用户(如例1).如果有多个cursor(子游标)存 ...
- Let's Encrypt+Apache+Tomcat实现免费HTTPS
Let's Encrypt是一个免费SSL证书发行项目,发行的证书已经获得主流浏览器的支持,亲测谷歌浏览器(桌面版).火狐浏览器(桌面版).UC浏览器(手机版).360浏览器(手机版)支持,其它的暂没 ...
- 简单了解View是What?
Android UI界面架构 每个Activity包含一个PhoneWindow对象,PhoneWindow设置DecorView为应用窗口的根视图.在里面就是熟悉的TitleView和Content ...
- linux-centos挂载新硬盘操作
类似的文章网上已经有很多,这里是记录重要操作的命令,精简流程 精简后的命令: fdisk -ldf -hfdisk /dev/vdbfdisk -l /dev/vdbmkfs -t ext4 /dev ...