Oracle复习(3)

26 Oracle 默认事务是打开的 但是不自动提交
	 Mysql 是自动提交的 默认不开启事务或者本身并不支持事务
27 事务的概念
数据库事务(Database Transaction) ,是指作为单个逻辑工作单元执行的一系列操作,
要么完全地执行,要么完全地不执行。 事务处理可以确保除非事务性单元内的所有操作都成功完成,
否则不会永久更新面向数据的资源。通过将一组相关操作组合为一个要么全部成功要么全部失败的单元,
可以简化错误恢复并使应用程序更加可靠。一个逻辑工作单元要成为事务,必须满足所谓的ACID(原子性、
一致性、隔离性和持久性)属性。事务是数据库运行中的逻辑工作单位,由DBMS中的事务管理子系统负责事
务的处理。
28 sql99 支持的四种隔离级别
READ UNCOMMITED (读未提交) :脏读,幻读  不可重复读
READ COMMITED(读已提交);幻读,不可重复读。(ORACLE默认的隔离级别)
REPEATABLE READ(可重复读)幻读
SERIALIZABLE(串行化) 限制并发,性能低下
注:ORACLE 支持的2种事务隔离级别 READ COMMITED SERIALIZABLE 默认事务隔离级别为READ COMMITED 写的时候只允许一个写 读的时候多个读
		Mysql支持四种事务隔离级别 默认情况下是可重读读(REPEATABLE READ)。
29 几个基本概念
脏读:读取了同一个数据库中被更新 但是还没有被提交的操作 若一旦这些操作被回滚,那么读取的内容就是临时和无效的。
不可重复读:对于同一个数据库中的更新前后,对原有字段的读取值发生了变化,这里主要是指对数据的更新
幻读:插入新的一行后,前后两次读取的行数不一致,会多出几行,这里主要是指对数据的插入
30 事务的四个性质(ACID)
	(1)原子性(Atomicity)
			指的是事务包含的所有操作,要么全部成功,要么全部失败回滚。
	(2)一致性(Consistency)
			指的是必须使数据库从一个一致性状态变换到另一个一致性状态事务执行之前和执行之后都必须处于一致性状态。
	(3)隔离性
			指的是多用户并发访问数据库时,数据库为每一个用户开启事务,不能被其他事务的操作干扰,多个并发事务之间不能相互干扰。
	(4)持久性
			指的是对数据库的操作一旦提交,那么对数据集数据的改变是永久的。即使数据库系统遇到故障的情况下也不会丢失已经提交的事务的操作。
31 ROWID指的是数据库的某一行的指针 指针相当于一个索引
		SELECT rowid ,t.* FROM T1 t; 
32 修改表结构 属于DDL(数据库定义语言)
	ALTER TABLE T1 ADD tnamess varchar2(20);--增加列
	ALTER TABLE T1 MODIFY tname2 varchar2(40) --修改列的类型和大小
	ALTER TABLE T1 RENAME COMLUMN tnamess TO tnames --修改列的名字
	ALTER TABLE T1 DROP COLUMN tnames --
33 表约束		
		CREATE  TABLE TEACHER(tid number  constraint teacher_tid_pk primary key ,--主键约束
		tname  varcahr(20) constraint teacher_tname_notnull not null,--非空约束
		temail  varcahr(40) constraint teacher_temail_unique unique,--唯一约束
		tsex number constraint  teacher_tsex_check check(tsex in(1,2)),--只能为1或者2
		tage  number constraint teacher_tage_check check(tage >10)--只能大于10
		);
		***主外键约束***
		eg:给表增加外键约束
		alter table teacher  add dept .number  constraint student_fk references dept(deptno) on delete set null;
34 数据库对象
		表 基本的数据储存的集合由行和列组成
		视图 从表中抽出的逻辑上相关的数据集合(表的逻辑抽象,视图本身没有数据,还是来源于表 视图相当于快捷方式 快速查看表
		 视图就是为了简化查询,限制数据访问、提供数据的相互独立性 同样的数据,可以有不同的显示方式)
		序列 提供有规律的数值
		索引 提高查询的效率
		同义词 给对象起别名
35 视图创建
		CREATE VIEW v_emp AS (SELECT *FROM emp WHERE deptno =10) WITH CHECK OPTION ;--限制只能插入10号部门的员工信息
		视图中的DML语句 可以在简单视图中使用DML语句 
				当视图定义中包含了以下元素之一的时候 不能使用delete :组函数、group by子句 distinct 关键字 rownum伪列
				当视图中定义包含了以下元素之一的时候,不能使用update:组函数,group by, distinct关键字,rownum伪列,列的定义为表达式
				当视图中定义包含了以下元素之一的时候,不能使用insert:组函数,group by,distinct 关键字,rownum伪列,烈的定义为表达式,表中非空的列在视图中的定义未包括
35 删除视图
		drop view v_emp;
36 序列
		CREATE Sequence dept_seq [INCREMENT BY N] [START WITH N][{MAXVALUE N | NOMAXVALUE}] [MINVALUE N |NOMINVALUE] [CYCLE |NOCYCLE] [CACHE N |NOCACHE]
		可提供多个用户用来产生唯一数值的数据库对象
				自动提供唯一的数值 共享对象 主要用于提供主键值 将序列值装入内存可以提高访问效率
				注:多个表使用同一个序列回使序列不连续 回滚 系统异常也会使序列不连续。
37 关于索引的小专题
	索引和表示单独存放的
	索引对DBA和开发人生,使用起来是透明的的 只要创建索引。
	加快检索速度
	CREATE INDEX MYINDEX ON EMP(DEPTNO);
		CREATE INDEX MYINDEX ON EMP(DEPTNO,JOB);		
		索引 :一种独立于表的模式对象,可以存在于表不同的磁盘中,或者表空间中,索引被删除或者损坏,不会对表产生影响,其影响的只是查询的速度。
	索引一旦建立,ORACLE管理系统会对其进行自动维护,而且Oracle管理系统决定何时会引用索引,用户不用再查询语句中指定使用哪一个索引 在删除一个表的时候
	也会删除基于该表的索引 通过指针加速ORACLE服务器的查询速度 通过快速定位数据的方法,减少磁盘I/O

猜你喜欢

转载自blog.csdn.net/weixin_39804483/article/details/84327334
今日推荐