天学通Oracle第二版]第5章Oracle数据表对象.ppt

上传人:牧羊曲112 文档编号:6563943 上传时间:2023-11-13 格式:PPT 页数:35 大小:287.15KB
返回 下载 相关 举报
天学通Oracle第二版]第5章Oracle数据表对象.ppt_第1页
第1页 / 共35页
天学通Oracle第二版]第5章Oracle数据表对象.ppt_第2页
第2页 / 共35页
天学通Oracle第二版]第5章Oracle数据表对象.ppt_第3页
第3页 / 共35页
天学通Oracle第二版]第5章Oracle数据表对象.ppt_第4页
第4页 / 共35页
天学通Oracle第二版]第5章Oracle数据表对象.ppt_第5页
第5页 / 共35页
点击查看更多>>
资源描述

《天学通Oracle第二版]第5章Oracle数据表对象.ppt》由会员分享,可在线阅读,更多相关《天学通Oracle第二版]第5章Oracle数据表对象.ppt(35页珍藏版)》请在三一办公上搜索。

1、第5章 Oracle数据表对象,与其他数据库(如SQL Server、MySQL)不同,Oracle数据库的下一层逻辑结构并非数据表,而是表空间;每个数据表都属于唯一的表空间。因此,本章将首先介绍表空间,然后介绍数据表及相关操作。本章的主要内容包括以下几个方面:创建Oralce表空间;创建Oracle数据表;修改数据表结构;删除数据表;备份/恢复数据表;特殊数据表。,5.1 Oracle表空间,表空间(TableSpace)是Oracle的开创性理念。表空间使得数据库管理更加灵活,而且极大地提高了数据库性能。,5.1.1 Oracle表空间简介,1避免磁盘空间突然耗竭的风险2规划数据更灵活3提

2、高数据库性能4提高数据库安全性,5.1.2 创建Oracle表空间,1创建一个简单的表空间create tablespace test datafile f:databaseoracletest_data.dbf size 20M 2指定数据文件的可扩展性-autoextend on3指定数据文件的增长幅度-autoextend On Next 5m 4指定数据文件的最大尺寸-autoextend On Next 5m Maxsize 500M5查看表空间是否创建成功:select file_name,tablespace_name from dba_data_files order by f

3、ile_name 6为一个表空间创建多个数据文件,5.1.3 查看表空间,每个数据库在创建时都会自动创建几个表空间,这些表空间和用户创建的表空间信息,都存储在数据词典中。可以通过查询视图dba_tablespaces和视图dba_data_files来获得数据库的表空间信息。dba_tablespaces可以用来查看所有表空间的基本信息;而dba_data_files可以用来查看相关数据文件的信息。,5.1.4 修改数据库默认表空间,默认表空间是相对用户来说的,也就是说,每个用户登录Oralce数据库时,都有一个默认的工作空间。当进行与表空间相关操作(例如,创建数据表,每个数据表都隶属于一个表

4、空间),如果未显式指定表空间(例如,创建数据表,未显式指定将表创建于哪个表空间中),则该操作将作用于用户的默认表空间。select user_id,username,default_tablespace from dba_usersalter database default tablespace user1,5.1.5 修改表空间名称,在Oracle 10g中,新增了修改表空间名称这一特性。修改表空间名称应该使用renmae to命令。alter tablespace user2 rename to user20 说明:表空间重命名并不对数据文件产生影响。最后,需要注意的是,不能对数据的系统

5、表空间进行重命名,例如SYSTEM,SYSAUX等无法进行重命名。,5.1.6 删除表空间,如果某个表空间没有存在的必要,那么可以执行删除表空间命令,以释放磁盘空间。删除表空间的命令为drop tablespace。删除表空间有两种方式,一种是仅仅删除其在数据库中的记录,二是将记录和数据文件一起删除。drop tablespace user20drop tablespace user20 including contents and datafiles,5.2 创建Oracle数据表,Oracle表空间的下一层逻辑结构即为数据表。数据表也是各种数据库中共有的、开发人员和DBA最常打交道的数据库

6、对象。本节着重介绍如何创建Oracle数据表。,5.2.1 利用工具创建数据表,利用工具创建数据表,操作简单、直观、易于掌握。很多数据库管理工具都提供了图形化界面来创建数据表,如MS SQL Server企业管理器。针对Oracle数据库,PL/SQL Developer是一个不错的选择。,5.2.2 利用工具查看数据表,在创建了数据表T_USER后,同样可以在PL/SQL Developer中查看该表的信息。小技巧:通过右键单击【Columns】分支,执行【Copy comma separated】菜单命令,可以将所有列名拷出,并以逗号作为分隔符。这在数据表的列很多、使用INSERT语句时,

