oracle 约束 保存点 视图

本文介绍了Oracle数据库的基本操作,包括表的增删改查、事务处理、数据完整性维护及视图的使用等,并详细解释了各种约束的作用及应用场景。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

导出某个用户下所指定的表: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   概念:隔离级别定义了事务与事务之间的隔离程度

oracle有三种隔离级别:

(1)   red  commited

这是oracle缺省的事务隔离级别;保证不会出现脏读;但可能出现非重复读和幻读

(2)   serializable

可以保证不出现脏读、不可重复读、幻读

(3)   red  only

可以保证不出现脏读、不可重复读、幻读

(4)   serializablered 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 (字段条件)

 

表级定义:

alter table 表名 add constraint 约束名 约束种类(字段)

非空约束: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.视图有利于提高安全性;比如:不同的用户可以查看不同的视图

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值