美麗Oracle之-第四天 備份、還原、表空間、序列、視圖
一、 邏輯備份:
1) 導出(備份)export
2) 導入(還原)import
導出:
1、 導出當前用戶下的表
exp 用戶名/密碼 tables=(表1,……表n) file=路徑+文件名.dmp
如:
exp scott/tiger tables=(emp) file=c:\1.dmp
2、 導出其他用戶下的表:(administrator)
exp 管理員/密碼 tables(用戶.表1,……用戶.表n) file=路徑+文件名.dmp
如:
exp system/manager tables=(scott.emp) file=c:\1.dmp
3、 導出當前用戶的方案:
exp 用戶名/密碼 file=路徑+文件名.dmp
如:
exp scott/tiger file=c:\1.dmp
4、 導出其他用戶的方案:(administrator)
exp 管理員/密碼 owner=用戶名 file=路徑+文件名.dmp
如:
exp system/manager owner=scott file=c:\1.dmp
導入:
1、 導入表到當前入戶下:imp 用戶名/密碼 tables=(表1,……表n) file=路徑+文件名.dmp
如:
imp scott/tiger tables=(emp) file=c:\1.dmp
2、 導入表到其他用戶下:
imp 管理員/密碼 touser=用戶名 tables=(表1,……表n) file=路徑+文件名.dmp
如:
imp system/manager touser=scott tables(emp) file=c:\1.dmp
3、 導入方案到當前用戶下:
imp 用戶名/密碼 file=路徑+文件名.dmp
如:
imp scott/tiger file=c:\1.dmp
4、 導入方案到其他用戶下:(administrator)
imp 管理員/密碼 file=路徑+文件名.dmp fromuser=用戶1 touser=用戶2
如:
imp system/manager file=c:\1.dmp fromuser=scott touser=tiger
二、 表空間的使用:
1、 建立用戶表空間:
create tablespace 表空間名 datafile
‘路徑+文件1.dbf’ size 大小MB,
‘路徑+文件n.dbf’ size 大小MB,
2、 建立臨時表空間:
create temporary tablespace 表空間名 temfile
‘路徑+文件1.dbf’ size 大小MB,
建表時沒有指定表空間,使用用戶的默認表空間。建表時主鍵和唯約束會產生索引,沒有指定時同樣也適用用戶默認的空間
建表時不要使用系統表空間,會使Oracle系統性能下降
3、 索引表空間:
命令與建用戶表空間相同,以名稱區別
注:
Oracle可以將不同對象分別存在不同的表空間中,提高系統性能
4、 建立表時指定表空間:
create table 表名
(
字段1 類型 [primary key using index tablespace 索引表空間名]
……
字段n 類型 [約束]
)
tablespace 用戶表空間
5、 建索引命令:
create index 索引名 on 表 (字段) [tablespace 索引表空間名]
注:
表空間大小就是表空間中數據文件的大小之和
6、 修改表空間:
1) 修改現有的數據文件/臨時文件大小
alter database datafile/tempfile ‘路徑+文件名.dbf’ resize 大小MB
2) 給現有的表空間增加數據文件/臨時文件
alter tablespace 表空間名 datafile/tempfile ‘路徑+文件名.dbf’ size 大小MB
7、 刪除表空間:
drop tablespace 表空間名
drop tablespace 表空間名 including contents and datafiles
三、 序列:
Oracle中的序列是一個獨立的對象,可以產生連續並唯一的編號,相當於SQLServer中的identity
1、 建立序列:
create sequence 序列名
[
increment by 值 增量
start with 值 初值
minvalue 值 最小值
maxvalue 值 最大值
cycle/nocyle 是否循環
cache 值/nocache 是否放入緩存區
]
2、 序列中的兩個偽列:
1)序列.nextval 取序列的下一個值
2)序列.currval 取序列當前值,在這之前必須使用一次nextval
3、向表中寫入序列:
insert into emp values (seq1.nextval,’a’)
4、修改序列:
alter sequence 序列名
[
increment by 值
minvalue 值
maxvalue 值
cycle/nocyle
cache 值/nocache
]
注:修改序列時,不可修改初值
5、 刪除序列:
drop sQQuence 序列名
四、 視圖:
是一個虛擬表,只存放select語句,真正的數據來源於表
1、 建立視圖:
create or replace vIEw 視圖名
as
select 語句
[with check option]
·create or replace 創建和修改
·with check option 檢查數據是否符合視圖要求
1) 視圖中的數據與表的數據一一對應,視圖可以改,表也可以改,當select語句中只存在一個表時可修改
2) 使用視圖時不要使用update,盡量全使用查詢
2、 優點:
1) 可重復利用
2) 安全
3) 提高效率
3、 刪除視圖:
drop vIEw 視圖名