《表格模板-13管理表 精品.ppt》由会员分享,可在线阅读,更多相关《表格模板-13管理表 精品.ppt(65页珍藏版)》请在第一文库网上搜索。
1、方案对象管理方案对象管理 - 管理表管理表什么是什么是OracleOracle数据库方案?数据库方案? 方案方案是用户使用的一系列数据库对象的集合。是用户使用的一系列数据库对象的集合。而用户是用来连接数据库而用户是用来连接数据库并完成存取并完成存取数据库对数据库对象象的数据。的数据。 一个用户一般对应一个方案,该用户的方案名一个用户一般对应一个方案,该用户的方案名等于用户名,并作为该用户的缺省方案。这也等于用户名,并作为该用户的缺省方案。这也就是在企业管理器的方案下看到方案名都为数就是在企业管理器的方案下看到方案名都为数据库用户名的原因。据库用户名的原因。 如果如果SCOTTSCOTT用户创建
2、了表用户创建了表EMPEMP,那么,那么SCOTTSCOTT就是表就是表EMPEMP的所有者,的所有者,SCOTTSCOTT访问访问SCOTTSCOTT用用户下的户下的EMPEMP表时不用在表名前面加上表表时不用在表名前面加上表的所有的所有者:者:SELECT SELECT * * FROM EMP; FROM EMP; 如果其他用户要访问表如果其他用户要访问表EMPEMP,要在表名前面加,要在表名前面加上表上表的所有者:的所有者:SELECT SELECT * * FROM scott.emp; FROM scott.emp; 否则否则会显示会显示“没有此表没有此表”。3Oracle中的方案
3、对象类型中的方案对象类型 Table :表:表 Index :索引:索引 View: 视图视图 Synonym:同义词同义词(方案对象的一个别名,简化访问,提高安全)(方案对象的一个别名,简化访问,提高安全) Sequence:序列:序列 (命名的顺序编号生成器)(命名的顺序编号生成器) Procedure、function、trigger等等 存储过程、函数、触发器存储过程、函数、触发器 (是用户利用(是用户利用PL/SQL编写的命名的程序块)编写的命名的程序块)4 本章内容本章内容 表概述表概述 数据完整性与约束条件数据完整性与约束条件 管理表的策略管理表的策略 管理表管理表 创建表、更改
4、表、删除表及删减表创建表、更改表、删除表及删减表 管理约束管理约束 查看表信息及约束信息查看表信息及约束信息 OEM中管理表中管理表5 15.1 15.1 表概述表概述 表是表是OracleOracle数据库最基本的对象,其他数据库最基本的对象,其他许多数据库对象(如索引、视图)都以许多数据库对象(如索引、视图)都以表为基础。表被用于实际存储数据。表表为基础。表被用于实际存储数据。表中有列,列中存储多行数据。在关系数中有列,列中存储多行数据。在关系数据库中,不同表中的数据彼此之间可能据库中,不同表中的数据彼此之间可能存在一定的关系。存在一定的关系。 从用户角度看,表是一张二维表,即:从用户角度
5、看,表是一张二维表,即:表由行和列两部分组成,表通过行和列表由行和列两部分组成,表通过行和列来组织数据。通常称表中的一行为一条来组织数据。通常称表中的一行为一条记录,称表中的一列为一个字段。记录,称表中的一列为一个字段。6表和列的命名规则表和列的命名规则长度长度30个字节之内。个字节之内。必须以字母开头。必须以字母开头。由字母、数字、由字母、数字、_、#、$组成。组成。不能使用保留字。不能使用保留字。非法的命名,可以用非法的命名,可以用“”“”引着。引着。一个表内列名要唯一。一个表内列名要唯一。表名在名称空间内必须唯一。表名在名称空间内必须唯一。7Oracle中的数据类型中的数据类型 字符型字
6、符型 char 、nchar varchar2、nvarchar2 大对象数据类型大对象数据类型 clob 、nclob blob、bfile (二进制二进制) 二进制数据类型二进制数据类型 Row、Long Row 数字型数字型 number(p,s) 时间和日期时间和日期 Date,. 行数据类型行数据类型RowID、URowID15.2 15.2 数据完整性与约束条件数据完整性与约束条件 数据完整性数据完整性是关系数据库模型的基本原则,是用户在是关系数据库模型的基本原则,是用户在表上定义的一系列规则或约束条件,以及在表之间定表上定义的一系列规则或约束条件,以及在表之间定义的一系列相互关系
7、。数据完整性的作用,简单地说义的一系列相互关系。数据完整性的作用,简单地说,就是强制要求数据库中只能接受正确的、合理的数,就是强制要求数据库中只能接受正确的、合理的数据,防止错误的或无效的数据被插入到表中。据,防止错误的或无效的数据被插入到表中。 分三种类型:分三种类型: 实体完整性:实体完整性:主键的各个属性都不能为空值。主键的各个属性都不能为空值。 参照完整性:参照完整性:外键或者取空值,或者等于被参外键或者取空值,或者等于被参照关系中的主键的某个值。照关系中的主键的某个值。 用户自定义完整性:用户自定义完整性:属性(或属性组)的取值属性(或属性组)的取值应当满足用户定义的约束条件。应当满
8、足用户定义的约束条件。DEPTNODEPTNO的值必须的值必须与表与表DEPTDEPT中的中的DEPTNODEPTNO值匹配值匹配ENAMEENAME的每列都的每列都必须有一必须有一个值个值EMPNOEMPNO每每行都必须有行都必须有惟一的值惟一的值1015.2 15.2 数据完整性与约束条件数据完整性与约束条件数据完整性数据完整性 实体完整性实体完整性 参照完整性参照完整性 用户自定义完整性用户自定义完整性约束条件约束条件 Not Null Unique Check Primary key Foreign key约束级别约束级别 列级约束列级约束 表级约束表级约束1115.3 15.3 管理
9、表的策略管理表的策略 设计表的结构设计表的结构 表的类型表的类型1. 1. 标准表标准表( (按堆组织按堆组织) )2. 2. 索引表索引表(以(以 B B树索引段)树索引段)3. 3. 外部表外部表(操作系统文件中)(操作系统文件中)4. 4. 分区表分区表5. 5. 簇表簇表 表的位置及大小表的位置及大小 使用建表的相关选项使用建表的相关选项 (nologging)创建表创建表 如果要在自己的方案中创建表,要求用户必须如果要在自己的方案中创建表,要求用户必须具有具有CREATE TABLECREATE TABLE系统权限。系统权限。 如果要在其他方案中建表,则要求用户必须具如果要在其他方案
10、中建表,则要求用户必须具有有CREATE ANY TABLECREATE ANY TABLE系统权限。系统权限。 创建表时,创建表时,OracleOracle会为该表分配相应的表段。会为该表分配相应的表段。表段的名称与表名完全相同,并且所有的数据表段的名称与表名完全相同,并且所有的数据都会被存放在该表段中。都会被存放在该表段中。 要求表的创建者必须指定表空间上具有空间配要求表的创建者必须指定表空间上具有空间配额或具有额或具有UNLIMITED TABLESPACEUNLIMITED TABLESPACE系统权限系统权限。13Create table 语句语句 Create table sche
11、ma. table_name (column1 datatype1 default exp1 column1_constraint, column2 datatype2 default exp2 column2_constraint, table_constraint) on commit delete|preserve rows organizition heap.|index|external partition by() tablespace tablespace_name Logging|nologging compress|nocompress as query14创建标准表创建标准
12、表 create table department ( deptid number(9) not null, deptno char(2) default 01 not null, name varchar2(20), address varchar2(30), constraint pk_deptid primary key(deptid) validate, constraint uniq_name unique(name) novalidate, constraint chk_address check (address in (1号楼号楼,2号楼号楼,3号楼号楼,4号楼号楼) vali
13、date)15临时表临时表 Oracle Oracle 的临时表分为的临时表分为事务事务型和型和会话会话型。型。 事务型临时表事务型临时表 就是指在事务处理过程中插入的就是指在事务处理过程中插入的记录只在事务提交或回滚之前有效记录只在事务提交或回滚之前有效,一旦事务,一旦事务完成,表中的记录便被自动清除。完成,表中的记录便被自动清除。 会话型临时表会话型临时表 指临时表中的指临时表中的数据在本次会话期数据在本次会话期间一直有效,直到会话结束间一直有效,直到会话结束。会话结束后表中。会话结束后表中针对此次会话的数据会自动清空。针对此次会话的数据会自动清空。 当在临时表上执行当在临时表上执行DML
14、DML操作时,既不会加锁也操作时,既不会加锁也不会将数据变化写到重做日志中。不会将数据变化写到重做日志中。因此不能用因此不能用临时表保存永久数据。临时表保存永久数据。16创建临时表创建临时表Create global temporary table table_name ( ) on commit delete rows | on commit preserve rows 其中:其中: global temporary table指定表的类型为临时表。指定表的类型为临时表。 on commit delete rows指定表为事务临时表。指定表为事务临时表。 on commit preserve
15、 rows指定指定表为会话临时表。表为会话临时表。事务临时表例子:事务临时表例子:会话临时表的例子:会话临时表的例子:索引表索引表 对于标准表而言,其数据以无序方式存储;而对于索引对于标准表而言,其数据以无序方式存储;而对于索引表来说,其数据以表来说,其数据以B-树结构来组织,并且其叶子数据块树结构来组织,并且其叶子数据块既包含键列数据,也包含非键列数据。既包含键列数据,也包含非键列数据。 一般情况下,带有索引的标准表的表数据及其索引数据一般情况下,带有索引的标准表的表数据及其索引数据分别存放在对应的表段和索引段中,当在分别存放在对应的表段和索引段中,当在where子句中子句中引用索引列时,首
16、先定位索引数据并取得对应记录的引用索引列时,首先定位索引数据并取得对应记录的ROWID,然后根据,然后根据ROWID取得表的数据。取得表的数据。 建立索引表时,建立索引表时,Oracle会将表数据及其主键索引的数据会将表数据及其主键索引的数据一起放到索引段中。当在一起放到索引段中。当在WHERE子句中引用主键列时子句中引用主键列时,Oracle可以直接根据主键索引值取得表行数据。所以可以直接根据主键索引值取得表行数据。所以,如果要经常基于主键列检索表数据,那么如果要经常基于主键列检索表数据,那么OracleOracle建议使建议使用索引表。用索引表。 索引表和带索引的标准表是绝对不同的。索引表和带索引的标准表是绝对不同的。 索引表的优点:索引表的优点: 在执行针对主键查询,索引表远远比具有索引的标在执行针对主键查询,索引表远远比具有索引的标准表要快的多。准表要快的多。 但索引表不宜存放变动太大的数据。开销太大。但索引表不宜存放变动太大的数据。开销太大。创建索引表创建索引表 Create table IOT1 ( id number(9), name varchar2(20), addr