`

oracle基础(四)

阅读更多

DML data manipulation language

DDL Data Definition Language

DCL(Data Control Language

向表中插入空值:

显示插入

隐式插入

向表中插入日期

把字符串转换成日期格式并告诉给数据库日期的识别格式

To_Date(‘2007-02-02’,”yyyy-mm-dd”);

SQL 语句中使用 & 变量指定列值。

INSERT 语句中加入子查询。

不必书写 VALUES 子句。

子查询中的值列表应与 INSERT 子句中的列名对应

Insert into a (a1,a2,a3)

Select (b1,b2,b3) from b;

UPDATE 中使用子查询,使更新基于另一个表中的

数据。

DELETE 中使用子查询,使删除基于另一个表

中的数据。

都是删除表中的数据

Delete操作可以rollback,可以闪回

Delete操作可能产生碎片,并且不释放空间

Truncate:清空表

数据库事务由以下的部分组成:

一个或多个DML 语句

一个 DDL(Data Definition Language 数据定义语言) 语句

一个 DCL(Data Control Language 数据控制语言) 语句

以第一个 DML 语句的执行作为开始

以下面的其中之一作为结束:

显示结束:  commit rollback

隐式结束(自动提交):  DDL语言,DCL语言, exit(事务正常退出)

隐式回滚(系统异常终了):  关闭窗口,死机,掉电

使用COMMIT ROLLBACK语句, 优点

确保数据完整性。

数据改变被提交之前预览。

将逻辑上相关的操作分组。

回滚到保留点:

使用 SAVEPOINT 语句在当前事务中创建保存点。

使用 ROLLBACK TO SAVEPOINT 语句回滚到创建的保存点。

自动提交在以下情况中执行:

DDL 语句。

DCL 语句。

不使用 COMMIT ROLLBACK 语句提交或回滚,正常结束会话。

会话异常结束或系统异常会导致自动回滚。

提交或回滚前的数据状态

改变前的数据状态是可以恢复的

执行 DML 操作的用户可以通过 SELECT 语句查询之前的修正

其他用户不能看到当前用户所做的改变,直到当前用户结束事务。

DML语句所涉及到的行被锁定, 其他用户不能操作。

提交后的数据状态

数据的改变已经被保存到数据库中。

改变前的数据已经丢失。

所有用户可以看到结果。

锁被释放, 其他用户可以操作涉及到的数据。

所有保存点被释放。

数据库的隔离级别

对于同时运行的多个事务, 当这些事务访问数据库中相同的数据时, 如果没有采取必要的隔离机制, 就会导致各种并发问题:

脏读: 对于两个事物 T1, T2, T1 读取了已经被 T2 更新但还没有被提交的字段. 之后, T2 回滚, T1读取的内容就是临时且无效的.

不可重复读: 对于两个事物 T1, T2, T1 读取了一个字段, 然后 T2 更新了该字段. 之后, T1再次读取同一个字段, 值就不同了.

幻读: 对于两个事物 T1, T2, T1 从一个表中读取了一个字段, 然后 T2 在该表中插入了一些新的行. 之后, 如果 T1 再次读取同一个表, 就会多出几行.

数据库事务的隔离性: 数据库系统必须具有隔离并发运行各个事务的能力, 使它们不会相互影响, 避免各种并发问题.

一个事务与其他事务隔离的程度称为隔离级别. 数据库规定了多种事务隔离级别, 不同隔离级别对应不同的干扰程度, 隔离级别越高, 数据一致性就越好, 但并发性越弱

 

Oracle 支持的 2 种事务隔离级别:READ COMMITED, SERIALIZABLE. Oracle 默认的事务隔离级别为: READ COMMITED

Mysql 支持 4 中事务隔离级别. Mysql 默认的事务隔离级别为: REPEATABLE READ

====================

 

datalink 数据库通信

 

创建表 必须首先要有权限

 

rowid维护一个地址,该地址指向在硬盘上的位置

DROP TABALE首先放入到了回收站

purge 彻底删除

select * from tab;

查看回收站

show recyclebin;

purge recyclebin;

 

视图时由一个表或多个表组成的逻辑表

create or replace tablename(empno,ename,

sal,deptno)

as

select empno,ename,sal,deptno from emp;

or replace 如果名字重复就替换

同样创建视图要有权限

 

序列默认一次创建20个值放入内存

序列可能不连续

Conn to hr/hr 切换用户

给用户加上视图权限

grant create view to scott;

权限的种类(session,table,sequence,view,procedure

 

rownum:伪列 

1.rownum 一旦生成就会不变

2.rownum 只能使用<= 不能使用> >=

 

 

@c:\sql.sql 运行脚本文件

 

 

delete 一条一条删除truncate 清空表效率高

delete可以回滚  truncate不可以

delete产生碎片 trunctate不产生

delete删除数据后 空间还在 不会释放空间

truncate 释放空间

 

分享到:
评论
1 楼 shamusoft 2011-06-13  
datalink 数据库通信

rowid维护一个地址,该地址指向在硬盘上的位置
DROP TABALE首先放入到了回收站
purge 彻底删除
select * from tab;
查看回收站
show recyclebin;
purge recyclebin;

视图时由一个表或多个表组成的逻辑表
create or replace tablename(empno,ename,
sal,deptno)
as
select empno,ename,sal,deptno from emp;
or replace 如果名字重复就替换
同样创建视图要有权限

grant create view to scott;

视图的优点是显示,更新很弱

序列默认一次创建20个值放入内存
序列可能不连续

相关推荐

Global site tag (gtag.js) - Google Analytics