导出某个用户下所指定的表:exp 用户名、密码
导入表:imp 用户名/密码
导出整个数据库需要管理员的权限
truncate table 表名:此命令删除表后,再重新创建结构与删除的那张表一模一样的表
dml:数据操作语言
ddl:数据定义语言
dcl:数据控制语言
创建保存点:savepoint 保存点名
回滚到保存点:rollback
注意:(一旦提交了事务就不能回退到保存点保存点不能多次回退)
对一张表增加字段: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)
这是oracle缺省的事务隔离级别;保证不会出现脏读;但可能出现非重复读和幻读
(2)
可以保证不出现脏读、不可重复读、幻读
(3)
可以保证不出现脏读、不可重复读、幻读
(4)
serializable可以执行dml语句
red
维护数据的完整性:
有三种方法:约束、触发器、应用程序(过程、函数)
1.
(1)
用于指定某列的值不可以是空值
(2)
用于指定某列的值不能重复,但是可以为null
(3)
用于唯一的标识表行的数据,当定义主键约束后,该列不但不能重复而且不能为null;
primary key与unique的区别:
一个表可以有多个unique。但是只能有一个主键
每张表都应该有一个主键
unique的列的值可以为空但是primary
primary key所在的列,会自动创建索引;但是unique不会自动创建索引
(4)
外键指向主键列也可以指向unique列
外键列和主键列的数据类型要一致
建表时,先建主表再建从表,删除先删从表,后删主表
外键列的值必须在主键列存在
外键列可以为null
外键表指向主键表关键词:references
(5)
用于强制数据必须满足的条件
如果在建表时忘记建立必要的约束,则可以在建表后使用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.视图有利于提高安全性;比如:不同的用户可以查看不同的视图