《Oracle表的创建与管理.ppt》由会员分享,可在线阅读,更多相关《Oracle表的创建与管理.ppt(45页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、第第5章章 Oracle 数据表数据表的创建与管理的创建与管理5.1 在在OEM中创建和管理表中创建和管理表5.2 运用运用SQL语句创建和管理表语句创建和管理表 5.3 数据完整性数据完整性5.1 在在OEM中创建和管理表中创建和管理表5.1.1 创建数据表创建数据表5.1.2 表的管理表的管理5.1.1 创建数据表创建数据表1.使用控制台的工具箱使用控制台的工具箱在在OEMC中,单击控制台工具箱的中,单击控制台工具箱的“创建创建”按钮,按钮,激活激活“创建创建”窗口,出现数据库列表。用鼠标单窗口,出现数据库列表。用鼠标单击数据库前的击数据库前的“+”,展开数据库对象类型。窗口,展开数据库对
2、象类型。窗口中列出了可创建的所有数据库对象类型。其中中列出了可创建的所有数据库对象类型。其中“使用向导使用向导”表明选择此项,用户可以使用向导创表明选择此项,用户可以使用向导创建表;建表;否则以手工方式创建表。否则以手工方式创建表。5.1.1 创建数据表创建数据表2.在导航器中,使用快捷菜单创建表在导航器中,使用快捷菜单创建表在在OEMC中,用鼠标右键单击中,用鼠标右键单击“表表”文件夹,弹文件夹,弹出的快捷菜单包括有出的快捷菜单包括有“创建创建”和和“使用向导创建使用向导创建”两个选项。两个选项。“使用向导使用向导创建创建”的过程与使用控的过程与使用控制台工具箱的使用向导创建完全相同。制台工
3、具箱的使用向导创建完全相同。5.1.2 表的管理表的管理表的管理包括修改表的结构、输入表数据、修改表的管理包括修改表的结构、输入表数据、修改表数据、表的数据查询、删除表等操作。表数据、表的数据查询、删除表等操作。1.修改表结构修改表结构在在OEMC树树型视图中,在表文件夹下选择要进行型视图中,在表文件夹下选择要进行管理的表,在右侧信息和工作区中会显示该表结管理的表,在右侧信息和工作区中会显示该表结构信息。构信息。5.1.2 表的管理表的管理 一般信息的修改一般信息的修改 对表的列进行设置、修改,例如增加列,删除列,对表的列进行设置、修改,例如增加列,删除列,设置列的名称、数据类型、大小、可否为
4、空、默认设置列的名称、数据类型、大小、可否为空、默认值等。值等。约束条件的修改约束条件的修改对表的约束条件进行部分修改,如增加约束条件或对表的约束条件进行部分修改,如增加约束条件或删除约束条件。删除约束条件。存储的修改存储的修改 选项的修改选项的修改 约束条件存储的修改约束条件存储的修改5.1.2 表的管理表的管理2.编辑表数据编辑表数据在在OEMC树型视图中,鼠标右键单击欲要进行数据树型视图中,鼠标右键单击欲要进行数据输入、修改、查询、删除操作的表,从快捷菜单中输入、修改、查询、删除操作的表,从快捷菜单中选择选择“查看查看/编辑目录编辑目录”,出现表编辑器。通过表,出现表编辑器。通过表编辑器
5、中可以查看、添加、更新和删除表中的数据。编辑器中可以查看、添加、更新和删除表中的数据。表编辑器右侧是电子表格,用于输入数据,相邻行表编辑器右侧是电子表格,用于输入数据,相邻行为黄色和白色相间以便于区分。为黄色和白色相间以便于区分。表编辑器下方的表编辑器下方的“应用应用”按钮用于确定本次输入;按钮用于确定本次输入;“还原还原”按钮用于取消输入,只能取消没有按钮用于取消输入,只能取消没有“应用应用”过的数据;过的数据;“显示显示SQL”按钮是在没有点击按钮是在没有点击“应应用用”按钮之前,显示本次输入操作的按钮之前,显示本次输入操作的SQL语语句。句。5.1.2 表的管理表的管理表编辑器的左侧是表
6、编辑器的左侧是5个模式按钮,从上到下依次为:个模式按钮,从上到下依次为:“更新表模式更新表模式”:可以执行查看表、更新列、输:可以执行查看表、更新列、输入和修改数据、添加和删除行等操作。入和修改数据、添加和删除行等操作。“图形化选择模式图形化选择模式”:可以执行查看表中各列和:可以执行查看表中各列和各种数据类型的列表,通过选择多栏列表的标题各种数据类型的列表,通过选择多栏列表的标题对各列排序,显示对各列排序,显示SQL等操作。等操作。5.1.2 表的管理表的管理 “自由自由SQL模式模式”:可以执行插入、删除、更:可以执行插入、删除、更新和选择等操作。新和选择等操作。“空闲空闲SQL历史记录历
7、史记录”:只用在空闲:只用在空闲SQL模式,模式,并只显示输入内容的历史记录。并只显示输入内容的历史记录。“报告报告”:显示:显示“为为SQL日志生成报告日志生成报告”对话框,对话框,可以在该对话框中摘录信息,并以可以在该对话框中摘录信息,并以HTML或或TXT等格式保存相应信息。等格式保存相应信息。5.2 运用运用SQL语句创建和管理表语句创建和管理表5.2.1 创建数据表创建数据表5.2.2 数据表的管理数据表的管理5.2.3 向数据表中插入数据向数据表中插入数据5.2.4 在数据表中删除数据在数据表中删除数据5.2.5 对数据表中数据进行更新对数据表中数据进行更新5.2.1 创建数据表创
8、建数据表CREATE TABLE table_name(column1_name datatype DEFAULT expression column1_constraint|table_constraint ,column2_name datatype DEFAULT expression column2_constraint|table_constraint )5.2.1 创建数据表创建数据表 CLUSTER cluster_name(column1_name ,column2_name )PCTFREE n PCTUSED n INITRANS n MAXTRANS n RECOVERA
9、BLE|UNRECOVERABLE TABLESPACE tablespace ENABLE|DISABLE AS subquery CACHE|NO CACHE STORAGE n5.2.1 创建数据表创建数据表每个变量的具体含义每个变量的具体含义table_name:将要创建的表的名称:将要创建的表的名称column_name:列的名字:列的名字datatype:列中列的数据类型。:列中列的数据类型。expression:如果有的话,是列的:如果有的话,是列的DEFAULT值。这些值。这些值在值在INSERT省略该列的值时被使用。省略该列的值时被使用。column1_constraint:
10、column2_constraint将完整性限将完整性限制定义为列定义的一部分。制定义为列定义的一部分。cluster_name:簇名,要在此处创建表的聚簇。:簇名,要在此处创建表的聚簇。n:任意正整数值。:任意正整数值。subquery:一个将要用来定义新表的:一个将要用来定义新表的SQL SELECT语语句,将由子查询句,将由子查询返回的记录插入到建立的表中。返回的记录插入到建立的表中。5.2.1 创建数据表创建数据表每个变量的具体含义每个变量的具体含义PCTFREE表示块内预留的自由空间百分数;表示块内预留的自由空间百分数;PCTUSED表块内已使用空间的最小百分数;表块内已使用空间的最
11、小百分数;CACHE指明该表经常被存取;指明该表经常被存取;INITRANS指定指定表的每一个数据块中分配的事务项初值;表的每一个数据块中分配的事务项初值;MAXTRANS指定可同时修改表的数据块的最大指定可同时修改表的数据块的最大事务数;事务数;RECOVERABLE指定该表可恢复;指定该表可恢复;5.2.1 创建数据表创建数据表UNRECOVERABLE指定该表不可恢复;指定该表不可恢复;TABLESPACE指出当前定义的表放置在哪个指出当前定义的表放置在哪个表空间中。表空间中。STORAGE子句用来控制分配给表的存储空间子句用来控制分配给表的存储空间大小,以及当需要增长时如何使用空间。如
12、果大小,以及当需要增长时如何使用空间。如果不指定存储子句,该表使用缺省的存储参数。不指定存储子句,该表使用缺省的存储参数。缺省情况下,表在创建时使用缺省情况下,表在创建时使用5个个Oracle块,块,当需要增长时再分配当需要增长时再分配5个个Oracle块,以后每当块,以后每当增长存储空间时就分配比上一个区间大增长存储空间时就分配比上一个区间大50%的的附加空间,这样附加空间,这样,表每次需要增长时都会要求,表每次需要增长时都会要求越来越多的存储空间。越来越多的存储空间。5.2.2 数据表的管理数据表的管理1.修改表修改表ALTER TABLE table_name ADD(column_na
13、me datatype DEFAULT expressioncolumn_constraint,n)MODIFY(datatypeDEFAULT expressioncolumn_constraint,n)STORAGE storage_clause DROP drop_clause5.2.2 数据表的管理数据表的管理其中:其中:table_name:修改数据表的名称。:修改数据表的名称。ADD:增加一个列。:增加一个列。MODIFY:修改已有列的定义。:修改已有列的定义。STORAGE:修改数据表的存储特征。:修改数据表的存储特征。DROP:从表中删除列或约束。从表中删除列或约束。5.2.2
14、 数据表的管理数据表的管理2.删除表删除表删除表的操作过程是在删除表的操作过程是在OEMC左面树型视图中选左面树型视图中选择要删除的表,单击鼠标右键,从快捷菜单中选择要删除的表,单击鼠标右键,从快捷菜单中选择择“移去移去”选项,则完成对该表的删除操作。选项,则完成对该表的删除操作。删除一个表的删除一个表的SQL命令一般语法如下:命令一般语法如下:DROP TABLE table_name CASCADE CONSTRAINTS 5.2.2 数据表的管理数据表的管理DROP TABLE命令用于删除一个表和表中的命令用于删除一个表和表中的所有行。参数所有行。参数CASCADE CONSTRAINT
15、S表表明所有指向本表的明所有指向本表的外部键将被删除掉。外部键将被删除掉。当删除一个表时,下面的对象也随之被删掉:当删除一个表时,下面的对象也随之被删掉:表的索引、指向表的其他表的外键、表的触表的索引、指向表的其他表的外键、表的触发器、表中的分区、角色和用户的权限、加发器、表中的分区、角色和用户的权限、加在表上的约束条件。在表上的约束条件。5.2.2 数据表的管理数据表的管理3.查询表信息查询表信息通过通过DESCRIBE命令查看所创建的表结构信息,例命令查看所创建的表结构信息,例如,查看教师信息表的命令为:如,查看教师信息表的命令为:DESCRIBE teacher_info;通过通过USE
16、R_TABLES字典查看用户表。一旦表被定字典查看用户表。一旦表被定义之后,其信息都被装在系统的数据字典之中。而义之后,其信息都被装在系统的数据字典之中。而数据字典中也就是一个个的表。例如数据字典中也就是一个个的表。例如USER_TABLES中是所有用户定义的表信息;中是所有用户定义的表信息;USER_TAB_COLUMNS中是用户表的所有列信息;中是用户表的所有列信息;USER_CONSTRAINTS表中是用户表的所有约束信表中是用户表的所有约束信息;息;USER_INDEX是用户表的索引信息;是用户表的索引信息;USER_TRIGGERS是用户触发器是用户触发器信息。信息。5.2.3 向数
17、据表中插入数据向数据表中插入数据向数据表中插入数据采用向数据表中插入数据采用INSERT语句,它有两种格语句,它有两种格式:式:采用采用VALUES子句子句由由VALUES子句为各列提供指定数据。它的语法格子句为各列提供指定数据。它的语法格式为:式为:INSERT INTO table_name column_name1,column_name2 VALUES(constant1,constant2,);5.2.3 向数据表中插入数据向数据表中插入数据其中,在其中,在INTO子句可以只将有值的列罗列出来,子句可以只将有值的列罗列出来,而不必将所有的列都列出来。如果而不必将所有的列都列出来。如果
18、DEFAULT VALUE被预先定义了,那么被忽略的列的值将被被预先定义了,那么被忽略的列的值将被置为置为DEFAULT VALUE。如果没有预先定义。如果没有预先定义DEFAULT VALUE,那么对于,那么对于INTO子句没有出子句没有出现的属性列,新记录在这些列上将取空值。现的属性列,新记录在这些列上将取空值。当值表当值表(constant1,constant2,)中的值类型中的值类型和表中的列的值类型完全匹配时,列的全部列表和表中的列的值类型完全匹配时,列的全部列表(column_name,column_name)可以被忽略。可以被忽略。5.2.3 向数据表中插入数据向数据表中插入数据
19、 采用子查询方式采用子查询方式采用子查询方式为表提供插入数据,采用子查询方式为表提供插入数据,INSERT语句语句将子查询返回的结果集合数据插入到指定表中。将子查询返回的结果集合数据插入到指定表中。它的语法格式为:它的语法格式为:INSERT INTO table_name column_name,column_name derived_tablederived_table是一个由是一个由SELECT语句查询所得到的语句查询所得到的结果集。利用该参数,可把一个表中的部分数据结果集。利用该参数,可把一个表中的部分数据插入到表插入到表table_name中中。5.2.4 在数据表中删除数据在数据表
20、中删除数据DELETE语句可以从指定表中删除符合条件的记录。语句可以从指定表中删除符合条件的记录。DELETE语句格式为:语句格式为:DELETE FROM table_name|view_nameWHERE condition;该语句的功能为从该语句的功能为从table_name|view_name指定的指定的表或视图删除满足表或视图删除满足condition查询条件的记录,若省查询条件的记录,若省略略condition查询条件,则表示删除所有查询条件,则表示删除所有的行。的行。5.2.5 对数据表中数据进行更新对数据表中数据进行更新1.基本更新语句基本更新语句UPDATE table_na
21、me|view_nameSET column_name=expression,nWHERE condition;该语句的功能是在该语句的功能是在table_name|view_name指定的指定的表或视图中,对满足表或视图中,对满足condition条件的记录,用条件的记录,用expression表达式的值更新表达式的值更新column_name列名所指列名所指定的列值。若省略定的列值。若省略WHERE子句中子句中condition条件,条件,语句将对表中的每一行进行更新。语句将对表中的每一行进行更新。5.2.5 对数据表中数据进行更新对数据表中数据进行更新2.使用子查询进行更新使用子查询进行
22、更新UPDATE table_name1|view_name1SET(column1_name,column2_name,)=(SELECT column_name1,column_name2,FROM table_name2|view_name2WHERE condition2)WHERE condition15.2.5 对数据表中数据进行更新对数据表中数据进行更新该语句的功能是用表该语句的功能是用表table_name2或视图或视图view_name2中满足条件中满足条件(condition2)的列值的列值(column_name1,column_name2,),去更新表,去更新表tabl
23、e_name1或视图或视图view_name1中满足条件中满足条件(condition1)的列值的列值(column1_name,column2_name,)。5.3 数据完整性数据完整性5.3.1 数据完整性的分类数据完整性的分类5.3.2 约束的状态约束的状态5.3.3 列完整性的实现列完整性的实现5.3.4 行完整性的实现行完整性的实现5.3.5 参照完整性的实现参照完整性的实现5.3.1 数据完整性的分类数据完整性的分类数据的完整性是指数据库中的数据在逻辑上的数据的完整性是指数据库中的数据在逻辑上的一致性和准确性。一般地。可以把数据完整性一致性和准确性。一般地。可以把数据完整性分成分成
24、3种类型:列完整性、行完整性和参照完整种类型:列完整性、行完整性和参照完整性。性。1.列完整性列完整性指定一个数据集对某一个列是否有效并确定是指定一个数据集对某一个列是否有效并确定是否允许为空值。否允许为空值。5.3.1 数据完整性的分类数据完整性的分类2.行完整性行完整性要求表中的每一行有一个唯一的标识符,这个要求表中的每一行有一个唯一的标识符,这个标识符就是主关键字。标识符就是主关键字。3.参照完整性参照完整性参照完整性保证主表中的数据与从表参照完整性保证主表中的数据与从表(被参照表被参照表)中数据的一致中数据的一致性。性。5.3.2 约束的状态约束的状态完整性约束有完整性约束有4种状态:
25、种状态:禁止的非校验状态。这种状态表示该约束是禁止的非校验状态。这种状态表示该约束是不起作用的,即使该约束定义依然存储在数据字不起作用的,即使该约束定义依然存储在数据字典中。典中。禁止的校验状态禁止的校验状态。这种状态表示对约束列的。这种状态表示对约束列的任何修改都是禁止的。这时,该约束上的索引都任何修改都是禁止的。这时,该约束上的索引都被删除,约束也被禁止。但是,这时仍然可以向被删除,约束也被禁止。但是,这时仍然可以向表中有效地添加数据,即使是这些数据与约束有表中有效地添加数据,即使是这些数据与约束有冲突也没有关系。冲突也没有关系。5.3.2 约束的状态约束的状态 允许的非校验状态或强制状态
26、。该状态可以向表允许的非校验状态或强制状态。该状态可以向表中添加数据,但是与约束有冲突的数据不能添加。中添加数据,但是与约束有冲突的数据不能添加。如果表中已存在的数据与约束冲突,这些数据依然如果表中已存在的数据与约束冲突,这些数据依然可以存在。可以存在。允许的校验状态。该状态表示约束处于正常的状允许的校验状态。该状态表示约束处于正常的状态。这时,表中所有的数据,无论是已有的还是新态。这时,表中所有的数据,无论是已有的还是新添加的,都必须满足约束条件。添加的,都必须满足约束条件。5.3.3 列完整性的实现列完整性的实现Oracle 9i可以通过可以通过CHECK约束实现列完整性。约束实现列完整性
27、。CHECK约束实际上是字段约束实际上是字段(列列)输入内容的验证规输入内容的验证规则,表示一个字段的输入内容必须满足则,表示一个字段的输入内容必须满足CHECK约约束的条件,若不满足,则数据无法正常输入。束的条件,若不满足,则数据无法正常输入。通过通过OEMC创建与删除创建与删除CHECK约束请参见教材。约束请参见教材。利用利用SQL语句在创建表时创建语句在创建表时创建CHECK约束。约束。5.3.3 列完整性的实现列完整性的实现CREATE TABLE table_name (column_name datatype NOT NULL|NULLDEFAULT constraint_expr
28、essionCONSTRAINT check_name CHECK(check_expression,n)5.3.3 列完整性的实现列完整性的实现 利用利用SQL语句在修改表创建语句在修改表创建CHECK约束。约束。ALTER TABLE table_name ADD(CONSTRAINT check_name CHECK(check_expression)CHECK约束的删除可在约束的删除可在OEM中进行,也可以利中进行,也可以利用用SQL命令删除命令删除CHECK约束。约束。ALTER TABLE table_name DROP CONSTRAIMT check_name5.3.4 行完整
29、性的实现行完整性的实现1.利用利用OEMC创建和删除创建和删除PRIMARY KEY或或UNIQUE约束约束利用利用OEMC创建和删除创建和删除PRIMAY KEY或或UNIQUE约束的操作过程同利用约束的操作过程同利用OEMOEMC创建和删除创建和删除CHECK约束基本相同,唯一的区别是在选择约束约束基本相同,唯一的区别是在选择约束类型时选择类型时选择PRIMAY KEY或或UNIQUE约束。约束。2.利用利用SQL语句创建和删除语句创建和删除PRIMAY KEY及及UNIQUEN约束约束5.3.4 行完整性的实现行完整性的实现 创建表的同时创建创建表的同时创建PRIMAY KEY或或UNI
30、QUE约约束。束。CREATE TABLE table_name(column_name datatype CONSTRAINT constraint_name NOT NULL PRIMARY KEY|UNIQUE.n)5.3.4 行完整性的实现行完整性的实现 利用修改表创建利用修改表创建PRIMAY KEY或或UNIQUE约束。约束。ALTER TABLE table_name ADD(CONSTRAINT constraint_name PRIMARY KEY(column_name,.n)说明:这是创建说明:这是创建PRIMAY KEY约束,约束,ADD CONSTRAINT表示对表示
31、对table_name表增加一个约束,表增加一个约束,约束名由约束名由constraint_name指定,约束类型为指定,约束类型为PRIMARY KEY。索引字段由。索引字段由column_name参数指参数指定,可包含一列或多列。定,可包含一列或多列。5.3.4 行完整性的实现行完整性的实现ALTER TABLE table_name ADD(CONSTRAINT constraint_name UNIQUE(column_name.n)删除删除PRIMARY KEY 或或UNIQUE约束。约束。ALTER TABLE table_name DROP CONSTRAINT constrai
32、nt_name,.n;5.3.5 参照完整性的实现参照完整性的实现对两个相关联的表对两个相关联的表(主表与从表主表与从表)进行数据插入和删进行数据插入和删除操作时,通过参照完整性保证它们之间数据的一除操作时,通过参照完整性保证它们之间数据的一致性。利用致性。利用FOREIGN KEY定义从表的外键,定义从表的外键,FOREIGN KEY约束定义主表中的主键约束定义主表中的主键(不允许为空不允许为空),可实现主表与从表之间的参照完整性。定义表间,可实现主表与从表之间的参照完整性。定义表间参照关系,可先定义主键,再对从表定义外键约束参照关系,可先定义主键,再对从表定义外键约束(根据查询的需要可先对
33、从表的该列创建索引根据查询的需要可先对从表的该列创建索引)。5.3.5 参照完整性的实现参照完整性的实现 建表时同时定义外键约束。建表时同时定义外键约束。CREATE TABLE table_name (column_name datatype FOREIGN KEY REFERENCE ref_table(ref_column),n 通过修改表定义外键约束。通过修改表定义外键约束。ALTER TABLE table_name ADD CONSTRAINT constraint_name FOREIGN KEY(column,.n)REFERENCES ref_table(ref_column,.n)