
oracle10g创建数据库和表用户名和密码方法.ppt
100页第第2章章数据库和表的创建数据库和表的创建 创建数据库和表是Oracle 10g最基本的工作,数据库和表是Oracle用于组织和管理数据的对象本章将讲述数据库、表的基本概念,以及创建数据库和表的两种方式 2.1 基本概念基本概念Oracle是一种关系数据库管理系统(RDBMS)关系数据库是按照二维表结构方式组织的数据集合,每个表体现了集合理论中定义的数学概念 ── 关系2.1.1 数据库数据库 数据库(Database)是一个数据容器,它包含了表、索引、视图、过程、函数、包等对象,并对其进行统一的管理 2.1.1数据库数据库1.数据库的内部结构数据库的内部结构(1)表空间(TABLESPACE)表空间是数据库的逻辑划分,一个表空间只属于一个数据库 下面是Oracle 10g版本默认创建的主要表空间①SYSTEM表空间SYSTEM表空间用于存放Oracle系统内部表和数据字典的数据 ②SYSAUX表空间SYSAUX表空间是Oracle 10g新增加的表空间,主要存放Oracle系统内部的常用样例用户的对象 ③UNDO表空间UNDO表空间是存储撤销信息的表空间 ④USERS表空间。
USERS表空间是Oracle系统建议用户使用的表空间 ⑤TEMPORARY表空间在Oracle数据库中,临时表空间主要供用户临时使用 除了Oracle系统默认创建的表空间以外,用户可以根据应用系统的规模及其所要存放对象创建多个表空间,以区分用户数据和系统数据2.1.1数据库数据库1.数据库的内部结构数据库的内部结构(2)表(TABLE)表是数据库中存放用户数据的对象它包含一组固定的列表中的列描述该表所跟踪的实体的属性,每个列都有一个名字和若干个属性表结构的一个样例如图2.1所示除了Oracle系统默认创建的表空间以外,用户可以根据应用系统的规模及其所要存放对象创建多个表空间,以区分用户数据和系统数据 2.1.1数据库数据库1. 数据库的内部结构数据库的内部结构(3)约束条件(CONSTRAINT)可以为一个表列创建约束条件,此时,表中的每一行都必须满足约束条件定义所规定的条件约束条件有以下5种① 主键(Primary Key):主键是表中的一列或多个列 ② 缺省(DEFAULT) 约束条件:在表中插入一行数据但没有为列指定值时生成一个在定义表时预先指定的值③ 检查(CHECK) 约束条件:该约束条件确保指定列中的值符合一定的条件。
④ 惟一性(UNIQUE)约束条件:用于保证应具有惟一性而又不是主键的一部分的那些列的惟一性⑤ 外键(Foreign Key)约束条件:该约束条件规定表间的关系性质 2.1.1数据库数据库1. 数据库的内部结构数据库的内部结构(4) 分区(PARTITION)在非常大的数据库中,可以通过把一个大表的数据分成多个小表来简化数据库的管理,这些小表称作分区5) 索引(INDEX)索引是帮助用户在表中快速地找到记录的数据库结构,它既可以提高数据库性能,又能够保证列值的惟一性6) 用户(USER)用户帐号虽然不是数据库中的一个物理结构,但它与数据库中的对象有着重要的关系,这是因为用户拥有数据库的对象 (7) 方案(SCHEMA)用户帐号拥有的对象集称为用户的方案(SCHEMA) (8) 同义词为了给不同的用户使用数据库对象时提供一个简单的、惟一标识数据库对象的名称,可以为数据库对象创建同义词9) 权限及角色(ROLE)为了访问其他帐号所有的对象,必须首先被授予访问这个对象的权限2.1.1数据库数据库1. 数据库的内部结构数据库的内部结构(10) 段(SEGMENT)、盘区(EXTENT)和数据块(DATA BLOCK)依照不同的数据处理性质,可能需要在数据表空间内划分出不同区域,以存放不同数据,将这些区域称之为“段”(SEGMENT)。
图2.2说明了段、盘区和数据块之间的关系数据段数据段数据段数据段盘区盘区数据块数据块2k2k2k2k数据表空间数据表空间图图2.2 段、盘区和数据块之间的关系段、盘区和数据块之间的关系2.1.1数据库数据库2.数据库外部结构数据库外部结构(1)数据文件(DATAFILE)每一个Oracle 10g数据库有一个或多个数据文件,而一个数据文件只能属于一个表空间数据库、表空间和数据文件之间的关系如图2.3所示 图图2.3 数据库、表空间和数据文件之间的关系数据库、表空间和数据文件之间的关系 2.1.1数据库数据库 (2) 重做日志文件(REDO LOG FILES) 除了数据文件外,最重要的Oracle 10g数据库实体档案就是重做日志文件 (redo log files)Oracle保存所有数据库事务的志这些事务被记录在联机重做日志文件(Online Redo Log File)中当数据库中的数据遭到破坏时,可以用这些日志来恢复数据库 (3) 控制文件(CONTROL FILES) 每个 Oracle 10g 数据库都有一个控制文件,用以记录与描述数据库的外部结构。
它们包括: ① Oracle 10g数据库名称与建立时间 ② 数据文件与重置日志文件名称及其所在位置 ③ 日志记录序列码(log sequence number) 2.1.2表表 表是用来存储和操作数据的一种逻辑结构表由行和列组成,因此也称之为二维表 1. 表结构表结构 表是在日常工作和生活中经常使用的一种表示数据及其关系的形式关系数据库使用表(即关系)来表示实体及其联系表包含下列概念: 表结构:每个数据库包含了若干个表每个表包含一组固定的列,而列由数据类型(DATATYPE)和长度(LENGTH)两部分组成,以描述该表所跟踪的实体的属性 记录:每个表包含了若干行数据,它们是表的“值”,表中的一行称为一个记录(Record),因此,表是记录的有限集合 字段:每个记录由若干个数据项构成,将构成记录的每个数据项称为字段(Field) 关键字:关键字可以将表中的不同记录区分开来 2.1.2表表 2. 关系关系 表与表之间有下列关系: (1) 一对一关系 有两张表A表和B表, A表中的一条记录在B表中有一条记录与之对应。
反过来,B表中的一条记录在A表中仅有一条记录与之对应具有这种关系的两张表存在一对一的关系 (2)一对多关系 有两张表A表和B表, A表中的一条记录在B表中有多条记录与之对应,反过来,B表中的一条记录在A表中仅有一条记录与之对应具有这种关系的两张表存在一对多的关系 (3)多对多关系 有两张表A表和B表, A表中的一条记录在B表中有多条记录与之对应反过来,B表中的一条记录在A表中也有多条记录与之对应但是A表和B表之间的这种多对多关系必须通过中间表C表来连接方可实现 2.1.2表表 3. 表示实体的表和表示实体联系的表 表示实体的表和表示实体联系的表 关系数据库用表来反映数据本身的内容以及反映数据之间的联系所以在关系数据库中,包含了反映实体信息的表和反映实体之间联系的表 例如,在学生成绩数据库中,用学生情况表反映了学生这一实体的信息,如表2.1所示 2.1.2表表 3. 表示实体的表和表示实体联系的表 表示实体的表和表示实体联系的表 课程情况表反映学校开设课程这一实体的信息,如表2.2所示此外,还要一个表示学生实体与课程实体联系的表——学生课程成绩表来表达学生学习课程的情况,如表2.3所示。
2.1.3实例实例 数据库实例(instance)也称作服务器(server),是指用来访问数据库文件集的存储结构(统称为System Global Area,即SGA)及后台进程的集合实例与数据库之间的关系如图2.4所示 图图2.4 实例与数据库之间的关系实例与数据库之间的关系2.1.3实例实例 1. 系统全局区 系统全局区 当激活Oracle 10g数据库时,系统会先在内存内规划一个固定区域,用来存储每位使用者所需存取的数据以及Oracle 10g运作时必备的系统信息这个区域称为系统全局区(System Global Area),俗称SGA 图2.5给出了SGA各重要区域之间的关系图图2.5 SGA之间的关系之间的关系2.1.3实例实例 1. 系统全局区 系统全局区 (1) 数据块缓存区 数据快取缓冲区为SGA 的主要成员,用来存放读取自数据文件的数据块复本,或是使用者曾经处理过的数据 (2) 字典缓存区数据库对象的信息存储在数据字典中,这些信息包括用户帐号、数据文件名、盘区位置、表说明和权限等 (3) 重做日志缓冲区:前面已介绍过,联机重做日志文件用于记录数据库的更改,以便在数据库恢复过程中用于向前滚动。
(4) SQL共享池:SQL共享池存储数据字典缓存区及库缓存区(library cache),即对数据库进行操作的语句信息 2.1.3实例实例 2. 后台进程 后台进程 数据库的物理结构和存储结构之间的关系是由后台进程来维持主要的背景处理程序如下 (1) DBWR(数据库写入程序):负责将数据块缓存区内变动过的数据块回写至硬盘内的数据文件 (2) LGWR(日志写入程序):负责将重做日志缓冲区内的数据变动记录循序写入重做日志文件 (3) SMON(系统监控程序):如果是因为停电或是其它因素导致Oracle数据库不正常被关闭,下一次激活数据库时将由SMON进行必要的数据库修复动作 (4) PMON(进程监控程序):当某个使用者处理程序异常终止时,PMON清除数据块缓存区内不再使用的空间,并释放该程序之前使用的系统资源 (5) CKPT(检查点进程):在适当时候产生一个checkpoint事件,确保缓冲区内经常被变动的数据也要定期被写入数据文件 (6) RECO(恢复进程):在Oracle 10g分布式数据库环境中,RECO处理程序会自动处理分布式操作失败时产生的问题 (7)ARCH(归档进程):LGWR后台进程以循环方式向联机重做日志文件写入。
数据库拥有多个后台进程,其数量取决于数据库的配置这些进程由数据库管理,它们只需要进行很少的管理图2.6显示了后台进程在数据库外部结构,SGA中作用和地位 图图2.6 后台进程与数据库外部结构、后台进程与数据库外部结构、SGA的关系的关系2.2界面创建数据库和表界面创建数据库和表 2.2.1数据库创建和删除数据库创建和删除 1. 通过界面创建数据库 通过界面创建数据库 创建数据库的用户必须是系统管理员,或是被授权使用CREATE DATABASE语句的用户创建数据库必须要确定全局数据库名、SID、所有者(即创建数据库的用户)、数据库大小(数据文件最初的大小、最大的大小、是否允许增长及增长方式)、重做日志文件和控制文件等 【例例2.1】使用DBCA创建XSCJ数据库 (1) 启动DBCA,DBCA激活并初始化,如图2.7所示DBCA初始化完成后自动进入“欢迎”窗口,如图2.8所示 图图2.7 DBCA初始化窗口初始化窗口 图图2.8 欢迎窗口欢迎窗口 2.2.1数据库创建和删除数据库创建和删除 【例例2.1】使用DBCA创建XSCJ数据库 (2) 单击“下一步”按钮,进入“数据库创建”窗口,如图2.9 所示。
(3)选择创建数据库选项,单击“下一步”按钮,进入“数据库模板”窗口,如图2.10所示图图2.9 操作窗口图操作窗口图 图图2.10 数据库模板窗口数据库模板窗口 2.2.1数据库创建和删除数据库创建和删除 【例例2.1】使用DBCA创建XSCJ数据库 (4) 选择一般用途选项,单击“下一步”按钮,进入“数据库标识”窗口,如图2.11所示 (5)单击“下一步”按钮,进入“管理选项”窗口,如图2.12所示 图图2.11 数据库标识窗口数据库标识窗口 图图2.12 管理选项窗口管理选项窗口 2.2.1数据库创建和删除数据库创建和删除 【例例2.1】使用DBCA创建XSCJ数据库 (6) 单击“下一步”按钮,进入“数据库身份证明”窗口,如图2.13所示 (7) 单击“下一步”按钮,进入“存储选项”窗口,如图2.14所示 图图 2.13 数据库身份证明窗口数据库身份证明窗口图图2.14存储选项窗口存储选项窗口 2.2.1数据库创建和删除数据库创建和删除 【例例2.1】使用DBCA创建XSCJ数据库 (8)单击“下一步”按钮,进入“数据库文件位置”窗口,如图2.15所示 (9)单击“下一步”按钮,进入“恢复配置”窗口,如图2.16所示。
图图2.15 数据库文件位置窗口数据库文件位置窗口 图图2.16 恢复配置窗口恢复配置窗口 2.2.1数据库创建和删除数据库创建和删除【例例2.1】使用DBCA创建XSCJ数据库10)单击“下一步”按钮,进入“数据库内容”窗口,如图2.17所示 (11)单击“下一步”按钮,进入“初始化参数”窗口,如图2.18所示图图2.17 数据库内容窗口数据库内容窗口 图图2.18初始化参数窗口初始化参数窗口—内存选项卡内存选项卡 2.2.1数据库创建和删除数据库创建和删除 【例例2.1】使用DBCA创建XSCJ数据库 初始化参数的设定共分成四个选项卡,分别是内存、调整大小、字符集和连接模式的置 ①“内存”选项卡DBCA就提供了下列设定方式: 典型: SGA大小以“物理内存的百分比”来设定,只要决定这个新数据库能够占用多少内存即可,DBCA会适当的分配给SGA各区域 自定义:可以自行决定SGA各区域的内存配置情况 ② “调整大小”选项卡如图2.19所示,在该窗口配置数据库块大小和连接此数据库的操作系统用户的最大数量 图图2.19初始化参数窗口初始化参数窗口—调整大小选项卡调整大小选项卡 2.2.1数据库创建和删除数据库创建和删除 ③ “字符集”选项卡。
如图2.20所示,在该窗口配置字符集它是在计算机屏幕上显示字符时所使用的编码方案 ④ “连接模式”选项卡如图2.21所示,在该窗口设置将要创建的数据库的运作模式 图图2.20初始化参数窗口初始化参数窗口—字符集选项卡字符集选项卡 图图2.21初始化参数窗口初始化参数窗口—连接模式选项卡连接模式选项卡 2.2.1数据库创建和删除数据库创建和删除 到这里为止,较重要的数据库设定工作已大致完成,单击“所有初始化参数”按钮可检查所有起始参数设定值如图2.22所示图图2.22所以初始化参数窗口所以初始化参数窗口 2.2.1数据库创建和删除数据库创建和删除【例例2.1】使用DBCA创建XSCJ数据库12) 单击“下一步”按钮,进入“数据库存储”窗口,如图2.23所示如图2.24所示,选择要修改的控制文件,在右边的子窗口中会显示相应的信息 图图2.23控制文件的一般信息窗口控制文件的一般信息窗口 图图2.24数据文件的存储窗口数据文件的存储窗口 2.2.1数据库创建和删除数据库创建和删除 【例例2.1】使用DBCA创建XSCJ数据库 在如图2.25所示的窗口中可以进行如下设置:最大数据文件数、最大重做日志文件数和最大日志成员数。
(13)单击“下一步”按钮,进入“创建选项”窗口,如图2.26所示图图2.25 控制文件的选项窗口控制文件的选项窗口 图图2.26 创建选项窗口创建选项窗口 2.2.1数据库创建和删除数据库创建和删除 【例例2.1】使用DBCA创建XSCJ数据库 (14)按下“完成”按钮,进入“确认”窗口,如图2.27 所示 (15) 单击“确定”按钮,之后就可以把剩下的工作交给DBCA了!它会先创建起始参数文件,然后在激活Oracle Instance之后进行一连串的工作,如图2.28 所示 图图2.27 确认窗口图确认窗口图 2.28 创建数据库进度窗口创建数据库进度窗口 2.2.1数据库创建和删除数据库创建和删除 【例例2.1】使用DBCA创建XSCJ数据库 出现如图2.29所示窗口,说明安装已完成可以单击下方的“口令管理”进行调整如图2.30所示,电子表格中列出了所有系统初始用户选择某个用户,鼠标单击“是否锁定用户”栏,锁定该用户或解除锁定若要在此时修改口令,则在“新口令”和“确认口令”项目栏中输入相同的口令设置完毕后,单击“确定”按钮至此,完成了创建数据库的全部操作图图2.29 数据库信息窗口数据库信息窗口 图图2.30 口令管理窗口口令管理窗口 2.2.1数据库创建和删除数据库创建和删除 2. 修改数据库修改数据库 在数据库创建后,数据文件和日志文件名一般就不再改变了。
对已存在的数据库可以进行的修改主要有:①增加或删除数据文件 ②改变数据文件的大小和增长方式 ③改变日志文件的大小和增长方式2.2.1数据库创建和删除数据库创建和删除 2. 修改数据库 修改数据库 下面以对数据库XSCJ的修改为例,说明在OEM中对数据库某些定义进行修改的操作方法使用IE浏览器,在地址栏输入http://zhouym.lan:1158/em打开OEM,显示如图2.31所示的界面 图图2.31 OEM主目录界面主目录界面 2.2.1数据库创建和删除数据库创建和删除 2. 修改数据库 修改数据库 使用Oracle企业管理器,可以执行以下操作: ① 通过查看几种类型的度量来确定数据库的当前状态 ② 启动或停止数据库 ③ 通过3个选项页面 (划分为3页,每页各显示一个子部分) 访问数据库环境的性能、管理和维护2.2.1数据库创建和删除数据库创建和删除 2. 修改数据库 修改数据库 (1) 改变数据文件的大小和增长方式在图2.31所示的界面中,单击“管理”选项页面,出现如图2.32所示的管理界面,在“存储”类别选择“数据文件”,进入如图2.33所示的“数据文件搜索”界面,直接选择或通过搜索功能查找要修改的数据文件。
图图2.33 数据文件搜速界面数据文件搜速界面 图图2.32 OEM管理界面管理界面 2.2.1数据库创建和删除数据库创建和删除 【例例2.2】将XSCJ数据库的users01.dbf的最大大小改为无限制 修改users01数据文件的步骤如下: 在图2.33所示的界面中,选中“USERS01.dbf”的“选择”单选框”,单击“编辑”按钮,进入如图2.34所示的界面在“存储”类别中选择“无限制”单选按钮,将USERS01数据文件最大容量改为无限制,然后单击“应用”按钮,保存设置图图2.34 USERS01数据文件编辑界面数据文件编辑界面 2.2.1数据库创建和删除数据库创建和删除 2. 修改数据库 修改数据库 (2) 增加数据文件当原有数据库的存储空间不够,除了可以采用扩大原有数据文件的存储量的方法之外,还可以增加新的数据文件 【例2.3】在XSCJ数据库增加数据文件users02,其属性均取系统默认值 ①在“数据库文件”项中增加数据文件如图2.33 所示,单击“创建”按钮,进入“创建数据文件”界面,如图2.35所示 图图2.35 创建数据文件界面创建数据文件界面 2.2.1数据库创建和删除数据库创建和删除 2. 修改数据库 修改数据库 首先在“文件名”文本框输入数据文件名称users02,然后为表新增的数据文件选择表空间。
单击“手电筒”形状的图标,出现表空间选择界面,如图2.36所示,选择“USERS”单选按钮,单击“选择”按钮,返回到图2.35所示界面 图图2.36 选择表空间界面选择表空间界面 2.2.1数据库创建和删除数据库创建和删除 2. 修改数据库 修改数据库 ② 在相应的表空间中增加数据文件在图2.32所示界面中,单击“表空间”,进入“表空间搜索”界面,如图2.37所示 (3) 删除数据文件当数据库中的某些数据文件不再需要时,应及时将其删除 图图2.37 表空间搜索界面表空间搜索界面2.2.1数据库创建和删除数据库创建和删除 3.删除数据库删除数据库 删除数据库是在DBCA中完成进入DBCA后,选择“删除数据库”选项,单击“下一步”,进入选择要删除数据库的窗口,如图2.38所示选择要删除的数据库,单击“下一步”,激活“概要”提示框单击“确定”,系统会再一次弹出提示框要你确认,单击“是”,出现数据库删除进度窗口,如图2.39所示 图图 2.38 选择要删除的数据库选择要删除的数据库 图图2.39 删除进度窗口删除进度窗口 2.2.1数据库创建和删除数据库创建和删除 4. 配置数据库连接 配置数据库连接 进行配置数据库的步骤如下: (1) 选择开始→程序→Oracle-OraDb10g_home1→配置和移植工具→Net Configuration Assistant,启动欢迎窗口,如图2.40所示。
图图2.40 Net Configuration Assistant欢迎窗口欢迎窗口 2.2.1数据库创建和删除数据库创建和删除 4. 配置数据库连接 配置数据库连接 网络配置助手是Oracle 10g提供的用于配置基本网络组件的工具,可以进行监听程序配置、命名方法配置、本地网络服务名配置和目录使用配置 ① 监听程序配置创建、修改、删除或重命名监听程序 ② 命名方法配置当终端用户连接数据库服务时,要通过“连接标识符”(简称标识服务)来完成 ③ 本地网络服务名配置创建、修改、删除、重命名或测试存储在本地tnsnames.ora文件中的连接描述符的连接 ④ 目录服务使用配置如果要使用集中管理连接标识符的目录命名与Oracle高级安全一起使用的企业用户安全性功能,则选择此选项来配置对符合轻型目录访问协议(Lightweight Directory Access Protocol,简称LDAP)的目录服务器的访问2.2.1数据库创建和删除数据库创建和删除 4. 配置数据库连接 配置数据库连接 (2) 选择“本地Net服务名配置”进行配置,单击“下一步”,进入“Net服务名配置”窗口,如图2.41所示。
(3) 选择“添加”以添加新的服务名,单击“下一步”,进入“服务名”窗口,如图2.42所示 图图2.41 Net服务名配置窗口服务名配置窗口 图图2.42服务名窗口服务名窗口 2.2.1数据库创建和数据库创建和删除删除 4. 配置数据库连接 配置数据库连接 (4) 在“服务名”文本框输入数据库服务名XSCJ,单击“下一步”,进入“选择协议”窗口,如图2.43所示选择的协议包括:TCP、TCPS、IPC和NMP 图图2.43 选择协议窗口选择协议窗口 2.2.1数据库创建和删除数据库创建和删除 4. 配置数据库连接 配置数据库连接 (5) 选择“TCP”协议,单击“下一步”,进入“TCP/IP协议”窗口,如图2.44所示在该窗口需要进行如下设置: ① 主机名监听程序驻留的计算机主机名 ② 端口号确定监听程序的端口号 图图2.44 TCP/IP协议窗口协议窗口 2.2.1数据库创建和删除数据库创建和删除 4. 配置数据库连接 配置数据库连接 在“主机名”文本框输入数据库所在计算机的主机名选择TCP/IP协议的标准端口号,单击“下一步”,进入“测试网络服务名”配置窗口,如图2.45所示。
(7) 不进行测试,单击“下一步”,进入“Net服务名”窗口,如图2.46所示图图2.45网络服务名测试窗口网络服务名测试窗口 图图2.46 网络服务名窗口网络服务名窗口 2.2.1数据库创建和删除数据库创建和删除 4. 配置数据库连接 配置数据库连接 (8) 单击“下一步”,进入“是否配置另一个网络服务名”窗口,如图2.47所示 (9) 选择“否”,单击“下一步”,网络服务名配置完毕 图图2.47 是否配置另一个网络服务名窗口是否配置另一个网络服务名窗口 2.2.2表创建、修改和删除表创建、修改和删除 1. 创建和管理表空间 创建和管理表空间 既可以在Oracle企业管理器(Oracle Enterprise Manager)中创建表空间,也可以使用CREATE TABLESPACE命令创建表空间 ① 创建表空间 【例例2.4】使用OEM创建永久性表空间MYTS 在图2.37所示的界面中,单击“创建”按钮,出现如图2.48所示的界面该界面包括3个选项页面:一般信息、存储和阈值 图图2.48 创建表空间创建表空间—一般信息选项页面一般信息选项页面 2.2.2表创建、修改和删除表创建、修改和删除 1. 创建和管理表空间 创建和管理表空间 单击“添加”按钮,按照例2.3为MYTS表空间创建数据文件MYTS01.DBF。
创建完成后,返回到图2.49所示的界面 单击“存储”选项页面,则出现如图2.50所示的界面在该选项卡中进行区分配、段空间管理和启用事件记录设置 在此选择本地管理,采用默认值单击“确定”按钮系统开始执行表空间的创建任务,完成后返回到如图2.37所示界面,此时在该界面出现了MYTS表空间 图图2.49 创建表空间创建表空间—添加数据文件后的界面添加数据文件后的界面 图图2.50 本地管理本地管理——存储选项卡存储选项卡2.2.2表创建、修改和删除表创建、修改和删除 1. 创建和管理表空间 创建和管理表空间 ② 管理表空间 管理表空间包括修改表空间参数、添加数据文件和改变表空间的状态等在图2.37所示的界面中,单击选择要修改的表空间,打开如图2.38所示的相应表空间的编辑界面 在“一般信息”选项页面中可以对表空间的状态进行修改,可以增删数据文件;而在“存储”选项页面中可以对表空间存储区的大小进行修改在如图2.38所示的界面中,可以添加、删除数据文件 注意:不能删除设置为默认永久性属性的表空间 2.2.2表创建、修改和删除表创建、修改和删除 1. 创建和管理表空间 创建和管理表空间 (2) 利用CREATE TABLESPACE命令创建和管理表空间 ① 利用CREATE TABLESPACE创建表空间。
创建表空间的用户必须拥有CREATE TABLESPACE系统权限在创建表空间前,必须先创建包含表空间的数据库 语法格式: 语法格式:CREATE TABLESPACE tablespace_name DATAFILE ‘path/filename’ [SIZE integer [ K∣M ]][ REUSE ] [ AUTOEXTEND [ OFF∣ ON [ NEXT integer [ K∣M ]] [ MAXSIZE [ UMLIMITED∣integer [ K∣M ] ] ] ] [ MINMUM EXTENT integer [ K | M ] ] [ DEFAULT STORAGE storage_clause ] [ ONLINE∣OFFLINE ] [ LOGGING∣NOLOGGING ] [ PERMANENT∣TEMPORARY ] [ EXTENT MANAGEMENT [ DICTIONARY ∣LOCAL [ AUTOALLOCATE∣UNIFORM [ SIZE integer [ K∣M ] ] ] ] ] 2.2.2表创建、修改和删除表创建、修改和删除 语法格式: 语法格式: 其中: 其中: tablespace_name:将要创建的表空间的名称,该名称在数据库中是惟一的,并且命名必须符合命名规则。
path/filename:一个或多个数据文件的存放路径与名称 OFF/ON:禁止或允许自动扩展数据文件 NEXT:指定当需要更多盘区时分配给数据文件的磁盘空间,以K或M为单位 MAXSIZE UMLIMITED︱integer [ K︱M ]:指定允许分配给数据文件的最大磁盘空间 MINMUM EXTENT:指定最小的长度,默认为操作系统和数据库块确定 ONLINE:在创建表空间之后使该表空间立即对授权访问该表空间的用户可用 OFFLINE:在创建表空间之后使该表空间不可用 2.2.2表创建、修改和删除表创建、修改和删除 语法格式: 语法格式: LOGGING/NOLOGGING:指定日志属性,它表示将来的表、索引等是否需要进行日志处理默认值为LOGGINGPERMANENT:指定表空间将用于保存永久对象,这是默认设置TEMPORARY:指定表空间将用于保存临时对象EXTENT MANAGEMENT:指定如何管理表空间的盘区DICTIONARY:指定使用字典表来管理表空间,这是缺省设置LOCAL:指定本地管理表空间AUTOALLOCATE:指定表空间由系统管理,用户不能指定盘区尺寸。
UNIFORM:指定使用SIZE字节的统一盘区来管理表空间缺省的SIZE为1M如果既没指定AUTOALLOCATE又没指定UNIFORM,那么AUTOALLOCATE就是缺省设置 2.2.2表创建、修改和删除表创建、修改和删除 语法格式: 语法格式: 注意: 注意:如果指定了LOCAL,就不能指定DEFAULT STORAGE storage_clause和TEMPORARYDEFAULT STORAGE storage_clause:为在该表空间创建的全部对象指定缺省的存储参数storage_clause的语法格式如下:STORAGE ( INITIAL integer [ K︱M ] NEXT integer [ K︱M ] MINEXTENTS integer︱UNLIMITED MAXEXTENTS integer PCTINCREASE integer FREELISTS integer FREELIST GROUPS integer OPTIMAL [ integer [ K︱M ]︱NULL ] )2.2.2表创建、修改和删除表创建、修改和删除 1. 创建和管理表空间 创建和管理表空间 【例2.5】创建大小为50M的表空间TEST,禁止自动扩展数据文件。
CREATE TABLESPACE “TEST” LOGGING DATAFILE ' D:\oradata\XSCJ\TEST101.DBF' SIZE 50M REUSE AUTOEXTEND OFF; 【例2.6】创建表空间DATA,允许自动扩展数据文件 CREATE TABLESPACE DATA LOGGING DATAFILE 'D: \oradata\XSCJ\DATA01.DBF' SIZE 50M REUSE AUTOEXTEND ON NEXT 10M MAXSIZE 200M DEFAULT STROAGE(INITIAL 32K NEXT 32K MINEXTENTS 1 MAXEXTENTS 249 PCTINCREASE 50) EXTENT MANAGEMENT LOCAL;2.2.2表创建、修改和删除表创建、修改和删除 (2) 利用CREATE TABLESPACE命令创建和管理表空间 ② 利用命令管理表空间利用ALTER TABLESPACE命令可以修改现有的表空间或它的一个或多个数据文件。
语法格式: 语法格式: ALTER TABLESPACE tablespace_name [ ADD DATAFILE∣TEMPFILE ‘path/filename’ [ SIZE integer [ K∣M ] ] [ REUSE ] [ AUTOEXTEND [ OFF∣ ON [ NEXT integer [ K∣M ] ] MAXSIZE [ UNLIMITED∣integer [ K∣M ] ] ] [ RENAME DATAFILE ‘path\filename’,…n TO ‘path\re_filename’,…n ][ DEFAULT STORAGE storage_clause ][ ONLINE∣OFFLINE [ NORMAL∣TEMPORARY∣IMMEDIATE ] ][ LOGGING∣NOLOGGING ][ READ ONLY∣WRITE ][ PERMANENT ][ TEMPORARY ]2.2.2表创建、修改和删除表创建、修改和删除 语法格式: 语法格式: 其中: 其中: ADD DATAFILE∣TEMPFILE:向表空间添加指定的数据文件或临时文件。
RENAME DATAFILE:对一个或多个表空间的数据文件重命名 READ ONLY:表明表空间上不允许进一步写操作 READ WRITE:表明在先前只读表空间上允许写操作 【例2.7】通过ALTER TABLESPACE命令把一个新的数据文件添加到DATA表空间,并指定了AUTOEXTEND ON和 MAXSIZE 300MALTER TABLESPACE DATA ADD DATAFILE ‘D:\ ORACLE\ORADATA\XSCJ\DATA02.DBF’ SIZE 50M REUSE AUTOEXTEND ON NEXT 50M MAXSIZE 500M; 注意: 注意:尽管可以设置MAXSIZE UNLIMITED,但应总是规定一个文件的最大尺寸值否则,使用磁盘设备上全部可用空间的事务将造成数据库故障修改表空间DATA属性,命令如下:ALTER TABLESPACE DATA OFFLINE;2.2.2表创建、修改和删除表创建、修改和删除 2. 数据类型 数据类型 表是真正存储各种各样数据的对象,由行和列组成行有时也称为记录,列有时也称为字段或域设计数据库时,要决定它包括哪些表,每个表中包含哪些列,每列的数据类型等。
在表中创建列时,必须为其指定数据类型,列的数据类型决定了数据的取值、范围和存储格式列的数据类型可以是Oracle提供的系统数据类型,将其列于表2.4中 表表2.4 Oracle数据类型数据类型2.2.2表创建、修改和删除表创建、修改和删除 3. 创建表 创建表 创建表的实质就是定义表结构及约束条件等属性 【例2.8】通过Oracle企业管理器(OEM)在XSCJ数据库中创建学生情况表学生情况表的表名为XS,表结构如表2.5所示2.2.2表创建、修改和删除表创建、修改和删除 3. 创建表 创建表 通过Oracle企业管理器(OEM)创建表XS的操作步骤: (1) 使用ADMIN帐号(创建用户将在7.1节中介绍)登录OEM,在如图2.32所示,在“方案”类别中选择“表”,鼠标左键单击进入“表搜索”界面,如图2.51所示图图2.51 表搜索界面表搜索界面 2.2.2表创建、修改和删除表创建、修改和删除3. 创建表 创建表(2) 单击“创建”按钮,进入“创建表:表的组织形式”界面,如图2.52所示,指定表的存储类型及是否为临时表图图2.52 表创建:表的组织形式界面表创建:表的组织形式界面 2.2.2表创建、修改和删除表创建、修改和删除 3. 创建表 创建表 (3) 单击“继续”按钮,进入“创建表”界面,如图2.53所示。
该界面有5个选项页面,可以完成对表的定义图图2.53 一般信息界面一般信息界面 2.2.2表创建、修改和删除表创建、修改和删除 3. 创建表 创建表 (3) 单击“约束条件”选项页面,进入“约束条件”选项界面,如图2.54所示在该选项页面可以定义表的完整性约束条件图图2.54 约束条件界面约束条件界面 2.2.2表创建、修改和删除表创建、修改和删除 3. 创建表 创建表 (4) 选择PRIMARY约束条件,单击“创建”按钮,进入如图2.55所示的添加约束条件界面图图2.55 添加约束条件界面添加约束条件界面 2.2.2表创建、修改和删除表创建、修改和删除 3. 创建表 创建表 (5) 单击“确定”按钮,返回到2.55所示界面,这时在该界面能看到刚才添加的主键约束条件 (6) 在图2.55所示的界面中,单击“存储”选项页面,进入“存储”选项界面,如图2.56所示 图图2.56 存储选项界面存储选项界面 2.2.2 表创建、修改和删除表创建、修改和删除3. 创建表 创建表(7)单击“选项”选项页面,进入“选项”选项界面,如图2.57所示8)单击“分区”选项页面,进入“分区”选项界面,如图2.58所示。
图图2.57 选项选项界面选项选项界面 图图2.58 分区选项界面分区选项界面 2.2.2表创建、修改和删除表创建、修改和删除4. 修改表修改表 对一个已存在的表可以进行的修改操作包括:1.增加列2.删除列3.修改已有列的属性(列名、数据类型、是否为空值)4.修改存储方式等信息2.2.2表创建、修改和删除表创建、修改和删除4.修改表修改表(1) 增加列当原来所创建的表中需要增加项目时,就要向表中增加列 【例2.9】表XS中添加一个“奖学金等级”,名称JXJ,NUMBER类型,允许为空值在如图2.51所示界面,选择表XS,单击“编辑”按钮,进入如图2.59所示界面 图图2.59 修改表修改表XS2.2.2表创建、修改和删除表创建、修改和删除 4. 修改表 修改表 (2) 删除列 选择要删除的列,选中要删除列的“选择”单选按钮,单击“删除”按钮;然后单击“应用”保存修改后的表 (3) 修改列的属性 在表中尚未有记录值时,可以修改表结构,如更改列名、列的数据类型、长度和是否允许空值等属性 (4) 修改存储情况 在“存储”选项卡中可以修改表的存储方式;在“选项”选项卡中修改表的并发操作和事务处理等特性。
5. 表的删除 表的删除 删除一个表时,表的定义、表中的所有数据以及表的索引、触发器、约束等均被删除 注意注意:不能删除系统表和有外键约束所参照的表 2.3命令方式创建数据库和表命令方式创建数据库和表 除了可以通过DBCA和OEM图形用户界面创建数据库及表外,还可以用PL/SQL语句(称之为命令方式)来创建数据库和表与界面方式创建表相比,命令方式较为灵活2.3.1创建数据库创建数据库 不管原因为何,当准备自行建立Oracle数据库时,都必须事先做好妥善准备 在开始建立新的Oracle 10g 数据库之前,建议先做好下列准备工作: (1) 评估数据表与索引的存放位置,如果可能的话预估其所需空间 (2) 规划操作系统下数据库实体文件的存放方式,因为良好的文件配置将大幅改善数据存取效率 (3) 确定全局数据库名称 (4) 熟悉init.ora文件内较重要的参数,甚至服务器参数文件(server parameter file)的使用时机及其作用 (5) 选定适当的数据库字符集 (6) 选定数据块大小 (7) 熟悉Oracle 10g 数据库的激活/关闭方式和与其搭配的各种选项。
(8) 确认物理内存是否足以激活Oracle 10g Instance (9)确认Oracle 10g 服务器的磁盘空间足以创建新数据库2.3.1创建数据库创建数据库 下面以创建名为mydb的数据库来介绍手动创建数据库的步骤 1. 设定实例标识符设定实例标识符 在一般情况下,每个Oracle 10g 数据库都必须对应一个数据库实例所以在建立数据库之前,必须先指定数据库实例的系统标识符,此系统标识符就是俗称的Oracle SID 在如图2.60所示的命令提示符操作界面中,使用如下命令设定SID: C:\>SET ORACLE_SID=mydb 图图2.60 命令提示符操作界面命令提示符操作界面2.3.1创建数据库创建数据库2.设定数据库管理员的验证方法设定数据库管理员的验证方法为了创建数据库,必须经过数据库的验证手续,且被赋予适当系统权限后才可以建立Oracle 10g 数据库可以使用密码文件或操作系统的验证方法下面给出的是密码文件验证方法: D:\>orapwd file=D:\oracle\oradata\DATABASE\PWDmydb.ora Password=ORACLE entries=53.创建初始化参数创建初始化参数对于任何一个Oracle数据库,实例(系统全局区SGA和后台进程)都是使用初始化参数文件开始的。
以下是创建新数据库之前必须新增或编辑的初始化参数:v全局数据库名称v控制文件名称与路径v数据块大小v影响SGA容量的初始化参数v设定处理程序最大数目v设定空间撤消(Undo)管理方法2.3.1创建数据库创建数据库 3. 创建初始化参数创建初始化参数 (1) 设定全局数据库名称 Oracle 10g的全局数据库名称由数据库名称与网域名称所组成,数据库名称和网域名称分别由DB_NAME与DB_DOMAIN参数设定的 (2) 设置控制文件控制文件是Oracle 10g数据库中相当重要的文件因此必须在新的初始化参数文件内加入CONTROL_FILE参数以设定控制文件的名称以及路径 (3) 设定数据块大小 Oracle 10g 数据库存放数据的最小单位为数据块(data block)数据库标准数据块大小是设定在初始化参数文件的DB_BLOCK_SIZE参数 非标准数据块大小设定值可为2K、4K、8K、16K或32K需注意的是这种的类型数据块将受到操作系统环境限制,不是所有操作系统都可以设定上述所有区块大小若要使用非标准数据块时,还必须适当配置SGA内数据库缓冲区的子缓冲区,方式是由DB_nK_CACHE_SIZE参数来设定。
数据块大小设置如下: DB_BLOCK_SIZE=8192 2.3.1创建数据库创建数据库 3. 创建初始化参数创建初始化参数 (4)配置影响SAG容量的初始化参数这种类型的初始化参数将控制系统全局区(System Global Area,简称SGA)的大小 ①设定数据库缓冲区大小Oracle 10g数据库缓冲区(DataBase Buffer Cache)大小是由初始化参数文件DB_CACHE_SIZE参数决定数据库缓冲区以标准数据块作为数据存取单位如果设定一组DB_BLOCK_SIZE与DB_nK_CACHE_SIZE参数,则可在Oracle 10g数据库中实现使用多重数据块大小如果上述两项参数在初始化参数文件中没有明确设定,则Oracle 10g会自动设定适当的DB_CACHE_SIZE值,且将DB_nK_CACHE_SIZE设定为0例如,缓冲区大小设置如下:DB_CACHE_SIZE=20MDB_2K_CACHE_SIZE=10MDB_8K_CACHE_SIZE=8M注意:DB_nK_CACHE_SIZE参数不能设定为标准数据块的缓冲区大小,也就是说,如果DB_BLOCK_SIZE设定为4k,就不能再设定DB_4K_CACHE_SIZE参数。
2.3.1创建数据库创建数据库 (4)配置影响SAG容量的初始化参数 ②设定共享池和大型池容量SGA内的共享池(Shared Pool)与大型池(Large Pool)分别由SHARED_POOL_SIZE与LARGE_POOL_SIZE所设定这两个参数都属于动态参数如果初始化参数文件未设定这两个参数,则Oracke9i将自动决定其适当大小在设定SGA时需注意,SGA最大容量由SGA_MAX_SIZE控制可动态地改变该参数值,但是需注意SGA_MAX_SIZE是数据库缓冲区、共享池、大型池以及其它SGA组件的容量总和各区域之大小不能超过SGA_MAX_SIZE如果SGA_MAX_SIZE未设定,则Oracle 10g会自动将SGA_MAX_SIZE设定为所有SGA组件大小的总和 2.3.1创建数据库创建数据库 3. 创建初始化参数创建初始化参数 (5) 设定处理进程最大数量初始化参数PROCESSESS可决定同时连接Oracle 10g的操作系统程序最大数量6) 设定空间撤消管理方法Oracle 10g 就某种特殊机制来确保数据一致性和完整性,以便必要时回滚(rollback)失败的数据,或是撤消(undo)某个数据处理动作。
针对撤消项目的管理,初始化参数文件的UNDO_MANAGEMENT可设定由下列方式之一激活Oracle 10g 实例:vAUTO:以“自动撤消管理模式”激活Oracle 10g 实例,其撤消项目将储存于撤消表空间vMANUAL:以“手动模式”激活Oracle 10g 实例,其撤消项目将储存于回滚段为了向前兼容,UNDO_MANAGEMENT的默认值为MANUAL 当实例以“自动管理模式”激活时,将尝试寻找第一个可用的撤消表空间以存放撤消项目如果执行CREATE DATABASE指令,且UNDO_MANAGEMENT设定为AUTO时,Oracle 10g就会自动建立一个撤消表空间此表空间将是“自动管理模式”下预设的撤消表空间 3. 创建初始化参数创建初始化参数【例例2.10】创建数据库mydb的初始化参数文件initmydb.ora初始化参数文件内容如下所示:# Copyright (c) 1991, 2001, 2002 by Oracle Corporationjob_queue_processes=10 # Job Queues# Shared Serverdispatchers="(PROTOCOL=TCP) (SERVICE=mydbXDB)"# Miscellaneouscompatible=10.2.0.1.0# Security and Auditingremote_login_passwordfile=EXCLUSIVE# Sort, Hash Joins, Bitmap Indexespga_aggregate_target=25165824sort_area_size=65536# Database Identificationdb_domain=""db_name=mydb# File Configurationcontrol_files=("D:\oracle\oradata\mydb\control01.ctl", "D: oracle\\oradata\mydb\control02.ctl", "D:\ oracle\oradata\mydb\control03.ctl")db_recovery_file_dest=D:\flash_recovery_area1db_recovery_file_dest_size=2147483648# Pools java_pool_size=50331648large_pool_size=8388608shared_pool_size=83886080# Cursors and Library Cacheopen_cursors=300# System Managed Undo and Rollback Segmentsundo_management=AUTOundo_tablespace=UNDOTBS1# Diagnostics and Statisticsbackground_dump_dest=D:\ oracle\admin\mydb\bdumpcore_dump_dest=D:\ oracle\admin\mydb\cdumpuser_dump_dest=D:\ oracle\admin\mydb\udump# Processes and Sessionsprocesses=150# Cache and I/Odb_block_size=8192db_cache_size=25165824db_file_multiblock_read_count=162.3.1创建数据库创建数据库 4.启动启动SQL*Plus并以并以SYSDBA连接到连接到Oracle实例实例D:\>sqlplus /nologSQL>connect as sysdba5.启动实例启动实例在没有装载数据库情况下启动实例, 通常只有在数据库创建期间或在数据库上实施维护操作时才会这么做。
使用带有NOMOUNT选项的STARTUP命令即可实现 SQL>STARTUPNOMOUNTpfile=”d:\admin\mydb\pfile\initmydb.ora” 2.3.1创建数据库创建数据库 6.发布发布CREATE DATABASE语句语句要创建新的数据库,可以使用CREATE DATABASE当执行CREATE DATABASE语句时,Oracle依据在CREATE DATABASE语句中指定的子句或者设置的初始化参数来执行其操作:v创建数据文件;v创建控制文件;v创建重做日志文件并建立ARCHIVELOG模式;v创建SYSTEM表空间和SYSTEM回滚段;v创建数据字典;v设置存储数据在数据库中的字符集;v设置数据库时区;v装载和打开数据库2.3.1 创建数据库创建数据库 6. 发布发布CREATE DATABASE语句语句语法格式:语法格式:CREATE DATABASE database_name[ CONTROLFILE REUSE ] [ LOGFILE [ GROUP integer ] (‘path\filename’) [ SIZE integer [ K∣M ] [ REUSE ]],…n][ MAXLOGFILES integer ][ MAXLOGMEMBERS integer ][ MAXLOGHISTORY integer ][ MAXDATAFILES integer ][ MAXINSTANCES integer ][ ARCHIVELOG︱NO ARCHIVELOG ][ CHARACTER SET charset ][ NATIONAL CHARACTER SET charset ][ DATAFILE ‘path\filename’ [ SIZE integer [ K︱M ] [ REUSE ]][ AUTOEXTEND [ OFF︱ON [ NEXT integer [ K︱M ] MAXSIZE [ UNLIMITED︱integer [ K︱M ]]]]]2.3.1 创建数据库创建数据库 6. 发布发布CREATE DATABASE语句语句【例例2.11】CREATE DATABASE语句创建数据库mydb。
CREATE DATABASE mydb MAXINSTANCES 1 MAXLOGHISTORY 1 MAXLOGFILES 5 MAXLOGMEMBERS 5 MAXDATAFILES 100 DATAFILE 'D:\oracle\oradata\mydb\system01.dbf' SIZE 500M AUTOEXTEND ON NEXT 100M MAXSIZE UNLIMITED UNDO TABLESPACE UNDOTBS DATAFILE 'D:\oracle\oradata\mydb\undotbs01.dbf' SIZE 150M REUSE AUTOEXTEND ON NEXT 50M MAXSIZE UNLIMITED DEFAULT TEMPORARY TABLESPACE temps1 CHARACTER SETt ZHS16GBK NATIONAL CHARACTER SET AL16UTF16 LOGFILE 'D:\oracle\oradata\mydb\redo01.log'’ SIZE 100M, 'D:\oracle\oradata\mydb\redo02.log' SIZE 100M, 'D:\oracle\oradata\mydb\redo03.log' SIZE 100M2.3.1创建数据库创建数据库 上面创建的数据库具有以下主要特点: ① 数据库名称为mydb,全局数据库名称也为mydb。
② 通过初始化参数CONTROL_FILES创建了3个控制文件 ③ 设置MAXINSTANCES参数只能有一个实例可以装载和打开数据库 ④ DATAFILE子句设定该数据库SYSTEM表空间所对应的操作系统文件为‘D:\oracle\oradata\mydb\system01.dbf假如该文件已事先存在,将被覆盖 ⑤ UNDO_TABLESPACE子句创建并命名撤消表空间,以便使用它来为数据库存储撤消记录 ⑥ ZHT16BIG5为数据库存放数据的字符集,它支持中文 ⑦ 新数据库拥有3个重做日志文件,分别设定在LOGFILE子句中 ⑧ CREATE DATABASE语句没有包含ARCHIVELOG子句,所以该数据库将不进行归档 ⑨ 新数据库的时区与操作系统的时区相同 2.3.1创建数据库创建数据库 7. 创建其他表空间创建其他表空间 要使数据库具有更多功能,就需要为用户创建另外的数据文件和表空间,按照应用系统实际需求而定 【例例2.12】创建表空间 (1) 创建Undo表空间 CREATE UNDO TABLESPACE RBS DATAFILE ’D: \oradata\mydb\rbs01.dbf’ SIZE 256M AUTOEXTEND ON NEXT 5120K EXTENT MANAGEMENT LOCAL; (2) 创建用户表空间 CREATE TABLESPACE USERS DATAFILE ’D: \oradata\mydb\users01.dbf’ SIZE 128M REUSE AUTOEXTEND ON NEXT 1280K EXTENT MANAGEMENT LOCAL MINIMUM EXTENT 128K DEFAULT STORAGE (INITIAL 128K NEXT 128K MINEXTENTS 1 MAXEXTENTS 4096 PCTINCREASE 0);2.3.1创建数据库创建数据库【例例2.12】创建表空间。
(3) 创建临时表空间 CREATE TEMPORARY TABLESPACE TEMP DATAFILE ’D: \oradata\mydb\temp01.dbf’ SIZE 32M REUSE AUTOEXTEND ON NEXT 640K EXTENT MANAGEMENT LOCAL UNIFORM SIZE 64K DEFAULT STORAGE (INITIAL 64K NEXT 64K MINEXTENTS 1 MAXEXTENTS UNLIMITED PCTINCREASE 0) ;(4) 创建工具表空间 CREATE TABLESPACE TOOLS DATAFILE ’D:\Oracle\oradata\mydb\tools01.dbf’ SIZE 64M REUSE AUTOEXTEND ON NEXT 320K MINIMUM EXTENT 32K DEFAULT STORAGE (INITIAL 32K NEXT 32K MINEXTENTS 1 MAXEXTENTS 4096 PCTINCREASE 0); 2.3.1创建数据库创建数据库【例例2.12】创建表空间。
(5) 创建索引表空间 CREATE TABLESPACE INDX DATAFILE ’D:\Oracle\oradata\test\indx01.dbf’ SIZE 32M REUSE AUTOEXTEND ON NEXT 1280K MINIMUM EXTENT 128K EFAULT STORAGE (INITIAL 128K NEXT 128K MINEXTENTS 1 MAXEXTENTS 4096 PCTINCREASE 0); 8. 创建数据字典表创建数据字典表 除了创建额外的表空间外,还必须在数据库建立之后执行两个重要的指令文件:catalog.sql和cataproc.sql这两个指令文件将在Oracle 10g数据库中建立管理工作必备的视图表、同义词以及PL/SQL套件(packages)例如:D:\ oracle\db_1\rdbms\admin\catalog.sqlD:\ oracle\db_1\rdbms\admin\catproc.sql 9. 将实例启动服务设置成自动启动方式将实例启动服务设置成自动启动方式 完成前面8个步骤就已经完成数据库的创建,为了便于启动数据库,可以设置实例在每次启动系统时自动启动实例。
例如,将mydb实例启动服务设置成自动启动方式:D:\oradim -edit -sid mydb -startmode auto2.3.2修改数据库修改数据库数据库创建后,可以使用ALTER DATABASE命令修改数据库的某些设置语法格式:语法格式:ALTER DATABASE database_name [ ARCHIVELOG ] [ NOARCHIVELOG ] [ RENAME FILE ‘path\filename’ ,…n TO ‘path\re_filename’,…n ] [ CREATE DATAFILE ‘data_filename ‘ [ AS ‘path\filename’ [ SIZE integer [K∣M ]] [ REUSE ]],…n] [ DATAFILE ‘path\filename’ [ ONLINE∣OFFLINE [DROP] ∣RESIZE integer [ K∣M ] ∣AUTOEXTEND OFF ∣ON [NEXT integer [K∣M]] [MAXSIZE UMLIMITED∣integer [ K∣M ]] ]2.3.2修改数据库修改数据库语法格式:语法格式: 其中:其中:RENAME FILE:重命名数据文件、临时文件或重做日志文件成员。
CREATE DATAFILE:创建新的空数据文件替代旧数据文件 DATAFILE:对数据文件有如下影响: ① ONLINE:使数据文件联机 ② OFFLINE:使数据文件脱机 ③ DROP:数据库在NOARCHIVELOG模式时使数据文件脱机 ④ RESIZE:将数据文件增加或减少到指定的绝对大小,用K或M为单位 ⑤ AUTOEXTEND OFF/ON:允许或禁止自动扩展 ⑥ END BACKUP:在联机表空间备份 其他参数和关键字与CREATE DATABASE的参数和关键字的含义相同,请参照对CREATE DATABASE参数和关键字的说明 2.3.2修改数据库修改数据库 【例例2.13】数据库的归档模式和数据文件 (1) 使上面创建的数据库切换到归档模式 ALTER DATABASE mydb ARCHIVELOG; (2) 创建新的数据文件以代替原来的数据文件 ALTER DATABASE mydb CREATE DATAFILE ‘users’ AS ‘d:\oracle\oradata\mydb\users01.dbf’ SIZE 50M REUSE AUTOEXTEND ON NEXT 20M MAXSIZE 500M EXTENT MANAGEMENT LOCAL; 在执行了上例的ALTER DATABAS命令之后,创建了一个初始大小为50M的数据文件。
在该数据文件被填满后,它按20M大小进行自我扩展,这个扩展持续到文件已达到500M 【例例2.14】使用ALTER DATABASE命令来手工扩展users01数据文件ALTER DATABASE mydb DATAFILE ‘d:\oracle\oradata\mydb\users01.dbf’ RESIZE 200M; 在执行了上例所示的ALTER DATABAS命令之后,指定的文件users01被重新设定为200M2.3.3创建表创建表 前面讨论了使用PL/SQL语句对数据库的创建、修改操作,这里介绍使用PL/SQL语句对表进行创建、修改和删除操作在以自己模式创建表时,必须拥有CREATE TABLE系统权限在其他用户模式中创建表,必须拥有CREATE ANY TABLE系统权限 语法格式语法格式: CREATE TABLE [schema.] table_name (column_name datatype [DEFAULT expression] [column_constraint],…n) [PCTFREE integer] [PCTUSED integer] [INITRANS integer] [MAXTRANS integer] [TABLESPACE tablespace_name] [STORGE storage_clause] [CLUSTER cluster_name(cluster_column,…n)] [ENABLE | DISABLE ] [AS subquery] 其中:其中: table_name:表名称。
schema:新表所属的用户方案 column_name:指定表的一个列的名字 2.3.3创建表创建表 datatype:该列的数据类型 PCTFREE:指定表或者分区的每一个数据块为将来更新表行所保留的空间百分比 PCTUSED:指定Oracle维持表的每个数据块已用空间的最小百分比 INITRANS:指定分配给表的每一数据块中的事务条目的初值 MAXTRANS:指定可更新分配给表的数据块的最大并发事务数 TABLESPACE:指定新表存储在由tablespace_name指定的表空间中 column_constraint:定义一个完整性约束作为列定义的一部分 column_constraint子句的语法的基本格式为:CONSTRAINT constraint_name [NOT] NULL [UNIQUE] [PRIMARY KEY [REFERENCES [schema.] table_name(column_name)] [CHECK(condition)] 2.3.3创建表创建表 STORGE:指定表的存储特征。
STORGE子句的基本格式为:STORAGE ( INITIAL integer K | integer M NEXT integer K | integer M MINEXTENTS integer MAXEXTENTS integer | UNLIMITED PCTINCREASE integer FREELISTS integer FREELIST GROUP integer )其中:INITIAL指定为表分配的第一个区的大小;NEXT指定第一个扩展区的大小;MINEXTENTS为创建段时已分配的总区数;MAXEXTENTS表示Oracle数据库可以分配给该对象的总区数;PCTINCREASE指定每个区相对于上一个区的增长百分比;FREELISTS指定表、簇或索引的每个空闲列表组的空闲列表量;FREELIST GROUP指定表、簇或索引的空闲列表组的数量 CLUSTER:指定该表是命名为cluster_name的簇的一部分。
2.3.3创建表创建表 AS subquery:表示将由子查询返回的行插入到所创建的表中使用AS subquery子句时,要注意以下事项: ① 表中的列数必须等于子查询中的表达式数 ② 列的定义只能指定列名、缺省值和完整性约束,不能指定数据类型 ③ 不能在含有AS subquery的CREATE TABLE语句中定义引用完整性相反,必须先创建没有约束的表,然后再用ALTER TABLE语句来添加约束Oracle从子查询中推导出数据类型和长度Oracle也遵循下列完整性约束规则: ① 如果子查询选择列而不是包含列的表达式,Oracle自动地为新表中的列定义任何NOT NULL约束,该列与被选表中的列相一致 ② 如果CREATE TABLE语句同时包含AS subquery和CONSTRAINT子句,Oracle就忽略AS subquery 如果任何行违反了该约束,Oracle就不创建表并返回一个错误信息 如果子查询中的全部表达式是列而不是表达式,则在表定义中可完全忽略这些列在这种情况下,表的列名和子查询中的列名相同 2.3.3创建表创建表【例例2.15】利用CREATE TABLE命令为XSCJ数据库建立表XS_KC, CREATE TABLE XS_KC ( XH char(6) NOT NULL, KCH char(6) NOT NULL, CJ number(2) NULL, XF number(2) NULL, CONSTRAINT "PK_XS_KC" PRIMARY KEY("XH", "KCH") ) TABLESPACE MYTS; 2.3.3创建表创建表 【例例2.16】利用CREATE TABLE命令为XSCJ数据库建立表KC,指定表的存储参数。
CREATE TABLE KC ( KCH CHAR(3) NOT NULL, KCM CHAR(16) NOT NULL, KKXQ NUMBER(1) NOT NULL, XS NUMBER(2) NOT NULL, XF NUMBER(2), CONSTRAINT CH_KKXQ CHECK(kkxq between 1 and 8), CONSTRAINT "PK_KCH" PRIMARY KEY("KCH") ) PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 TABLESPACE "MYTS" STORAGE (INITIAL 64K MINEXTENTS 1 PCTINCREASE 40 FREELISTS 1 FREELIST GROUPS 1 ); 2.3.3创建表创建表 【例例2.17】创建XS表中计算机专业学生的记录备份。
CREATE TABLE XS_JSJ AS SELECT * FROM XS WHERE ZYM=’计算机’;2.3.4修改表修改表 基本语法:基本语法: ALTER TABLE [schema.] table_name [ ADD(column_name datatype [DEFAULT expression][column_constraint],…n) ] /*增加新列*/ [ MODIFY([ datatype ] [ DEFAULT expression ] [column_constraint],…n) ] /*修改已有列的属性*/ [ STORAGE storage_clause ] /*修改存储特征*/ [ DROP drop_clause ] /*删除约束条件*/其中:其中:schema:修改的表的拥有者。
table_name:修改的表名 ADD:添加列或完整性约束MODIFY:修改已有列的定义 STORAGE:修改表的存储特征 DROP子句:从表中删除列或约束2.3.4修改表修改表 语法格式:语法格式: DROP COLUMN column_name∣ PRIMARY ∣ (column_name,…n) ∣ CONSTRAINT∣ [ CASCADE ] 说明说明: COLUMN:删除由column_name指定的列 PRIMARY:删除表的PRIMARY约束 UNIQUE:在由column_name指定的列上删除UNIQUE约束 CONSTRAINT:删除名为contraint_name的完整性约束 CASCADE:删除其他所有的完整性约束,这些约束依赖于被删除的完整性约束 2.3.4修改表修改表【例例2.18】(1) 在表XS中增加2列:JXJ(奖学金等级),DJSM(奖学金等级说明)。
ALTER TABLE XSADD ( JXJ NUMBER(1), DJSM VARCHAR2(40) DEFAULT ‘奖金1000元’ ); (2) 在表XS中修改名为DJSM的列的默认值 ALTER TABLE XS MODIFY ( DJSM DEFAULT ‘奖金800元’ ); (3) 在表XS中删除名为JXJ和DJSM的列 ALTER TABLE XS DROP COLUMN JXJ; ALTER TABLE XS DROP COLUMN DJSM; (4) 修改例2.16创建的表XS_KC的存储特征 ALTER TABLE XS PCTFREE 20 MAXTRANS 200; (5) 为表XS_JSJ加上主键 ALTER TABLE XS_JSJ ADD (CONSTRAINT "PK_JSJ" PRIMARY KEY("XH") );2.3.5删除表删除表 语法格式:语法格式: [schema.] table_name例如要删除表XS,使用如下语句: DROP TABLE XS;。












