Oracle9i第4章 数据表

上传人:飞*** 文档编号:5500325 上传时间:2017-08-07 格式:PPT 页数:73 大小:701.50KB
返回 下载 相关 举报
Oracle9i第4章 数据表_第1页
第1页 / 共73页
Oracle9i第4章 数据表_第2页
第2页 / 共73页
Oracle9i第4章 数据表_第3页
第3页 / 共73页
Oracle9i第4章 数据表_第4页
第4页 / 共73页
Oracle9i第4章 数据表_第5页
第5页 / 共73页
点击查看更多>>
资源描述

《Oracle9i第4章 数据表》由会员分享,可在线阅读,更多相关《Oracle9i第4章 数据表(73页珍藏版)》请在金锄头文库上搜索。

1、第三章 数据表,使得学员能够学会如何通过2种方法-图形界面和命令行,在Oracle 9i系统实现数据表格的创建。,本章教学目标,创建表,可以利用CREATE TABLE语句实现建立一个全新的表,但前提是:数据库必须已经存在。基本语句格式为:create table tablename(columnname1 datatype default defaultvalue not null column_CONSTRAINT,columnname2 datatype default defaultvalue not null column_CONSTRAINT,CONSTRAINT ) tables

2、pace ;,CREATE TABLE USER. table_name( COLUMN1 DATATYPEDEFAULT EXPN COLUMN_CONSTRAINT |TABLE_CONSTRAINT , COLUMN1 DATATYPEDEFAULT EXPN COLUMN_CONSTRAINT |TABLE_CONSTRAINT . )CLUSTER CLUSTER (COLUMN1 ,COLUMN2 .) PCTFREE NPCTUSED NINITRANS NMAXTRANS NSTORAGE NTABLESPACE TABLESPACE ENABLE | DISABLE AS Q

3、UERY,其中:schema 包括基表的模式(缺省:当前用户的帐号)table_name 表名column 列名(字段名)datatype 列数据类型DEFAULT 当前列的缺省值(常数)Column CONSTRAINT 列约束Table_CONSTRAINT 表约束PCTFREE 用于更新(update)的空间百分比(1-99) 0表示在插入时完全填满数据块,缺省为10PCTUSED 为表的每个数据块保留的可用空间的最小百分比. 取值1-99,缺省为40。PCTFREE和PCTUSED的组合决定了将插入的数据放入已存在的数 据块还是放入一个新的块中。,INITRANS 指定一个在每一个数据

4、块中分配的事务入口的初始数1- 255,缺省为1,每一个更新块的事务都需要在块中有一个 事务入口(大小依OS),一般不需要指此参。MAXTRANS 指定用于更新分配给表的数据块的并发事务的最大数,1- 255,用户一般不应改此参。TABLESPACE 表空间。如果缺省则表建在用户缺省的表空间(如果 建立用户不指定表空间则该用户的缺省表空间为 system)。STORAGE 存储分配参数 INITIAL integer 初始大小 NEXT integer 下一次的大小 MINEXTENTS integer 最小分配次数 MAXEXTENTS integer 最大分配次数 PCTINCREASE

5、integer 增长百分比(=0),ENABLE 激活完整性约束DISABLE 取消完整性约束As subquery 建表中查出数据给新表,此语句如果使用,则 表的数据类型不需指定,而是继承原表的类型。FREELIST GROUP 在并行服务器中指定表或分类、索引组的列表 数目。FREEUST 在并行服务器中指定表、簇、索引的列表数。,定义列,创建表,最普通的数据类型是VARCHAR2、DATE和NUMBER。列定义了一个表所能存储的数据。由于有了前面的CREATE TABLE语句,就可以通过提供一个列名和一个数据类型来定义一个列。正确的语法如下:columnname datatypedefa

