第6章数据库方案对象本章主要内容•掌握表、索引的创建、查看、修改、删除操作;•了解Oracle9i数据库方案管理器中管理的数据库对象。本章重点和难点•重点:–表、索引的创建、查看、修改、删除操作•难点:–表、索引的创建、查看、修改、删除操作一、方案•方案:一系列数据库对象的集合,是数据库中存储数据的一个逻辑表示或描述。•并不是所有的数据库对象都是方案对象:•方案对象:表、索引、触发器、数据库链接、PL/SQL包、序列、同义词、存储过程、存储函数等•非方案对象:表空间、用户、角色、概要文件等二、管理表1、创建表•表是存储用户数据的基本结构。•建立表主要指定义下列信息:•列定义•完整性约束•表所在表空间•存储特性•可选择的聚集二、管理表1、创建表•企业管理控制台方式•命令行方式创建表的语法:CREATETABLE[方案名.]表名(字段名类型(长度)[字段约束][,字段名类型(长度)[字段约束]…])[TABLESPACE表空间名];例如:创建book表在SQLplus或SQLplusWorksheet中输入:createtablebook(idnumber(5)primarykey,xmvarchar2(10)notnull,ffromvarchar2(50)notnull)tablespaceanny01;•例如:创建test表空间上的region表。•CREATETABLEtest.region(•OFFICE_NUMNUMBER(3,0)NOTNULL,•REGION_CODENUMBER(8,0)NOTNULL,•REGION_NAMEVARCHAR2(20)NOTNULL);•关于主键与外键:•以学生表(学号,姓名,性别),班级表(班级编号,学号,班级名称)为例。•1、在学生表中将学号定义为主键,在班级表中将班级编号定义为主键,步骤:点“约束条件”,选择“primary”类型,在下面的表列中选择要设置为主键的列(例如,学号);•2、打开班级表设计,将学号定义为外键,步骤:点“约束条件”,选择“foreign”类型,选择引用方案(system),引用表(学生表),在下面的表列和引用列中都选择“学号”;•3、录入数据规则:必须先录入学生表的数据,再录入班级表数据,其中,班级表中“学号”字段的数据来源于学生表中“学号”的数据,即:必须在学生表中有“01”这个学号,才可以在班级表中用“01”这个学号的值;•4、删除数据规则:必须先删除班级表的有该学号的记录,才可以删除学生表该学号的记录;•注意:学生表中的“学号”字段的定义必须与班级表中“学号”字段定义完全一致(字段命名,类型,长度);(2)注意事项①创建表时要把较小的不为空的字段放在前面,可能为空的字段放在后面。②创建表时可以用中文的字段名,但最好还是用英文的字段名。③创建表时可以给字段加上默认值,例如DEFAULTSYSDATE。这样每次插入和修改时,不用程序操作这个字段都能得到动作的时间。④创建表时可以给字段加上约束条件。例如不允许重复UNIQUE,关键字PRIMARYKEY。2、维护表企业管理控制台方式命令行方式•查看表:例如:DESCbook;•修改表:ALTERTABLE[方案名.]表名[ADD(字段名类型(长度)[[,字段名类型(长度)…])];•表数据的维护:添加空数据行,删除、修改、插入•例如:修改region表结构,增加名称为DESC的字段。•ALTERTABLEtest.region(ADDDESCVARCHAR2(30));•ALTER语句的具体用法(1)改变表的名称,语句格式为:•ALTERTABLEtable1TOtable2;(2)在表的后面增加一个字段,语句格式为:•ALTERTABLEtableADDFIELDDESCRIPTION;(3)修改表里字段的定义描述,语句格式为:•ALTERTABLEtableMODIFYFIELDDESCRIPTION;(4)给表里的字段加上约束条件,语句格式为:•ALTERTABLEtableADDCONSTRAINTcons_namePRIMARYKEY•(field);•ALTERTABLEtableADDCONSTRAINTcons_nameUNIQUE(field);(5)把表放在或取出数据库的内存区,语句格式为:•ALTERTABLEtableCACHE;•ALTERTABLEtableNOCACHE;2、维护表删除表:DROPTABLE[方案名.]表名;•例如:删除引用该表的其它表的完整性约束。•DROPTABLEtest.regionCASCADECONSTRAINTS;•TRUNCATE语句•使用TRUNCATE语句,可以清空表里的所有记录,保留表的结构。TRUNCATE语句的格式为:•TRUNCATEtable;三、管理索引索引:类似于书中的目录,能够提高对表的查询速度。•索引是一种数据库对象。对于在表或聚集的索引列上的每一值将包含一项,为行提供直接的快速存取。在下列情况下,Oracle可利用索引改进性能:–按指定的索引列的值查找行。–按索引列的顺序存取表。三、管理索引1、创建索引1)企业管理控制台方式2)命令行方式CREATE[UNIQUE|BITMAP]INDEX[方案名.]索引名ON[方案名.]表或簇名(字段[,字段]…)[TABLESPACE表空间名];三、管理索引命令行方式创建索引:createindexindex_bonbook(id,xm);或者:CREATEINDEXtech_sqlONusepi.teacher(tech_title)TABLESPACEusersPCTFREE10INTTRANS2MAXTRANS255STORAGE(INITIAL64KNEXT64KMINEXTENTS1MAXEXTENTS20PCTINCREASE10);2、维护索引1)企业管理控制台方式2)命令行方式1)查看索引:DESCDBA_INDEXES;2)修改索引:ALTERINDEX•ALTERINDEXtest.idx_region•ONregion(office_num,region_name)3)删除索引:DROPINDEXDROPINDEXtest.idx_region;总结•Oracle9i数据库通使用“方案”来组织管理数据库对象;表是数据库最基本的对象,是数据实际存放的地方,应熟练掌握表、索引的创建、查看、修改、删除操作作业或实训•Oracle实验指导书上的实训三和习题•目的要求:•1表的创建和操作•2数据完整性和约束条件•3修改表结构•4索引创建和操作