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

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

2014-10-27 23:36 956 查看
[code]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;
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