




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、数据库主要内容Oracle对象rownumv序列(必须掌握)v视图(掌握)v事务(掌握)pl/sql基础(掌握) rownumrownum是在得到结果集的时候产生的,用于标记结果集中结果顺序的一个字段,这个字段被称为“伪数列”,也就是事实上不存在的一个数列。select select * * from t_user where rownum=1 from t_user where rownum=1 有结果有结果select select * * from t_user where rownum1 from t_user where rownum1没有结果,因为没有结果,因为rownum=1ro
2、wnum=1的记录不存在,所以的记录不存在,所以rownum=2rownum=2没有意义没有意义select select * * from (select rownum r, from (select rownum r, userid,username,passwd,age,gender from t_user) userid,username,passwd,age,gender from t_user) where r between 3 and 6where r between 3 and 6rowidrowid一般说来每一行数据对应的rowid是固定而且唯一的,在这一行数据存入数据库的
3、时候就确定了。 Sequence序列是用来发布一系列唯一整型数字oracle对象。序列为Oracle提供主键生成规则可以创建一个一行一列的表,每次从中取出最大的值,然后把值加1创建序列语法:create sequence myseqstart with 1Increment by 1Maxvalue 10000Minvalue 10order /排序nocycle;/保证不重复 cache 10;Sequencenextval:返回序列的下一个值Select myseq.nextval from dual;currval:返回序列的当前值(要先使用nextval)(写完nextval,才能查找
4、currval)Select myseq.currval from dual;v应用到表中Sequence修改序列(不能修改当前值,即不能更改序列的start with参数)valter sequences myseqvincrement by 3vmaxvalue 10000 vcyclevnocache;删除序列vdrop sequence myseq;v查看序列数据字典: all_sequences高级视图 view虚表:提高多表查询书写效率ViewView视图是一个虚拟表,其内容由查询定义,视图是虚拟的,物理上是不存在的.可以对数据可以起到筛选作用。子查询 虚表 v$_ 命名creat
5、e or replace view v$_user asselect * from t_user,t_book where t_user.userid = t_book.useridViewCREATE OR REPLACE VIEW v$_user CREATE OR REPLACE VIEW v$_user as SELECT as SELECT * * FROM t_user where gender=female FROM t_user where gender=female WITH CHECK OPTION constraint constraint_user1 WITH CHEC
6、K OPTION constraint constraint_user1 alter table t_user add constraint constraint_user alter table t_user add constraint constraint_user check(age300);check(age310310View通过视图修改数据,通过操作视图来操作表。简单视图Create or replace view emp_view as select * from empupdate emp_view set ename = cao where empno=;最终还是修改了表复
7、杂视图(组合查询)不可以修改-解决办法-替代触发器v查看系统字典表 dba_views user_views视图的作用第一点: 使用视图,可以定制用户数据,聚焦特定的数据。 第二点:使用视图,可以简化数据操作。第三点:使用视图,基表中的数据就有了一定的安全性 Index索引是一种数据结构,是对照表、指针表。索引是加快查询速度的有效手段。一旦建立,就由系统使用和维护,不需用户干预。索引是把双刃剑,减慢更新的速度。索引不是SQL标准的要求。Indexindex提高检索效率占空间Tablesplace主键自动创建索引,不占空间创建index create index idx_name on test
8、(name);查询数据字典里的所有indexselect idx_name from user_indexes;Index修改index:如果在索引列上频繁执行UPDATE或INSERT操作,则应定期重建索引,提高空间利用率。语法:alter index idx_name rebuild;删除index:索引不再需要时,需要删除。移动表数据后,索引会无效,需删除或重建。drop index idx_name;数据库事务事务:(Transaction)是并发控制的单位,是用户定义的一个操作序列。这些操作要么都做,要么都不做,是一个不可分割的工作单位。通过事务,oracle能将逻辑相关的一组操作绑
9、定在一起,以便服务器保持数据的完整性。v保证一系列操作要么都成功要么都失败v银行转账(甲乙用户转账)事务的特性(ACID特性) A:原子性(Atomicity) 事务是数据库的逻辑工作单位,事务中包括的诸操作要么全做,要么全不做。 B:一致性(Consistency) 事务执行的结果必须是使数据库从一个一致性状态变到另一个一致性状态。一致性与原子性是密切相关的。 C:隔离性(Isolation) 一个事务的执行不能被其他事务干扰。 D:持续性/永久性(Durability) 一个事务一旦提交,它对数据库中数据的改变就应该是永久性的。 注:事务是恢复和并发控制的基本单位。 事务运行的三种模式A:
10、自动提交事务 每条单独的语句都是一个事务。每个语句后都隐含一个COMMIT。 DDLB:显式事务 以BEGIN TRANSACTION显式开始,以COMMIT或ROLLBACK显式结束。 TCLC:隐性事务 在前一个事务完成时,新事务隐式启动,但每个事务仍以COMMIT或ROLLBACK显式结束。 COMMIT表示提交,即提交事务的所有操作。具体地说就是将事务中所有对数据库的更新写回到磁盘上的物理数据库中去,事务正常结束。 ROLLBACK表示回滚,即在事务运行的过程中发生了某种故障,事务不能继续进行,系统将事务中对数据库的所有以完成的操作全部撤消,滚回到事务开始的状态。SAVEPOINT表示
11、回滚标记,用SAVEPOINT语句在当前事务中创建一个标记,用ROLLBACK TOSAVEPOINT语句回退到该标记。事务处理控制命令事务处理控制命令数据库事务执行第一个DML SQL 语句时开始遇到下面事件之一结束:v一个COMMIT或ROLLBACK语句被发布v一个DDL 或DCL 语句执行(自动提交)v用户退出SQL*Plus当SQL*Plus 非正常退出时,或者发生系统故障时,一个自动回退发生。控制事务1SAVEPOINT BSAVEPOINT ADELETEINSERTUPDATEINSERTCOMMIT时间TransactionROLLBACK to SAVEPOINT BROL
12、LBACK to SAVEPOINT AROLLBACKUPDATE.SAVEPOINT update_done;INSERT.ROLLBACK TO update_done;回退改变到一个标记用SAVEPOINT语句在当前事务中创建一个标记用ROLLBACK TOSAVEPOINT语句回退到该标记 事务好处用COMMIT和ROLLBACK语句,你能够:确保数据的一致性在数据永久改变之前进行预览分组逻辑相关的操作 事务COMMIT或ROLLBACK之前数据的状态以前的数据状态能够被恢复当前用户能用SELECT语句查看DML 操作的结果其他用户不能观察当前用户DML 语句的结果受影响的行被锁定;
13、其他用户不能改变受影响的行中数据 事务在COMMIT之后数据的状态数据在数据库中被永久地改变.数据的以前状态被永久地丢失所有用户都能观察该结果受影响行的锁定被释放;其它用户可以操纵那些行所有保存点被擦除 事务ROLLBACK 后的数据状态用ROLLBACK语句丢弃所有未决的改变:数据的改变被撤消数据的以前状态被恢复受影响行的锁定被释放事务买票的时候:三张票,各买2张,那么这是不可以的。怎么解决?加锁:for updatepl/sqlPL/SQLPL/SQL(Procedural Language/Structured Query Language)是一种过程化语言,属于第三代语言,它与C、C+
14、、 Java等语言一样关注于处理细节,可以用来实现比较复杂的业务逻辑。PL/SQL补充了标准的关系数据库语言SQL。PL/SQL是Oracle的程序设计语言。pl/sql基础pl/sql 块结构:declare./定义变量begin.exception.end;/在控制台输出set serveroutput on;pl/sql 基础分支语句If语句Case 语句循环语句Loop循环While循环For循环IF语句语法:IF condition1 THENstatements1ELSIF condition2 THENstatements2ELSEstatements3/注意单引号END IF;
15、 /注意分开和分号CASE语句语法:oracle9i 之后支持CASE WHEN 条件表达式1 THEN 语句段1 WHEN 条件表达式2 THEN 语句段2 ELSE 语句段NEND CASE;Loop循环语句语法: LOOP statement END LOOP 循环标签;跳出循环:EXIT 循环标签EXIT 循环标签 WHEN 条件表达式While循环语句语法:while 循环 WHILE 条件表达式 LOOP 语句段 END LOOP;for循环语句语法:for 循环 FOR 循环变量 IN REVERSE 初始表达式.终值表达式 LOOP 语句段 END LOOP ;特点:递增量不能我们控制,只能是1pl/sql 基础什么是异常:在pl/sql中的一个警告或者错误的情形就被称为异常。异常分类:系统异常 no_data_found自定义异常 raise异常结构:exception when .then.例子:exception13.txtpl/sql 基础记录是由几个相关值构成的复合变量,常用于支持select语句的返回值。使用记录可以将一行数据看成一个单元进行处理,而不必将每一列单独处理。记录的定义:type record_typ
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 新劳务派遣合同
- 品牌产品包装设计合同范本
- 合法精装房购房合同
- 市区楼房出租合同
- 医疗集中采购合同范例
- 墩柱内预埋排水管施工方案
- 别墅园林购买合同范例
- 公路病害巡检方案范本
- 出租电脑电源合同范例
- 北京整车销售合同范例
- 成人鼻肠管的留置与维护(2021团体标准解读)-20221004172843
- 机械制造质量手册(一)
- 2024-2030年中国互联网+印刷行业深度分析及发展战略研究咨询报告
- 水库绿化景观设计项目招标文件模板
- 浙江省杭州市临平区2023-2024学年五年级下学期期末语文试卷
- 药物中毒病人的护理查房
- 2024年中储粮集团招聘笔试参考题库附带答案详解
- 万达宝软件逻辑计算笔试题
- 2023-2024学年天津市武清区小升初全真语文模拟预测卷含答案
- 2024年卵巢癌治疗指南
- 任务2 聚酯合成的浆料配制-PTA的输送与卸料
评论
0/150
提交评论