您的位置:首页 > 数据库 > Oracle

Oracle笔记 五、创建表、约束、视图、索引、序列、同义词、表空间

2012-07-01 11:22 645 查看
altertableuserInfoadd(msnvarchar2(20));



1、建表

createtableuserInfo(

idnumber(6),

namevarchar2(20),

sexnumber(1),

agenumber(3),

birthdaydate,

addressvarchar2(50),

emailvarchar2(25),

telnumber(11)

);


2、创建约束

不带约束名称的:

createtableuserInfo(

idnumber(6)primarykey,--主键

namevarchar2(20)notnull,--非空

sexnumber(1),

agenumber(3)default18,

birthdaydate,

addressvarchar2(50),

emailvarchar2(25)unique,--唯一

telnumber(11),

deptnonumber(2)referencesdept(deptno)—外键

);


带约束名称:

createtableuserInfo(

idnumber(6)constraintid_pkprimarykey,

namevarchar2(20)constraintname_nnnotnull,

sexnumber(1),

agenumber(3)default18,

birthdaydate,

addressvarchar2(50),

emailvarchar2(25)constraintemail_uqeunique,

telnumber(11),

deptnonumber(2)constraintdept_deptno_refreferencesdept(deptno)

);


列模式:

createtableuserInfo(

idnumber(6),

namevarchar2(20),

sexnumber(1),

agenumber(3)default18,

birthdaydate,

addressvarchar2(50),

emailvarchar2(25),

telnumber(11),

deptnonumber(2),

constraintid_pkprimarykey(id),--也可以两个以上,联合主键

constraintdept_deptno_refforeignkey(deptno)referencesdept(deptno),

constraintemial_name_uqeunique(email,name)

);

Alter模式:

altertableuserInfoadd(msnvarchar2(20));

altertableuserInfomodify(msnvarchar2(25));

altertableuserInfodrop(msn);


altertableuserInfodropconstraintid_pk;

altertableuserInfoaddconstraintid_pkprimarykey(id);


3、创建视图

createtablev$_dept_view

as

selectdeptno,dnamefromdept;


--重新编译视图

alterviewv$_dept_viewcompile;

提示:视图一般是一个表或多个表的查询或子查询,这样可以减少代码量,但同时增加了对数据库视图的维护程度,如:某个表字段被删除或是修改,视图也要重新创建或修改,同时占用了数据库的一部分空间;视图就是一个虚拟的表格;


4、创建索引

普通索引:createindexidx_dpt_dnameondept(dname);

联合索引:createindexidx_dept_dname_deptnoondept(dname,deptno);

--唯一索引

createuniqueindexidx_emp_enameonscott.emp(ename);

--反向键索引

createindexidx_emp_rev_noonscott.emp(empno)reverse;

--位图索引

createbitmapindexidx_emp_nameonscott.emp(dname);

--索引组织表,一定要有主键

createtabletab(

idintprimarykey,

namevarchar2(20)

)organizationindex;

--索引组织表的insert效率非常低


--分区表索引

createindexidx_nameontable(col)local/global;

--索引分区

提示:当给表创建主键或唯一键约束时,系统也会创建一个约束给该字段;同样创建索引也会占用数据库空间;索引在访问、查询的时候效率有提高,但是在修改表的时候效率就会降低;


5、创建序列

createsequenceseq;

selectseq.nextvalfromdual;

insertintotabvalues(sql.nextval,‘music’);


createsequenceseqtab

startwith2–从2开始

incrementby3—每次加3

nomaxvalue—没有最大值

minvalue1—最小值1

nocycle—不循环

nocache;--不缓存


--修改序列,不能修改起始值

altersequenceseqtab

maxvalue1000;


6、创建同义词

同义词,顾名思义就是说别名、或是另一个名字。

createsynonymscott_empforscott.emp;

createpublicsynonymscott_deptforscott.dept;


select*fromscott_emp;

select*fromscott_dept;


7、创建表空间

createtablespaceHooMS

datafile'E:\HooMS.dbf'

size5M

autoextendonnext2Mmaxsize10M;


--创建用户、分配可以操作表空间

createuserhoo

identifiedbyhoo

defaulttablespaceHooMS

temporarytablespacetemp;


--创建表空间

createtablespacemyMS

datafile'c:\myMS.dbf'

size1M

autoextendon;


--扩展表空间--修改表空间大小

alterdatabase

datafile'c:\myMS.dbf'

resize2M;


--扩展表空间--添加数据文件

altertablespacemyMS

adddatafile'c:\myMS_2.dbf'

size1M;


--设置dbf文件自动增长

alterdatabase

datafile'c:\myMS_2.dbf'

autoextendonnext2Mmaxsize4M;


--表空间重命名

altertablespacemyMS

renametohooMS;


--分离表空间(脱机)

altertablespacehooMS

offlinetemporary;


--归档模式下脱机

altertablespacehooMS

offlineimmediate;


--使表空间联机

altertablespacehooMSonline;


--删除无数据的表空间

droptablespacehooMS;


--删除带数据的表空间

droptablespacehooMS

includingcontents;
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