Oracle筆記 五、創建表、約束、視圖、索引、序列、同義詞、表空間

alter table userInfo add(msn varchar2(20));
 
1、建表
    create table userInfo (
       id number(6),
       name varchar2(20),
       sex number(1),
       age number(3),
       birthday date,
       address varchar2(50),
       email varchar2(25),
       tel number(11)
    );
 
2、創建約束
    不帶約束名稱的:
    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://www.cnblogs.com/hoojo/archive/2011/05/03/2035328.html 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章