oracle建表的時候同時創建主鍵,外鍵,注釋,約束,索引


--主鍵
create table emp (id number constraint id_pr primary key ,name1 varchar(8));
create table emp9 (id number ,name1 varchar(8) ,constraint aba_pr primary key(id,name1));
--外鍵
create table emp1(id number references emp(id),name varchar(8));

--復合外鍵
create table emp0(id number ,name varchar(8) ,constraint fk_nam1e foreign key(id,name) references emp9(id,name1));


--主鍵另外寫法
create table emp2(id number,name varchar(8),id1 number, constraint pk_id primary key(id),constraint fk_name foreign key(id1) references emp(id))
--check 約束的寫法
create table emp4(id number check(id in(1,2 ,3)),name varchar(8));

 
        
不帶約束名稱的:
 
        
create table userInfo (
 
        
id number(6) primary key,--主鍵
 
        
name varchar2(20) not null,--非空
 
        
sex number(1),
 
        
age number(3) default 18,
 
        
birthday date,
 
        
address varchar2(50),
 
         
         
        
email varchar2(25) unique,--唯一
 
        
tel number(11),
 
        
deptno number(2) references dept(deptno)—外鍵
 
        
);
 
        
 
        
 
        
帶約束名稱:
create table userInfo (
id number(6) constraint id_pk primary key,
name varchar2(20) constraint name_nn not null,
sex number(1),
age number(3) default 18,
birthday date,
address varchar2(50),
email varchar2(25) constraint email_uqe unique,
tel number(11),
deptno number(2) constraint dept_deptno_ref references dept(deptno)
);
 
        
 
        
列模式:
 
        
create table userInfo (
 
        
id number(6),
 
        
name varchar2(20),
 
        
sex number(1),
 
        
age number(3) default 18,
 
        
birthday date,
 
        
address varchar2(50),
 
         
         
        
email varchar2(25),
 
        
tel number(11),
 
        
deptno number(2),
 
        
constraint id_pk primary key (id),--也可以兩個以上,聯合主鍵
 
        
constraint dept_deptno_ref foreign key (deptno) references dept(deptno),
 
        
constraint emial_name_uqe unique (email, name)
 
        
);
 
        
Alter模式:
 
        
alter table userInfo add(msn varchar2(20));
 
        
alter table userInfo modify(msn varchar2(25));
 
         
         
        
alter table userInfo drop(msn);
 
        
 
        
 
        
alter table userInfo drop constraint id_pk;
 
        
alter table userInfo add constraint id_pk primary key (id);
 
        
3、創建視圖
 
        
create table v$_dept_view
 
        
as
 
        
select deptno, dname from dept;
 
        
 
        
 
        
--重新編譯視圖
 
        
alter view v$_dept_view compile;
 
        
提示:視圖一般是一個表或多個表的查詢或子查詢,這樣可以減少代碼量,但同時增加了對數據庫視圖的維護程度,如:某個表字段被刪除或是修改,視圖也要重新創建或修改,同時占用了數據庫的一部分空間;視圖就是一個虛擬的表格;
 
        
 
        
 
        
4、創建索引
 
        
普通索引:create index idx_dpt_dname on dept(dname);
 
        
聯合索引:create index idx_dept_dname_deptno on dept(dname, deptno);
 
        
--唯一索引
 
        
create unique index idx_emp_ename on scott.emp(ename);
 
        
--反向鍵索引
 
        
create index idx_emp_rev_no on scott.emp(empno) reverse;
 
        
--位圖索引
 
        
create bitmap index idx_emp_name on scott.emp(dname);
 
        
--索引組織表,一定要有主鍵
 
        
create table tab (
 
        
id int primary key,
 
        
name varchar2(20)
 
        
) organization index;
 
        
--索引組織表的insert效率非常低
 
        
 
        
 
        
--分區表索引
 
        
create index idx_name on table(col) local/global;
 
        
--索引分區
 
        
提示:當給表創建主鍵或唯一鍵約束時,系統也會創建一個約束給該字段;同樣創建索引也會占用數據庫空間;索引在訪問、查詢的時候效率有提高,但是在修改表的時候效率就會降低;
 
        
 
        
 
        
5、創建序列
 
        
create sequence seq;
 
        
select seq.nextval from dual;
 
        
insert into tab values(sql.nextval, ‘music’);
 
        
 
        
 
        
create sequence seqtab
 
        
start with 2 –從2開始
 
        
increment by 3—每次加3
 
        
nomaxvalue—沒有最大值
 
        
minvalue 1—最小值1
 
        
nocycle—不循環
 
        
nocache;--不緩存
 
        
 
        
 
        
--修改序列 ,不能修改起始值
 
        
alter sequence seqtab
 
        
maxvalue 1000;
 
        
 
        
 
        
6、創建同義詞
 
        
同義詞,顧名思義就是說別名、或是另一個名字。
 
        
create synonym scott_emp for scott.emp;
 
        
create public synonym scott_dept for scott.dept;
 
        
 
        
 
        
select * from scott_emp;
 
        
select * from scott_dept;
 
        
 
        
 
        
7、創建表空間
 
        
create tablespace HooMS
 
        
datafile 'E:\HooMS.dbf'
 
        
size 5M
 
        
autoextend on next 2M maxsize 10M;
 
        
 
        
 
        
--創建用戶、分配可以操作表空間
 
        
create user hoo
 
        
identified by hoo
 
        
default tablespace HooMS
 
        
temporary tablespace temp;
 
        
 
        
 
        
--創建表空間
 
        
create tablespace myMS
 
        
datafile 'c:\myMS.dbf'
 
        
size 1M
 
        
autoextend on;
 
        
 
        
 
        
--擴展表空間--修改表空間大小
 
        
alter database
 
        
datafile 'c:\myMS.dbf'
 
        
resize 2M;
 
        
 
        
 
        
--擴展表空間--添加數據文件
 
        
alter tablespace myMS
 
        
add datafile 'c:\myMS_2.dbf'
 
        
size 1M;
 
        
 
        
 
        
--設置dbf文件自動增長
 
        
alter database
 
        
datafile 'c:\myMS_2.dbf'
 
        
autoextend on next 2M maxsize 4M;
 
        
 
        
 
        
--表空間重命名
 
        
alter tablespace myMS
 
        
rename to hooMS;
 
        
 
        
 
        
--分離表空間(脫機)
 
        
alter tablespace hooMS
 
        
offline temporary;
 
        
 
        
 
        
--歸檔模式下脫機
 
        
alter tablespace hooMS
 
        
offline immediate;
 
        
 
        
 
        
--使表空間聯機
 
        
alter tablespace hooMS online;
 
        
 
        
 
        
--刪除無數據的表空間
 
        
drop tablespace hooMS;
 
        
 
        
 
        
--刪除帶數據的表空間
 
        
drop tablespace hooMS
 
        
including contents;

 轉自:http://blog.sina.com.cn/s/blog_8c10dd8f0101bete.html


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM