Oracle数据库应用与开发案例教程-电子教案-王红 05.第五章 表管理

上传人:E**** 文档编号:89428038 上传时间:2019-05-25 格式:PPT 页数:49 大小:172.50KB
返回 下载 相关 举报
Oracle数据库应用与开发案例教程-电子教案-王红 05.第五章 表管理_第1页
第1页 / 共49页
Oracle数据库应用与开发案例教程-电子教案-王红 05.第五章 表管理_第2页
第2页 / 共49页
Oracle数据库应用与开发案例教程-电子教案-王红 05.第五章 表管理_第3页
第3页 / 共49页
Oracle数据库应用与开发案例教程-电子教案-王红 05.第五章 表管理_第4页
第4页 / 共49页
Oracle数据库应用与开发案例教程-电子教案-王红 05.第五章 表管理_第5页
第5页 / 共49页
点击查看更多>>
资源描述

《Oracle数据库应用与开发案例教程-电子教案-王红 05.第五章 表管理》由会员分享,可在线阅读,更多相关《Oracle数据库应用与开发案例教程-电子教案-王红 05.第五章 表管理(49页珍藏版)》请在金锄头文库上搜索。

1、2019/5/25,1,Oracle数据库应用 与开发案例教程,主编 王红 中国水利水电出版社,2019/5/25,2,Oracle数据库应用 与开发案例教程,第五章 表管理,2019/5/25,Oracle数据库应用与开发案例教程,3,第五章 表管理,5.1表和方案 5.2创建表 5.3维护表 5.4维护约束条件 5.5序列和同义词,2019/5/25,Oracle数据库应用与开发案例教程,4,5.1表和方案,常用数据类型 在创建表的时候,不仅需要指定表名、列名,而且要根据情况为每个列选择合适的数据类型并定义其长度,用来指定该列可以存取哪种类型的数据。Oracle中常用的数据类型如下所示:

2、字符数据类型 数字数据类型 日期和时间数据类型 二进制数据类型 大对象数据类型 行数据类型,2019/5/25,Oracle数据库应用与开发案例教程,5,5.1表和方案,用户与方案 方案是指用户所拥有一系列逻辑数据结构或数据库对象的集合,在Oracle数据库中对象是以用户来组织的,一个方案对应一个数据库用户,每个用户都有一个单独的方案。用户与方案名称相同,而且是一一对应的关系。 【例5-1】在数据库ZCGL中创建用户ZCGL_OPER,密码是admin,默认表空间是zcgl_tbs1,临时表空间是zcgl_temp1,并为该用户在表空间zcgl_tbs1中分配50M的限额。并将DBA角色授予该

3、用户。,2019/5/25,Oracle数据库应用与开发案例教程,6,5.2 创建表,创建表的一般语法 所谓创建表,实际上就是在数据库中定义表的结构。表的结构主要包括表与列的名称、列的数据类型,以及建立在表或列上的约束。 基本语法格式如下所示: CREATE TABLE schema. table_name ( column1 datatype1 DEFAULT expl column1 constraint, column2 datatype2 DEFAULT exp2 column2 constraint, ) TABLESPACE tablespace_name;,2019/5/25,O

4、racle数据库应用与开发案例教程,7,5.2 创建表,语法说明 1)schema:指定表所属的用户方案名称。如果用户在自己的方案中创建表,要求该用户必须具有CREATE TABLE系统权限;如果要在其他方案中创建表,则要求该用户必须具有CREATE ANY TABLE系统权限。 2)table_name:指定要创建的表的名称。 3)columnl datatypel:用于指定列的名称和及其数据类型。 4)DEFAULT expl:用于指定列的默认值。 5)columnl constraint:用于为约束命名。如果不使用columnl constraint子句,Oracle将自动为约束建立默认