7、最为有用。,5.2.3 利用命令创建数据表,利用命令同样可以创建数据表,其效果与利用工具完全相同。创建数据表的命令为CREATE TABLE。create table only_test(id number,name varchar2(20),5.2.4 利用命令查看表结构,同样可以通过命令方式来获得数据表的信息。例如,可以通过查询语句获得所属表空间。Describe only_test,5.3 修改Oracle数据表结构,数据表一旦创建,并不是一成不变的,修改数据表结构也成为开发人员必不可少的知识。本章将从工具方式和命令方式两个角度讲述如何修改数据表结构。,5.3.1 利用工具修改数据表结构

8、,利用工具修改数据表结构,操作简单、直观。最常用的工具自然是PL/SQL Developer。在该页面中,可以直接修改列名,例如,将USER_EMAIL的列名修改为EMAIL;可以修改列的数据类型,例如,将USER_NAME的长度修改为15字符;可以直接增加新列,例如,增加新列REMARK作为备注。,5.3.2 利用命令修改数据表结构,使用命令方式同样可以修改数据表结构。修改数据表结构的SQL命令为alter table。注意,不要轻易修改一个表的表名,因为所有针对该表的操作都是以表名作为标识,修改表名有可能影响已有应用程序的运行。,5.4 删除数据表,对于维护数据库,另一个可执行的操作就是删

9、除数据表。如果某个数据表不再需要,又不想其一直占用数据库资源,就可以执行删除操作。本节将结合工具和命令方式,讲述如何删除数据表。,5.4.1 利用工具删除数据表,许多数据库工具,例如PL/SQL Developer、TOAD for Oracle都会包含直观的数据表删除功能。本小节将以PL/SQL Developer为例,讲述如何删除数据表。,5.4.2 利用SQL语句删除数据表,同样,可以使用SQL语句删除某张表。删除数据表的命令为drop table。Drop table only_test,5.5 备份/恢复数据表,数据表的备份和恢复是最常用的数据库操作,数据表的备份主要用于以下场合。修

10、改数据表结构之前;修改数据表的数据之前;删除某个数据表之前。本节将从以下两个角度讲述如何备份Oracle数据表。利用工具备份/恢复数据表;利用命令备份/恢复数据表。,5.5.1 利用工具备份/恢复数据表,PL/SQL Developer是备份/恢复Oracle数据表的常用工具,本小节将以PL/SQL Developer为例讲述如何备份/恢复数据表。PL/SQL Developer提供了三种导出/导入方式,分别是:Oracle导出/导入方式、SQL语句方式、PL/SQL工具本身方式。1Oracle导出/导入方式2SQL导出/导入方式3PL/SQL导出/导入方式,5.5.2 利用命令备份/恢复数据

11、表,对于Oracle数据表的备份/恢复操作,最常用的命令为exp和imp。二者可以在Windows的命令提示符或者Unix/Linux的命令行执行。exp命令实现导出操作,imp实现导入操作。,5.6 临时表,Oracle使用create table命令创建的数据表称为永久表或普通表。在Oracle中还有另外一种特殊的数据表临时表。本节将按照以下顺序介绍临时表。临时表简介;会话级临时表;事务级临时表;查看临时表属性信息;临时表的应用场景。,5.6.1 临时表简介,首先需要明确的是,临时表的临时并非指其存在性而言。也就是说,除非使用DROP TABLE命令来删除临时表,否则,一旦创建将一直存在。

12、在存在性上,和普通表没有任何区别。其临时性,指的是所存储数据的临时性。也就是说,临时表虽然一直存在,但其中的数据会在某种条件下被Oracle数据库自动清空。临时表数据清空的条件有两种,一是事务提交或回滚;二是会话结束。,5.6.2 会话级临时表,创建临时表应该使用命令create global temporary table 命令。create global temporary table tmp_users_session(user_id int,user_name varchar2(20),user_email varchar2(30)on commit preserve rows,5.6

13、.3 事务级临时表,与会话级临时表一样,事务级临时表的创建同样使用create global temporary table命令。只是将on commit preserve rows变更为on commit delete rows,即提交时删除表中记录。,5.6.4 查看临时表在数据库中的信息,一个数据表在数据库中的最主要信息,有以下几个方面:所属表空间、包含的列及列类型。在PL/SQL Developer左侧窗口的【Tables】分支下,可以找到名为TMP_USERS_SESSION和TMP_USERS_TRANSACTION的表。像普通表一样,可以通过二者右键菜单中的【Properties

14、】查看其属性信息。通过二者的【Columns】子分支,可以查看列信息。,5.6.5 临时表的应用场景,1大表分割2解决并行问题3作为数据缓存,5.7 特殊的表dual,在所有的Oracle数据表中,有一个非常特殊的表dual。该表是每个数据库创建时默认生成的。该表仅有一列和一行数据,在数据库开发中有着非常特殊的作用。本节将从以下三个角度介绍表dual。分析dual表;dual表的应用场景;为什么不可以随意修改dual表。,5.7.1 分析dual表,在PL/SQL Developer或者SQL*Plus中,可以利用DESC命令查看DUAL表的结构。,5.7.2 dual表的应用场景,在Orac

15、le数据库中,dual表实际是作为一个虚表的概念存在的。也就是说,dual表存在的意义并非为了存储数据。更多时候,dual表被用来作为from的源表。因为Oracle的查询语句必须满足select*|column1 AS alias1,column2 AS alias2 from table的语法格式,其中的from所指向的表是必需的,所以即使某些数据不属于任何表,也必须有一个强制的表名。dual表即可用作这个强制的虚表。,5.7.3 修改DUAL表对查询结果的影响,Oracle针对DUAL表会做一些内部操作,以保证其一行一列的数据结构不发生改变。,5.8 本章实例,在本章中,创建表、修改表和

16、删除表等表操作是重点讲述的内容。本节将通过一个范例来综合执行这几项操作。create table test_table(id number,name varchar2(20);describe test_table;alter table test_table add(status varchar2(3);describe test_table;alter table test_table drop column status;drop table test_table;,5.9 本章小结,本章着重讲述了Oracle中数据库中的表空间和表的概念。表空间是Oracle数据库的独有概念,这种设计理念,为数据库的灵活配置和空间分配提供了方便。对于数据表,需要着重理解临时表和虚表dual的作用。临时表在日常开发中并不常用,而dual表则是不可或缺的。尤其需要注意的是,不要对dual表进行任何的修改操作,否则,将对应用程序带来不可预知的风险。,5.10 习题,1请简述创建表空间命令中的主要参数的意义。2请简述Oracle的数据表在添加列和删除列时,语法形式上的区别。3请简述会话级临时表和事务级临时表的区别。4请简述虚表dual的主要应用场景。,

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号