oracle 约束 保存点 视图
2015-07-06 14:45
375 查看
导出某个用户下所指定的表:exp 用户名、密码
导入表:imp 用户名/密码
导出整个数据库需要管理员的权限
truncate table
表名:此命令删除表后,再重新创建结构与删除的那张表一模一样的表
dml:数据操作语言
ddl:数据定义语言
dcl:数据控制语言
创建保存点:savepoint 保存点名
回滚到保存点:rollback to
保存点名
注意:(一旦提交了事务就不能回退到保存点保存点不能多次回退)
对一张表增加字段:alter table 表名 add 字段名
字段类型
修改字段的数据类型:alter table 表名 modify 字段名
字段类型
删除一个字段:alter table 表名 drop column
字段
修改字段名:alter table 表名 rename column 旧字段名
to 新字段名
查看回收站:show recyclebin
清空回收站:purge recyclebin
删除表不让其进入回收站:drop table 表名 purge
注意:管理员用户删除的自己表不会进入回收站
oracle事务处理:
概念:事务是把对数据库的一系列操作看做一个整体,要么全部成功,要么全部失败,利用事务可以保证数据的完整性,事务具有原子性
如果一个事务中,只有select,那么事务控制可以忽略,如果一个事务有多个(update,insert,delete)则要考虑事务
事务的隔离级别
1
概念:隔离级别定义了事务与事务之间的隔离程度
[b]oracle有三种隔离级别:[/b]
(1)
red
commited
这是oracle缺省的事务隔离级别;保证不会出现脏读;但可能出现非重复读和幻读
(2)
serializable
可以保证不出现脏读、不可重复读、幻读
(3)
red
only
可以保证不出现脏读、不可重复读、幻读
(4)
serializable与red only区别
serializable可以执行dml语句
red
only
只能读取
维护数据的完整性:
有三种方法:约束、触发器、应用程序(过程、函数)
1.
约束
(1)
not null(非空)
用于指定某列的值不可以是空值
(2)
unique(唯一)
用于指定某列的值不能重复,但是可以为null
(3)
primary key(主键)
用于唯一的标识表行的数据,当定义主键约束后,该列不但不能重复而且不能为null;
primary key与unique的区别:
一个表可以有多个unique。但是只能有一个主键
每张表都应该有一个主键
unique的列的值可以为空但是primary
key的值不能为空
primary
key所在的列,会自动创建索引;但是unique不会自动创建索引
(4)
foreign key(外键)
外键指向主键列也可以指向unique列
外键列和主键列的数据类型要一致
建表时,先建主表再建从表,删除先删从表,后删主表
外键列的值必须在主键列存在
外键列可以为null
外键表指向主键表关键词:references
(5)
check(检查)
用于强制数据必须满足的条件
如果在建表时忘记建立必要的约束,则可以在建表后使用alter table命令为表增加约束,但是要注意:增加not null约束时,需要使用modify选项,而增加其他四种约束则使用add选项
列级定义和表级定义:
在定义表后,直接在列后定义的约束,称为列级定义
表级定义,把各个列都定义发完毕后,在分别说明约束
列级定义基本语法:
constraint 约束名 primary
key(字段)
constraint 约束名 foreign key(字段)
references
主表(字段)
constraint 约束名 unique
(字段)
not
null(字段)
constraint check
(字段条件)
表级定义:
[b]alter table
表名 add
constraint 约束名
约束种类(字段)[/b]
非空约束:alter table
表名 modify 字段名 not
null
级联删除:
当外键表的外键指向主键表的主键列,当删除它所指向的那个主键列的那个数据时,会一同把指向它的那条数据也删除
在建立外键约束时,在后面加上:on delete
cascade
另外一种删除方式;先置空,在删除:
当删除它所指向的那个主键列的那条数据时,先把指向它的那条数据所指向的主键列设置为null,然后在删除主键那条数据
用法:在建立外键约束时,在后面加上:on delete set
null
创建视图:
create view 视图名
查询语句;
查看视图:
select* from
视图名;
注意:普通用户不具备创建视图的权限;必须管理员给它分配创建视图的权限(grant create view to
用户名)可以利用视图来修改表中的数据,但是一定不要那样做;必要时,在创建视图的时候在后面加上:
with read only;把它设为只读
删除视图:drop view
视图名
视图与表的区别:
1.表需要占用磁盘空间,视图不需要
2.视图不能添加索引
3.使用视图可以简化复杂查询
4.视图有利于提高安全性;比如:不同的用户可以查看不同的视图
导入表:imp 用户名/密码
导出整个数据库需要管理员的权限
truncate table
表名:此命令删除表后,再重新创建结构与删除的那张表一模一样的表
dml:数据操作语言
ddl:数据定义语言
dcl:数据控制语言
创建保存点:savepoint 保存点名
回滚到保存点:rollback to
保存点名
注意:(一旦提交了事务就不能回退到保存点保存点不能多次回退)
对一张表增加字段:alter table 表名 add 字段名
字段类型
修改字段的数据类型:alter table 表名 modify 字段名
字段类型
删除一个字段:alter table 表名 drop column
字段
修改字段名:alter table 表名 rename column 旧字段名
to 新字段名
查看回收站:show recyclebin
清空回收站:purge recyclebin
删除表不让其进入回收站:drop table 表名 purge
注意:管理员用户删除的自己表不会进入回收站
oracle事务处理:
概念:事务是把对数据库的一系列操作看做一个整体,要么全部成功,要么全部失败,利用事务可以保证数据的完整性,事务具有原子性
如果一个事务中,只有select,那么事务控制可以忽略,如果一个事务有多个(update,insert,delete)则要考虑事务
事务的隔离级别
1
概念:隔离级别定义了事务与事务之间的隔离程度
[b]oracle有三种隔离级别:[/b]
(1)
red
commited
这是oracle缺省的事务隔离级别;保证不会出现脏读;但可能出现非重复读和幻读
(2)
serializable
可以保证不出现脏读、不可重复读、幻读
(3)
red
only
可以保证不出现脏读、不可重复读、幻读
(4)
serializable与red only区别
serializable可以执行dml语句
red
only
只能读取
维护数据的完整性:
有三种方法:约束、触发器、应用程序(过程、函数)
1.
约束
(1)
not null(非空)
用于指定某列的值不可以是空值
(2)
unique(唯一)
用于指定某列的值不能重复,但是可以为null
(3)
primary key(主键)
用于唯一的标识表行的数据,当定义主键约束后,该列不但不能重复而且不能为null;
primary key与unique的区别:
一个表可以有多个unique。但是只能有一个主键
每张表都应该有一个主键
unique的列的值可以为空但是primary
key的值不能为空
primary
key所在的列,会自动创建索引;但是unique不会自动创建索引
(4)
foreign key(外键)
外键指向主键列也可以指向unique列
外键列和主键列的数据类型要一致
建表时,先建主表再建从表,删除先删从表,后删主表
外键列的值必须在主键列存在
外键列可以为null
外键表指向主键表关键词:references
(5)
check(检查)
用于强制数据必须满足的条件
如果在建表时忘记建立必要的约束,则可以在建表后使用alter table命令为表增加约束,但是要注意:增加not null约束时,需要使用modify选项,而增加其他四种约束则使用add选项
列级定义和表级定义:
在定义表后,直接在列后定义的约束,称为列级定义
表级定义,把各个列都定义发完毕后,在分别说明约束
列级定义基本语法:
constraint 约束名 primary
key(字段)
constraint 约束名 foreign key(字段)
references
主表(字段)
constraint 约束名 unique
(字段)
not
null(字段)
constraint check
(字段条件)
表级定义:
[b]alter table
表名 add
constraint 约束名
约束种类(字段)[/b]
非空约束:alter table
表名 modify 字段名 not
null
级联删除:
当外键表的外键指向主键表的主键列,当删除它所指向的那个主键列的那个数据时,会一同把指向它的那条数据也删除
在建立外键约束时,在后面加上:on delete
cascade
另外一种删除方式;先置空,在删除:
当删除它所指向的那个主键列的那条数据时,先把指向它的那条数据所指向的主键列设置为null,然后在删除主键那条数据
用法:在建立外键约束时,在后面加上:on delete set
null
创建视图:
create view 视图名
查询语句;
查看视图:
select* from
视图名;
注意:普通用户不具备创建视图的权限;必须管理员给它分配创建视图的权限(grant create view to
用户名)可以利用视图来修改表中的数据,但是一定不要那样做;必要时,在创建视图的时候在后面加上:
with read only;把它设为只读
删除视图:drop view
视图名
视图与表的区别:
1.表需要占用磁盘空间,视图不需要
2.视图不能添加索引
3.使用视图可以简化复杂查询
4.视图有利于提高安全性;比如:不同的用户可以查看不同的视图
相关文章推荐
- oracle单行函数总结
- oracle基础笔记day1
- kettle连接oracle出现Error connecting to database: (using class oracle.jdbc.driver.OracleDriver)
- oracle手动卸载
- arcsde10.1 for oracle
- oracle字符串处理函数大全
- oracle分析函数使用
- MYBATIS: Use Oracle Function
- Oracle Instanc Client安装命令工具
- oracle 学习摘录
- Oracle变量定义的三种方式(define,variable,declare)学习笔记
- 利用Oracle分析函数实现多行数据合并为一行
- APP-PER-50022: Oracle Human Resources could not retrieve a value for the User Type profile option.
- Oracle11g用户密码过期
- ORA-12899:列"DP"."META_KPI"."KPI_UNIT"的值太大(实际值:24,最大值20)
- C#中一次执行多条Oracle语句出现ORA-00911,invalid character
- Oracle中job的使用详解
- 总结ORACLE和MYSQL的一些区别
- oracle临时表
- Oracle Log Miner工具说明