5、的约束名。 6)TABLESPACE tablespace_name:用于指定存储表或索引的表空间。,2019/5/25,Oracle数据库应用与开发案例教程,8,5.2 创建表,创建标准表 【例5-2】在用户ZCGL_OPER的方案中创建一个名为ZICHANMINGXI的标准表。 【例5-3】使用DESC命令来显示ZICHANMINGXI表的结构。,2019/5/25,Oracle数据库应用与开发案例教程,9,5.2 创建表,创建临时表 如果在创建表时用关键字TEMPORARY或GLOBAL TEMPORARY指定了表的类型,Oracle会生成一个临时表。临时表用于存放事务或会话的私有数据,

6、其表结构会一直存在,但其数据只是在当前事务内或会话内有效。临时表分为事务临时表和会话临时表两种。 【例5-4】创建事务临时表temp1。 【例5-5】创建会话临时表temp2。,2019/5/25,Oracle数据库应用与开发案例教程,10,5.2 创建表,基于已有的表创建新表 通过在CREATE TABLE语句中嵌套SELECT子查询就可以基于已有的表或视图来创建新表,这种创建表的语法格式是: CREATE TABLE table_name (column1, column2, ) AS SELECT 语法说明: 1)column1, column2, :定义新表的字段,新表中所有列的数据类

7、型和长度都与原表中相应的列一样;如果省略该子句,那么新表的字段名与查询结果集中的字段名同名。 2)AS SELECT :在子查询中可以引用一个或多个表(或视图),查询结果集中包含的列即是新表中定义的列,并且查询到的记录都会插入到新表中。,2019/5/25,Oracle数据库应用与开发案例教程,11,5.2 创建表,基于已有的表创建新表 【例5-6】通过复制表ZICHANMINGXI的结构和数据来创建NEW_ZICHANMINGXI新表。 【例5-7】创建新表NEW_ZICHANMINGXI_1,其表结构同ZICHANMINGXI表,但不含有该表的任何记录。 【例5-8】通过复制表ZICHAN

8、MINGXI的ZCID,FLID,BMID,ZTID,YHID和ZCMC等列的结构和数据,来创建新表NEW_ZICHANMINGXI_2,并将列ZCMC改名NAME。,2019/5/25,Oracle数据库应用与开发案例教程,12,5.3维护表,表的结构创建完成以后,如果发现有不满意或者不符合实际需要的地方,可以对表的结构进行修改:可以添加或删除表中的列、修改表中列的名称、数据类型和长度等,还可以对表进行重新命名和重新组织。 普通用户只能对自己方案中的表进行更改,而具有ALTER ANY TABLE系统权限的用户可以修改任何方案中的表。,2019/5/25,Oracle数据库应用与开发案例教程

9、,13,5.3维护表,字段操作:添加列 向一个现有的表中添加一个新列的语法格式是: ALTER TABLE schema. table_name ADD (column _definition1,column_definition2); 语法说明: 新添加的列总是位于表的末尾。column_definition部分包括列名、列的数据类型及其默认值。 【例5-9】在ZICHANMINGXI表中添加一个新列:规格型号GGXH。,2019/5/25,Oracle数据库应用与开发案例教程,14,5.3维护表,字段操作:更改列 如果需要调整一个表中某些列的数据类型、长度和默认值,就需要更改这些列的属性。

10、更改表中现有列的语法格式是: ALTER TABLE schema. table_name MODIFY (column_name1 new_attributesl, column_name2 new_attributes2); 【例5-10】将ZICHANMINGXI表的BMID列的数据类型改为CHAR(8),将BZ列的数据类型改为VARCHAR2(90)。,2019/5/25,Oracle数据库应用与开发案例教程,15,5.3维护表,字段操作:删除列 当不再需要某些列时,可以将其删除。删除列时Oracle将删除表中每条记录内的相应列的值,并释放其占用的存储空间。在被删除列上建立的索引和约束

