




已阅读5页,还剩30页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第5章 Oracle数据表对象 与其他数据库(如SQL Server、MySQL)不同, Oracle数据库的下一层逻辑结构并非数据表,而是表空间; 每个数据表都属于唯一的表空间。因此,本章将首先介绍表 空间,然后介绍数据表及相关操作。本章的主要内容包括以 下几个方面: 创建Oralce表空间; 创建Oracle数据表; 修改数据表结构; 删除数据表; 备份/恢复数据表; 特殊数据表。 5.1 Oracle表空间 表空间(TableSpace)是Oracle的开创性理念。表空 间使得数据库管理更加灵活,而且极大地提高了数据库性能 。 5.1.1 Oracle表空间简介 1避免磁盘空间突然耗竭的风险 2规划数据更灵活 3提高数据库性能 4提高数据库安全性 5.1.2 创建Oracle表空间 1创建一个简单的表空间 create tablespace test datafile f:databaseoracletest_data.dbf size 20M 2指定数据文件的可扩展性 - autoextend on 3指定数据文件的增长幅度 -autoextend On Next 5m 4指定数据文件的最大尺寸 -autoextend On Next 5m Maxsize 500M 5查看表空间是否创建成功: select file_name, tablespace_name from dba_data_files order by file_name 6为一个表空间创建多个数据文件 5.1.3 查看表空间 每个数据库在创建时都会自动创建几个表空间,这些表 空间和用户创建的表空间信息,都存储在数据词典中。可以 通过查询视图dba_tablespaces和视图dba_data_files来获 得数据库的表空间信息。dba_tablespaces可以用来查看所 有表空间的基本信息;而dba_data_files可以用来查看相关 数据文件的信息。 5.1.4 修改数据库默认表空间 默认表空间是相对用户来说的,也就是说,每个用户登 录Oralce数据库时,都有一个默认的工作空间。当进行与表 空间相关操作(例如,创建数据表,每个数据表都隶属于一 个表空间),如果未显式指定表空间(例如,创建数据表, 未显式指定将表创建于哪个表空间中),则该操作将作用于 用户的默认表空间。 select user_id, username, default_tablespace from dba_users alter database default tablespace user1 5.1.5 修改表空间名称 在Oracle 10g中,新增了修改表空间名称这一特性。 修改表空间名称应该使用renmae to命令。 alter tablespace user2 rename to user20 说明:表空间重命名并不对数据文件产生影响。 最后,需要注意的是,不能对数据的系统表空间进行重 命名,例如SYSTEM, SYSAUX等无法进行重命名。 5.1.6 删除表空间 如果某个表空间没有存在的必要,那么可以执行删除表 空间命令,以释放磁盘空间。删除表空间的命令为drop tablespace。删除表空间有两种方式,一种是仅仅删除其在 数据库中的记录,二是将记录和数据文件一起删除。 drop tablespace user20 drop tablespace user20 including contents and datafiles 5.2 创建Oracle数据表 Oracle表空间的下一层逻辑结构即为数据表。数据表 也是各种数据库中共有的、开发人员和DBA最常打交道的数 据库对象。本节着重介绍如何创建Oracle数据表。 5.2.1 利用工具创建数据表 利用工具创建数据表,操作简单、直观、易于掌握。很 多数据库管理工具都提供了图形化界面来创建数据表,如 MS SQL Server企业管理器。针对Oracle数据库,PL/SQL Developer是一个不错的选择。 5.2.2 利用工具查看数据表 在创建了数据表T_USER后,同样可以在PL/SQL Developer中查看该表的信息。 小技巧:通过右键单击【Columns】分支,执行【 Copy comma separated】菜单命令,可以将所有列名拷 出,并以逗号作为分隔符。这在数据表的列很多、使用 INSERT语句时,最为有用。 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 利用工具修改数据表结构 利用工具修改数据表结构,操作简单、直观。最常用的 工具自然是PL/SQL Developer。 在该页面中,可以直接修改列名,例如,将 USER_EMAIL的列名修改为EMAIL;可以修改列的数据类 型,例如,将USER_NAME的长度修改为15字符;可以直 接增加新列,例如,增加新列REMARK作为备注。 5.3.2 利用命令修改数据表结构 使用命令方式同样可以修改数据表结构。修改数据表结 构的SQL命令为alter table。 注意,不要轻易修改一个表的表名,因为所有针对该表 的操作都是以表名作为标识,修改表名有可能影响已有应用 程序的运行。 5.4 删除数据表 对于维护数据库,另一个可执行的操作就是删除数据表 。如果某个数据表不再需要,又不想其一直占用数据库资源 ,就可以执行删除操作。本节将结合工具和命令方式,讲述 如何删除数据表。 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 备份/恢复数据表 数据表的备份和恢复是最常用的数据库操作,数据表的 备份主要用于以下场合。 修改数据表结构之前; 修改数据表的数据之前; 删除某个数据表之前。 本节将从以下两个角度讲述如何备份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 利用命令备份/恢复数据表 对于Oracle数据表的备份/恢复操作,最常用的命令为 exp和imp。二者可以在Windows的命令提示符或者 Unix/Linux的命令行执行。exp命令实现导出操作,imp实 现导入操作。 5.6 临时表 Oracle使用create table命令创建的数据表称为永久表 或普通表。在Oracle中还有另外一种特殊的数据表临时 表。本节将按照以下顺序介绍临时表。 临时表简介; 会话级临时表; 事务级临时表; 查看临时表属性信息; 临时表的应用场景。 5.6.1 临时表简介 首先需要明确的是,临时表的临时并非指其存在性而言 。也就是说,除非使用DROP TABLE命令来删除临时表, 否则,一旦创建将一直存在。在存在性上,和普通表没有任 何区别。其临时性,指的是所存储数据的临时性。也就是说 ,临时表虽然一直存在,但其中的数据会在某种条件下被 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.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】查看其属性信息。通过二者的【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表的应用场景 在Oracle数据库中,dual表实际是作为一个虚表的概 念存在的。也就是说,dual表存在的意义并非为了存储数据 。更多时候,dual表被用来作为from的源表。 因为Oracle的查询语句必须满足select * | column1 AS alias1, column2 AS alias2 from table的语法格式 ,其中的from所指向的表是必需的,所以即使某些数据不属 于任何表,也必须有一个强制的表名。dual表即可用作这个 强制的虚表。 5.7.3 修改DUAL表对查询结果的影响 Oracle针对DUAL表会做一些内部操作,以保证其一行 一列的数据结构不发生改变。 5.8 本章实例 在本章中,创建表、修改表和删除表等表操作是重点讲 述的内容。本节将通过一个范例来综合执行这几项操作。 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中数据库中的表空间和表的概
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 甲方竞选发言稿
- 协会发言稿范文
- 合理膳食知识培训
- 蝴蝶儿童舞蹈课件
- 愿望体验动力课件
- 二零二五年度宾馆会议室租赁合同书-商务会议室租赁及多媒体服务合同
- 二零二五版特种光纤光缆采购合同范本
- 二零二五年抵押车借款及车辆检测服务合同样本
- 2025拆除违章建筑与安全风险评估合同
- 二零二五年电商代运营产品上架与销售策略合同
- 2022版数学新课程标准高中数学新课程标准2022
- 浙江省食品快检项目名单(2024年版)、检测信息公布要求、检测室设备设施配置参考清单、结果验证规范、能力评价表、操作指南
- 黄瓜栽培技术及病虫害防治
- GA 2094-2023公安机关警务辅助人员工作证卡套技术规范
- 早餐配送方案
- 教师如何应对学生的行为问题
- ICU常见导管护理课件
- 良性滑膜瘤(腱鞘巨细胞瘤)
- 农用地管理知识讲座
- 宫颈癌的教学查房
- 高考语文考试评价体系的创新与优化
评论
0/150
提交评论