6、ult defaultvalue 指定默认值not null 是否充许为空column_CONSTRAINT列的约束 列是表定义时的必有元素。定义表时,可以没有约束,也可以没有索引,但不能没有列。其中,在列的定义时列名和数据类型是必须的,可以不指定默认值,也不需要在列上定义任何约束。,create table tab_1(id number(10),name varchar2(30)tablespace new_space;create table tab_2(id number(10),name varchar2(30)tablespace new_space;,在SCOTT模式下建立表em

7、p,并指定表空间和存储参数:Create table scott.emp( Empno number(5) primary key, Ename varchar2(15) not null, Job varchar2(10), Mgr number(5), Hiredate date default sysdate, Sal number(7,2) CHECK(sal100), Comm number(3) default 0.0 , Dept number CONSTRAINT dept_fkey References scott.dept)Tablespace users,PCTFREE

8、10 /用于指定BLOCK中必需保留的最小空间的比例PCTUSED 70 /当BLOCK中已经使用的空间降低到该数值以下时,该BLOCK才是可用的,达到或是超过这个数值的BLOCK是不可用的STORAGE ( INITIAL 50K NEXT 50k MAXEXTENTS 10 );,定义约束,Oracle提供了5种完整性约束:CheckNOT NULLUniquePrimaryForeign key,Check约束,创建表的Check约束使用CREATE TABLE语句,更改表的约束使用ALTER TABLE语句。语法:CONSTRAINT CONSTRAINT_name CHECK (co

9、ndition);Check约束可以被创建或增加为一个表约束,当Check约束保护多个数据列时,必须使用表约束语法。约束名是可选的并且如果这个名字不存在,那么oracle将产生一个以SYS_开始的唯一的名字。,CREATE TABLE userinfo (workno VARCHAR2(10), name VARCHAR2(40),sex VARCHAR2(1) CONSTRAINT chk_sex CHECK (sex in (M,F), isstatus VARCHAR2(1), birthdate DATE, CONSTRAINT chk_isstatus CHECK (isstatus

10、 in(-1,0,1);,Create table worker (empno number(4) primary key, name varchar2(10), age number(2) CHECK(age between 18 and 65), /* age number(2)CHECK( age =18 and age0 and sal+comm=5000) );,NOT NULL约束,NOT NULL约束应用在单一的数据列上,并且他保护的数据列必须要有数据值。缺省状况下,ORACLE允许任何列都可以有NULL值。某些商业规则要求某数据列必须要有值,NOT NULL约束将确保该列的所有

11、数据行都有值。,CREATE TABLE userinfo (workno VARCHAR2(10), name VARCHAR2(40) NOT NULL,sex VARCHAR2(1), isstatus VARCHAR2(1), birthdate DATE);,在建立表过程中对有限制的列使用NOT NULL:CREATE TABLE CHECKUP_HISTORY(CHECKUP_NO NUMBER(10,0) NOT NULL,ID_NO NUMBER(10,0),CHECKUP_TYPE VARCHAR2(30),CHECKUP_DATE DATE,DOCTOR_NAME VARC

12、HAR2(50);,对于NOT NULL的ALTER TABLE语句与其他约束稍微有点不同。ALTER TABLE userinfo MODIFY name NOT NULL;ALTER TABLE userinfo MODIFY name NULL;,唯一性约束,唯一性约束可以保护表中多个数据列,保证在保护的数据列中任何两行的数据都不相同。唯一性约束与表一起创建,在唯一性约束创建后,可以使用ALTER TABLE语句修改。,语法:column_name data_type CONSTRAINT CONSTRAINT_name UNIQUE;如果唯一性约束保护多个数据列,那么唯一性约束要作为表

13、约束增加。语法:CONSTRAINT CONSTRAINT_name (column) UNIQUE USING INDEX TABLESPACE (tablespace_name) STORAGE (stored clause),唯一性约束由一个B-tree索引增强,约束定义中的using index子句允许读者为oracle建立的用来实施约束的索引指定一个表空间和其他参数。Using index子句只适用于主键和唯一键约束。CREATE TABLE语句在创建唯一性约束的同时也给目标数据列建立了一个唯一的索引。,CREATE TABLE userinfo (workno VARCHAR2(10), name VARCHAR2(40),sex VARCHAR2(1), isstatus VARCHAR2(1), birthdate DATE,CONSTRAINT unq_userinfo_workno UNIQUE (workno) USING INDEX TABLESPACE indx STORAGE (INITIAL 1M NEXT 10M PCTINCREASE 0);,

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 中学教育 > 其它中学文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号