11、也会被删除,如果被删除的列是一个多列约束的组成部分,那么就必须指定CASCADE CONSTRAINTS选项,这样才会删除相关的约束。直接删除列的语法是: ALTER TABLE schema. table_name DROP (column_name1, column_name2) CASCADE CONSTRAINTS; 说明:可以在括号中使用多个列名,每个列名用逗号分隔。 【例5-11】下面的语句删除ZICHANMINGXI表中的GGXH列和BZ列,2019/5/25,Oracle数据库应用与开发案例教程,16,5.3维护表,字段操作:将列标记为UNUSED状态 为了避免在数据库使用高峰

12、期间由于执行删除列的操作而占用过多系统资源,可以暂时通过ALTER TABLE-SET UNUSED语句将要删除的列设置为UNUSED状态。当表中某列被设置为UNUSED状态后,用户将无法对该列进行各种DML操作,实际上Oracle并没有释放该列占用的存储空间,该列还是存在于数据库中。 该语句的语法格式为: ALTER TABLE schema. table_name SET UNUSED (column_name1, column_name2) CASCADE CONSTRAINTS;,2019/5/25,Oracle数据库应用与开发案例教程,17,5.3维护表,字段操作:将列标记为UNUS

13、ED状态 【例5-12】将ZICHANMINGXI表中的ZCYZ列和GRSJ列标记为UNUSED状态: 【例5-13】在数据字典视图USER_UNUSED_COL_TABS、ALL_UNUSED_COL_TABS和DBA_UNUSED_COL_TABS中可以查看数据库中被标记为UNUSED状态的列所在表的信息。 【例5-14】将ZICHANMINGXI表中的被标记为UNUSED状态的列删除:,2019/5/25,Oracle数据库应用与开发案例教程,18,5.3维护表,重命名表 当重新命名表时,Oracle会自动把旧表上的视图、对象权限和约束条件转换到新表名上,但所有与旧表相关的视图、同义词、

14、存储过程和函数等对象会失效。可以使用两种方法来重新命名表。 1. RENAME语句 使用RENAME语句来修改一个表、视图、序列、专用同义词名称的语法格式为: RNAME old _ tablename TO new_tablename 【例5-15】把ZICHANMINGXI表的名称更改为ZICHANMINGXI _CHANGE:,2019/5/25,Oracle数据库应用与开发案例教程,19,5.3维护表,重命名表 2. ALTER TABLE语句 用RENAME语句只能更改自己方案中对象的名字,而不能重命名其他用户方案中对象的名字。可以使用带有RENAME TO子句的ALTER TABL

15、E语句来重命名其他用户方案中对象的名字。但用户必须对该表拥有ALTER权限或者ALTER ANY TABLE系统权限才能实现这一操作。 【例5-16】把ZICHANMINGXI_CHANGE表的名称更改为ZICHANMINGXI:,2019/5/25,Oracle数据库应用与开发案例教程,20,5.3维护表,删除表 当不再需要某个表时,可以将该表删除,删除表时该表中的数据也将被删除。其语法格式如下: DROP TABLE schema.table_name CASCADE CONSTRAINTS; 说明:如果在table_name前面没有加schema,则表示删除自己方案中的表。如果要删除其他

16、方案中的表,则必须加schema,并且还必须具有DROP ANY TABLE系统权限。 【例5-17】删除ZICHANMINGXI表。 【例5-18】删除表ZICHANMINGXI,同时删除所有引用该表的视图,约束,索引和触发器。,2019/5/25,Oracle数据库应用与开发案例教程,21,5.3维护表,移动表 在创建表的时候如果没有指定表所属的表空间,Oracle将把该表存储到默认表空间中。使用ALTER TABLEMOVE语句将表从一个表空间移动到另一个表空间中。其语法格式为: ALTER TABLE table_name MOVE TABLESPACE tablespace_name; 【例5-19】将ZICHANMINGXI表从当前的表空间移动到USERS表空间中。,2019/5/25,Oracle数据库应用与开发案例教程,22,5.3维护表,查看表信息 创建表时,Oracle会将表的定义存放到数据字典中,常用数据字典有: 1)DBA_TABLES:描述数据库中所有关系表。 2)AL

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

当前位置:首页 > 高等教育 > 大学课件

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