Oracle数据表的创建与管理.ppt
第6章Oracle数据表的创建与管理本本章章概概述述熟悉掌握以OEM与命令行方式管理表、设置完整性约束和管理索引的方法 6.2管理数据表管理数据表6.1 方案的方案的概概念念6.3管理完整性约束管理完整性约束 6.4管理索引管理索引【本章【本章教学教学导导航】航】岗位需求位需求调查知识技能目标(1)掌握方案的概念、方案与用户以及方案与方案对象的关系(2)了解Oracle 10g数据库方案对象管理的方法(3)掌握表、完整性约束和索引的概念与作用(3)掌握以OEM与命令行方式管理表、设置完整性约束和管理索引的方法本章重点掌握以OEM与命令行方式管理表、设置完整性约束和管理索引的方法本章难点命令行方式管理表、设置完整性约束和管理索引的方法教学方法理论实践一体化,教、学、做合一课时建议2课时(含课堂实践)【任【任务务描述】描述】(1)使用OEM方式和命令行方式为“StudentData”数据库创建表。(2)使用OEM方式和命令行方式查看表结构。(3)使用ADD关键字向“学生信息”表添加“SDT_AGE/年龄”字段,该字段的“数据类型”为Number,“字段大小”为“2”;并查看修改后表的字段信息。(4)使用OEM方式和命令行方式删除表。(5)创建/删除CHECK约束。(6)创建/删除PRIMARY KEY和UNIQUE约束。(7)创建/删除FOREIGN KEY约束。(8)使用OEM方式和命令行方式创建索引。(9)以命令行方式查看索引信息。(10)使用命令行方式修改“教师编号索引”,修改项“保留用于更新的空闲空间的百分比”为25%,“行事处理的最大数量”为100。(11)使用命令行方式删除“教师编号索引”。【知【知识讲识讲解解与与操作示范】操作示范】-6.1方案方案 所谓方案,就是一系列数据库对象的集合,是数据库中存储数据的一个逻辑表示或描述。Oracle 10g数据库中并不是所有的数据库对象都是方案对象,方案对象有表、索引、触发器、数据库链接、PL/SQL包、序列、同义词、视图、存储过程、存储函数等,非方案对象有表空间、用户、角色、概要文件等。在Oracle 10g数据库中,每个用户都拥有自己的方案,创建了一个用户,就创建了一个同名的方案,方案与数据库用户是对应的。但在其他关系型数据库中两者却没有这种对应关系,所以方案和用户是两个完全不同的概念,要注意加以区分。在默认情况下,一个用户所创建的所有数据库对象均存储在自己的方案中。例如:“Whb”用户创建了一个表“StudentInfo”,则“Whb”用户查询此表数据时,使用命令“SELECT*FROM StudentInfo;”但是,如果其他用户查询此表数据时,必须使用命令“SELECT*FROM WHB.StudentInfo;”。切换方案的方法是:切换用户并登录到数据库。【知【知识讲识讲解解与与操作示范】操作示范】-6.2管理管理数数据表据表(1)请使用OEM方式创建名为“学生信息”的学生信息表,所属方案为“StduentUser”,使用表空间为“StudentInfo”。该表的字段结构如表6-2所示。创建数据表【任务6-1】请分别使用OEM方式和命令行方式创建表英文字段名中文字段名数据类型字段长度是否为空默认值STD_Num学号Varchar212是STD_Name姓名Varchar28否STD_Sex性别Varchar 22否STD_Id身份证号Varchar 218否STD_ClassNum班级编号Varchar 210否STD_NPNum籍贯编号Varchar 22否STD_SRNum学籍编号Varchar 22否STD_PANum政治面貌编号Varchar 22否STD_NationalityNum民族编号Varchar 22否【知【知识讲识讲解解与与操作示范】操作示范】-6.2管理管理数数据表据表(2)使用命令行方式创建名为“教师信息”的教师信息表,所属方案为“StudentUser”,使用表空间为“StudentInfo”。该表的结构如表6-3所示。创建数据表英文字段名中文字段名数据类型字段长度是否为空默认值THR_Num教师编号Varchar214是THR_Name姓名Varchar 220否THR_Sex性别Varchar 22否THR_Id身份证号Varchar 220否THR_SGNum学历编号Varchar 240否THR_TitleNum职称编号Varchar 240否THR_SRNum政治面貌编号Varchar 210否THR_DPNum部门编号Varchar 210否【知【知识讲识讲解解与与操作示范】操作示范】-6.2管理管理数数据表据表1.【OEM方式-操作步骤】(1)使用DBA用户“System”登录到OEM,单击“管理”“表”链接,进入如图6-1所示的页面。(2)单击【创建】按钮,将进入如图6-2所示的页面。(3)选择默认项,单击【继续】按钮,将进入如图6-3所示的页面。(4)对其他的表结构设置页面使用默认项,单击【确定】按钮,将成功建立该表。2.【命令行方式-操作步骤】(1)使用DBA用户“System”登录到iSQL*Plus,输入如图6-8所示的命令行,单击【执行】按钮。【知【知识讲识讲解解与与操作示范】操作示范】-6.2管理管理数数据表据表【OEM方式-操作步骤】(1)使用DBA用户“System”登录到OEM,单击“管理”“表”链接,进入表管理页面,如图6-9所示。(2)在此页面中单击【】按钮,进入方案搜索页面,并选中“STUDENTUSER”方案,然后单击【选择】按钮。之后,页面转回到如图6-9所示的页面,此时按下【开始】搜索按钮,系统将自动分离出只属于“STUDENTUSER”方案的对象,如图6-10所示。(3)在此页面选中“学生信息”表,然后单击【查看】按钮,即可查看表的结构信息,如图6-11所示。【命令行方式-操作步骤】【命令格式】格式一:DESC;用于查看数据字典中的参数信息。格式二:SELECT FROM WEHRE expresstion;用于查看表的存储信息。格式三:DESC;用于表内字段信息。【参数说明】expresstion:用于指定查询条件的条件表达式。详细说明请参考教材第8章 6.2.2维护数据表【任务6-2】查看“STUDENTUSER.学生信息”表的结构。【知【知识讲识讲解解与与操作示范】操作示范】-6.2管理管理数数据表据表【命令格式】ALTER TABLE.ADD(,)DROPCOLUMN|(,)MODIFY(字段类型DEFAULT|NOT NULL|NULL,字段类型DEFAULT|NOT NULL|NULL);【参数说明】ALTER:为修改关键字。ADD:表示增加字段。DROP:表示删除字段。MODIFY:表示修改字段。【操作步骤】使用DBA用户“System”登录iSQL*Plus,输入如图6-15所示的命令行,然后单击【执行】按钮。【任务6-3】使用ADD关键字向“学生信息”表添加“年龄”字段,该字段的“数据类型”为number,“字段长度”为2,并查看修改之后的表字段信息。【知【知识讲识讲解解与与操作示范】操作示范】-6.2管理管理数数据表据表【任务准备】在Scott方案创建表“学生信息”和“教师信息”,表结构请参考表6-1和表6-2。(1)使用OEM方式删除“SCOTT.学生信息”表。【操作步骤】使用DBA用户“System”登录OEM,进入到如图6-10所示的页面,并选中要删除的表,单击【使用选项删除】按钮,即可进入“使用选项删除”页面,如图6-17所示。使用默认项,单击【是】按钮,即可删除该表。(2)使用命令行方式删除“Scott.教师信息”表【操作步骤】使用DBA用户“System”登录iSQL*Plus,输入如图6-18所示的命令行,并单击【执行】按钮。【任务6-4】使用OEM方式和命令行方式删除表。【知【知识讲识讲解解与与操作示范】操作示范】-6.3管理完整性管理完整性约约束束数据完整性的类型 1域完整性 域完整性又称列完整性,指定一个数据集对某一个列是否有效并确定是否允许为空值。域完整性通常是经过使用有效性检查来实现的,还可以通过限制数据类型、格式或者可能的取值范围来实现。2实体完整性 实体完整性又称行完整性,要求表中的每一行有一个唯一的标志符,这个标志符就是主关键字。3参照完整性 参照完整性又称引用完整性。参照完整性保证主表中的数据与从表中的数据的一致性。约束的状态域完整性的实现【知【知识讲识讲解解与与操作示范】操作示范】-6.3管理完整性管理完整性约约束束(1)使用OEM方式为“StudentUser.成绩表”的“成绩”字段创建一个CHECK约束,约束名为“成绩检查”,指定检查条件是“成绩=0 and成绩=0 and 成绩=100”,其他选项为默认值,单击【继续】按钮,完成操作之后的页面如图6-21所示。在此页面中单击【应用】按钮,显示已成功创建约束的提示信息,如图6-22所示。【任务6-5-1】创建CHECK约束【知【知识讲识讲解解与与操作示范】操作示范】-6.3管理完整性管理完整性约约束束【命令格式】创建表时,创建CHECK约束;修改表时,编辑CHECK约束。【说明】详细的命令格式请参见本章中使用命令行方式创建表。格式一:ALTER TABLEADD(CONSTRAINT(CHECK条件表达式);-用于添加CHECK约束。格式二:ALTER TABLEDROP CONSTRAINT;-用于删除CHECK约束。(1)使用命令行方式为“StudentUser.成绩表”的“成绩”字段创建一个CHECK约束,约束名为“成绩检查”,指定检查条件是“成绩=0 and成绩=100”。【操作步骤】使用DBA用户“System”登录iSQL*Plus,输入如图6-23所示的命令行,并单击【执行】按钮。【任务6-5-2】编辑CHECK约束【知【知识讲识讲解解与与操作示范】操作示范】-6.3管理完整性管理完整性约约束束(1)使用命令行方式删除“成绩检查”约束【操作步骤】使用DBA用户“System”登录iSQL*Plus,输入如图6-24所示的命令行,并单击【执行】按钮。【任务6-5-3】删除CHECK约束【知【知识讲识讲解解与与操作示范】操作示范】-6.3管理完整性管理完整性约约束束(1)使用命令行方式为“StudentUser.学生信息”表的“学号”字段创建一个PRIMARY KEY约束,约束名为“学号检查”。【操作步骤】使用DBA用户“System”登录iSQL*Plus,输入如图6-25所示的命令行,并单击【执行】按钮。(2)使用命令行方式为“StudentUser.教师信息”表的“教师编号”字段创建一个UNIQUE约束,约束名为“教师编号检查”。【操作步骤】使用DBA用户“System”登录iSQL*Plus,输入如图6-26所示的命令行,并单击【执行】按钮。(3)使用命令行方式删除UNIQUE约束“教师编号检查”。【操作步骤】使用DBA用户“System”登录iSQL*Plus,输入如图6-27所示的命令行,并单击【执行】按钮。6.3.4实体完整性的实现【任务6-6】创建/删除PRIMARY KEY和UNIQUE约束。【知【知识讲识讲解解与与操作示范】操作示范】-6.3管理完整性管理完整性约约束束(1)使用OEM方式为“籍贯”表和“学生信息”表创建FOREIGN KEY约束,约束名为“双表籍贯检查”,外键约束设置在“籍贯编号”字段上【操作步骤】使用DBA用户“SYSTEM”登录OEM,选中要编辑的表,在【约束条件】页面内选择“FOREIGN”选项,单击【添加】按钮,进入外键约束设置页面,如图6-28所示。在此页面中指定外键关系,单击【继续】按钮,进入后续设置页面,单击【应用】按钮,即可完成创建操作。(2)使用命令行方式为“籍贯”表和“学生信息”表创建FOREIGN KEY约束,约束名为“双表籍贯检查”,外键约束设置在“籍贯编号”字段上。【操作步骤】使用DBA用户“System”登录iSQL*Plus,输入如图6-29所示的命令行,并单击【执行】按钮。(3)使用命令行方式删除外键约束“双表籍贯检查”FOREIGN KEY约束。【操作步骤】使用DBA用户“System”登录iSQL*Plus,输入如图6-30所示的命令行,并单击【执行】按钮。6.3.5参照完整性的实现【任务6-7】创建/删除FOREIGN KEY约束。【知【知识讲识讲解解与与操作示范】操作示范】-6.4管理索引管理索引(1)使用OEM方式为“StudentUser.教师信息”表添加一个名为“教师编号索引”的索引,绑定“教师编号”字段。【操作步骤】使用DBA用户“System”登录OEM,单击“管理”“索引”链接,进入“索引”页面,如图6-31所示。在此页面中单击【创建】按钮,进入“创建索引参数设置”页面,如图6-32所示。在如图6-32所示的页面中设置好索引的参数,单击【确定】按钮,即可完成创建索引的操作,如图6-33所示。(2)使用命令行方式为“StudentUser.教师信息”表添加一个名为“教师编号索引”的索引,绑定“教师编号”字段。【操作步骤】(1)使用DBA用户“SYSTEM”登录iSQL*Plus,输入如图6-34所示的命令行,并单击【执行】按钮,即可完成该任务。6.4.1创建索引【任务6-8】使用OEM方式和命令行方式创建索引。【知【知识讲识讲解解与与操作示范】操作示范】-6.4管理索引管理索引维护索引【任务6-9】使用命令行方式查看索引信息。【任务6-10】使用命令行方式修改“教师编号索引”,修改项:【保留用于更新的空闲空间的百分比】为25%,【行事处理的最大数量】为100。【任务6-11】使用命令行方式删除“教师编号索引”。【课课堂堂实实践践】1 1操作要求操作要求(1)使用OEM和命令行方式分别完成:创建表“StudentUser.课程”,该表的结构如表6-6所示。(2)使用命令行方式为“StudentUser.课程”表的“课程编号”字段创建一个UNIQUE约束,约束名为“课程编号检查”。(3)使用命令行方式为“StudentUser.课程”表创建一个名为“课程编号索引”的索引,并绑定“课程编号”字段。(4)使用命令行方式删除“课程编号检查”UNIQUE约束和“课程编号索引”。2 2操作提示操作提示(1)创建约束时,可以在创建表时完成,也可以使用修改表命令完成。(2)创建索引时,请使用CREATE INDEX关键字。(3)注意比较删除约束和删除索引的命令格式的差异。前者必须寄生在ALTER TABLE语句中,成为其字句;而后者却是独立使用的。英文字段名中文字段名数据类型字段长度是否为空默认值CourseNum课程编号NUMBER10是CourseName课程名称VARCHAR250否CourseAbb课程简称VARCHAR250否OpenedSemester开设学期NUMBER10否Department开课系别VARCHAR212否Credit学分VARCHAR24否TestType考核类型VARCHAR212否【疑【疑难难解析】解析】问题问题1:方案是什么,它和用户有什么联系?:方案是什么,它和用户有什么联系?答:所谓方案,就是一系列数据库对象的集合,是数据库中存储数据的一个逻辑表示或描述。在Oracle 10g数据库中,每个用户都拥有自己的方案,创建了一个用户,就创建了一个同名的方案,方案与数据库用户是对应的。当用户在数据库中创建了一个方案对象后,这个方案对象默认地属于这个用户的方案。当用户访问自己方案的对象时,在对象名前可以不加方案名。但是,如果其他用户要访问该用户的方案对象,必须在对象名前加方案名。问题问题2:从数据完整性角度来看约束有多少种,它们各自的使用范围是什么?:从数据完整性角度来看约束有多少种,它们各自的使用范围是什么?答:从数据完整性角度来看约束有五种,它们分别是:(1)NOT NULL约束:用于对实体完整性进行约束。指定表中某个列不允许为空值,必须为该列提供值。(2)UNIQUE约束:用于对实体完整性进行约束。使某个列或某些列的组合惟一,防止出现冗余值。(3)PRIMARY KEY约束:用于对实体完整性进行约束。使某个列或某些列的组合惟一,也是表的主关键字。(4)FOREIGN KEY约束:用于实体对参照(关系)完整性进行约束。使某个列或某些列为外关键字,其值与从表的主关键字匹配,实现引用完整性。(5)CHECK约束:用于对域完整性进行约束。指定表中的每一行数据必须满足的条件。【本本章章小小结结】本章介绍了Oracle系统中的表、数据完整性约束和索引的内容。表是数据库最基本的对象,是数据实际存放的地方。Oracle数据库中对表的管理分为表结构管理与表数据管理两个部分,本章重点介绍了对表结构的管理,表结构管理的操作分为创建、修改、查看和删除四个部分;表数据管理的内容将在第8章中重点介绍,其记录操作分为新增、修改、查看和删除四个部分。数据完整性是对表内数据进行安全、有效管理的一个重要的提前,约束管理的操作同样分为创建、修改、查看和删除四个部分。索引则是为了加速对表内数据的检索而创建的一种分散存储结构,索引总是和数据相关联的。同上,索引管理的操作也分为创建、修改、查看和删除4个部分。课堂堂讨论-对表表对象象进行管理行管理时的注意事的注意事项(时间:10分钟)(课后习题:本章习题)学生分组讨论教师提出讨论题目教师引导下的学生辩论