mysql 数据泵导入导出_【Oracle篇】约束和数据泵导入导出
-- : 建立一個(gè)用戶,以下的操作在本用戶下(例如用戶名為 test)
create user test identified by test;
-- : 進(jìn)入sys用戶,分別在test下建立emp和dept表
create table test.emp as select * from scott.emp;
create table test.dept as select * from scott.dept;
-- 使用命令給上題的表建立上主外鍵
alter table emp add constraints pk_empno primary key(empno);
alter table dept add constraints pk_deptno primary key(deptno);
alter table emp add constraints fk_de_em foreign key(deptno) references dept(deptno);
-- 導(dǎo)出這個(gè)用戶
--1、連接Oracle數(shù)據(jù)庫
SQL> conn / as sysdba
--2、創(chuàng)建一個(gè)操作目錄
SQL> create directory chenfeng_dir as 'D:\北民2014\7.1\dump';
--注意同時(shí)需要使用操作系統(tǒng)命令在硬盤上創(chuàng)建這個(gè)物理目錄。
--目錄已創(chuàng)建。
--3、分配目錄對(duì)象my_dir使用權(quán)限,給需要導(dǎo)出的用戶
SQL>grant read,write on directory chenfeng_dir to chenfeng;
C:\>expdp chenfeng/chenfeng directory=chenfeng_dir dumpfile=20140701_schema_chenfeng.dmp schemas=chenfeng logfile=chenfeng.log;
--: 刪除這個(gè)用戶
SQL> drop user chenfeng cascade;
--: 導(dǎo)入這個(gè)用戶看看是否成功。
-- 用戶的導(dǎo)入 ----------
--1、連接Oracle數(shù)據(jù)庫
SQL> conn / as sysdba
--2、創(chuàng)建一個(gè)導(dǎo)入操作目錄
SQL> create directory chenfeng_dir as 'D:\北民2014\7.1\dump';
--3、創(chuàng)建用戶,并分配權(quán)限
SQL> create user chenfeng identified chenfeng;
SQL> grant connect,resource to chenfeng;
SQL> grant read,write on directory chenfeng_dir to chenfeng;
--4、導(dǎo)入用戶
C:\>impdp chenfeng/chenfeng directory=chenfeng_dir dumpfile=20140701_schema_chenfeng.dmp schemas=chenfeng;
--------------------------------------------
-- 熟悉對(duì)約束操作的命令:
--建立列時(shí)、建立表時(shí)間、建立表后。
-- 一、主鍵加約束
--1-建立列時(shí)
create table student(
sno number primary key,
sname varchar2(20)
);
drop table student;
--2-建立表時(shí)間
create table student(
sno number,
sname varchar2(20),
primary key(sno)
);
--3-建立表后。
create table student(
sno number,
sname varchar2(20)
);
alter table student add constraints pk_s primary key(sno);
-- 二、外鍵加約束
--1-建立列時(shí)
drop table teacher;
create table teacher(
tno number references student(sno),
tname varchar2(20),
primary key(tno)
);
--2-建立表時(shí)間
create table teacher(
tno number,
tname varchar2(20),
constraints fk_t foreign key(tno) references student(sno)
);
--3-建立表后。
create table teacher(
tno number,
tname varchar2(20)
);
alter table teacher add constraints fk_t foreign key(tno) references student(sno);
-- 二、非空加約束
--1-建立列時(shí)
drop table teacher;
create table teacher(
tno number,
tname varchar2(20) not null
);
--2-建立表后
create table teacher(
tno number,
tname varchar2(20)
);
alter table teacher modify tname not null;
-- 二、獨(dú)立加約束
--1-建立列時(shí)
drop table teacher;
create table teacher(
tno number unique,
tname varchar2(20)
);
--2-建立表時(shí)間
create table teacher(
tno number,
tname varchar2(20),
constraints uq_t unique(tno)
);
--2-建立表后
create table teacher(
tno number,
tname varchar2(20)
);
alter table teacher modify tname unique;
-- 3.5、檢查約束:用戶表列數(shù)據(jù)必須要滿足的自定義條件。
-- a、定義列的時(shí)候定義:
create table tab(
tid number,
tage number constraint ck_tage check(tage>=18)
);
-- b、定義表的時(shí)候定義:
create table tab(
tid number,
tsex number(1),
constraint ck_tage check(tsex in(0,1))
);
-- c、定義表后定義:
create table tab(
tid number,
tsex number(1));
alter table tab add constraint ck_tage check(tsex in(1,0));
-- 查看約束
select constraint_name,constraint_type
from user_constraints where table_name='EMP';
-- 外鍵約束的“級(jí)聯(lián)刪除”、“級(jí)聯(lián)置空” 設(shè)置
create table dept2 as select * from dept;
alter table dept2 add constraint pk_dept2 primary key(deptno);
create table emp2 as select *from emp;
alter table emp2 add constraint pk_emp2 primary key(empno);
-- 刪除約束
alter table emp2 drop constraint fk_e2_d2;
-- 設(shè)定級(jí)聯(lián)刪除外鍵約束
alter table emp2 add constraint fk_e2_d2 foreign key(deptno) references dept2(deptno) on delete cascade;
-- 設(shè)定級(jí)聯(lián)置空外鍵約束
alter table emp2 add constraint fk_e2_d2 foreign key(deptno) references dept2(deptno) on delete set null;
delete dept2 where deptno=20;
-- 4、視圖 -------------------------
-- 需要分配給scott用戶視圖權(quán)限
grant create view to scott;
-- 視圖:沒有物理數(shù)據(jù),僅僅捆綁了一個(gè)查詢的虛擬數(shù)據(jù)源。
-- 建立視圖:
create or replace view v_dept as select * from dept;
update dept set dname=lower(dname);
-- 視圖的分類:
-- 1 簡單視圖:子查詢僅僅涉及一張表,并且沒有數(shù)據(jù)變型。
-- 視圖數(shù)據(jù)可以對(duì)應(yīng)到物理數(shù)據(jù)的ROWID
-- 簡單視圖,可以通過對(duì)視圖做DML操作,而修改物理數(shù)據(jù)。
update v_dept set dname=upper(dname);
-- 2 復(fù)雜視圖:子查詢涉及多張表,或者有數(shù)據(jù)變型。
-- 復(fù)雜視圖,不能通過對(duì)視圖做DML操作,而修改物理數(shù)據(jù)。
與50位技術(shù)專家面對(duì)面20年技術(shù)見證,附贈(zèng)技術(shù)全景圖總結(jié)
以上是生活随笔為你收集整理的mysql 数据泵导入导出_【Oracle篇】约束和数据泵导入导出的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: win8 pe工具箱怎么用 win8 p
- 下一篇: mysql时间复杂度o的n次方_MySQ