{企业管理表格}管理表

合集下载
相关主题
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
1-12
Create table 语句
• Create table [schema.] table_name (column1 datatype1 [default exp1] [column1_constraint], column2 datatype2 [default exp2] [column2_constraint], … [table_constraint]) [on mit {delete|preserve} rows] [organizition {heap..|index…|external…}] [partition by…(…)] [tablespace tablespace_name] [Logging|nologging] [press|nocompress] [as query]
1-2
Oracle中的方案对象类型
• Table :表 • Index :索引 • View: 视图 • Synonym:同义词 (方案对象的一个别名,简化访问,提高安全) • Sequence:序列 (命名的顺序编号生成器) • Procedure、function、trigger等
存储过程、函数、触发器 (是用户利用PL/SQL编写的命名的程序块)
• 从用户角度看,表是一张二维表,即: 表由行和列两部分组成,表通过行和列 来组织数据。通常称表中的一行为一条 记录,称表中的一列为一个字段。
1-5
表和列的命名规则
长度30个字节之内。 必须以字母开头。 由字母、数字、_、#、$组成。 不能使用保留字。 非法的命名,可以用“”引着。 一个表内列名要唯一。 表名在名称空间内必须唯一。
1-7
15.2 数据完整性与约束条件
• 数据完整性是关系数据库模型的基本原则,是用户在 表上定义的一系列规则或约束条件,以及在表之间定 义的一系列相互关系。数据完整性的作用,简单地说 ,就是强制要求数据库中只能接受正确的、合理的数 据,防止错误的或无效的数据被插入到表中。
• 分三种类型: • 实体完整性:主键的各个属性都不能为空值。 • 参照完整性:外键或者取空值,或者等于被参 照关系中的主键的某个值。 • 用户自定义完整性:属性(或属性组)的取值 应当满足用户定义的约束条件。
1-25
外部表
• Oracle允许以只读方式访问外部表中的数据。 • 外部表指不是数据库中的表,而是操作系统
(简称OS)文件中的表。 • 使用create table语句的organization external子句
创建外部表。 • 使用Insert语句将OS文件中的数据装载到数据
库中,从而实现SQL*Loader的功能。 • 最大用途:通过外部表可以把OS文件中的数
1-8
ENAME 的每列 都必须 有一个 值
EMPNO每 行都必须 有惟一的
1-9
DEPTNO的值必须 与表DEPT中的 DEPTNO值匹配
15.2 数据完整性与约束条件
数据完整性
• 实体完整性 • 参照完整性 • 用户自定义完整性
约束条件
• Not Null • Unique • Check • Primary key • Foreign key
{企业管理表格}管理表
1-1
什么是Oracle数据库方案?
• 方案是用户使用的一系列数据库对象的集合。 而用户是用来连接数据库并完成存取数据库对 象的数据。
• 一个用户一般对应一个方案,该用户的方案名 等于用户名,并作为该用户的缺省方案。这也 就是在企业管理器的方案下看到方案名都为数 据库用户名的原因。
列数据所预留空间的百分比。如果数据块剩余空间低于 PCTHRESHOLD设置,Oracle会将其他数据存放到溢出 段。 • OVERFLOW TABLESPACE指定溢出段所在表空间。 • INCLUDING:当有溢出情况时,指定控制哪些非键值列 与键值列存储在一起。
1-23
• INCLUDING clumn:该选项用来控制哪些非键列要 与键列存储在一起。
• 如果SCOTT用户创建了表EMP,那么SCOTT 就是表EMP的所有者,SCOTT访问SCOTT用 户下的EMP表时不用在表名前面加上表的所有 者:SELECT * FROM EMP;
• 如果其他用户要访问表EMP,要在表名前面加 上表的所有者:SELECT * FROM scott.emp; 否则会显示“没有此表”。
约束级别
• 列级约束 • 表级约束
1-10
15.3 管理表的策略
• 设计表的结构 • 表的类型 1. 标准表(按堆组织) 2. 索引表(以 B树索引段) 3. 外部表(操作系统文件中) 4. 分区表 5. 簇表 • 表的位置及大小 • 使用建表的相关选项 (nologging)
1-11
创建表
• 如果要在自己的方案中创建表,要求用户必须 具有CREATE TABLE系统权限。
1-19
• 索引表和带索引的标准表是绝对不同的。
1-20
• 索引表的优点: 在执行针对主键查询,索引表远远比具有索引的标 准表要快的多。
• 但索引表不宜存放变动太大的数据。开销太大。
1-21
创建索引表
Create table IOT1 ( id number(9), name varchar2(20), address varchar2(30), note varchar2(40), constraint PK_ID primary key (ID) validate ) organization index pctthreshold 40 including address overflow tablespace users;
据装载到Oracle数据库中。
1-26
创建外部表
• Step0: 在C:\准备一个department.txt的文件。 • Step1: 建立目录对象。
conn sys/o123 as sysdba; create directory dept_dir as 'C:\'; • Step2: 创建外部表(create table语句) 包括两部分,一部分描述表列的数据类型,另 外一部分描述OS文件数据与表列对应关系。 • Step3: 使用外部表。
1-22
• 执行上述语句后,会建立索引表IOT1,其键列和非键列 会存放到主键约束所对应的索引段PK_ID中,而溢出数 据则会存放到溢出段SYS_IOT_OVER_n(n:索引表的对 象号)中。
• 定义索引表时,主键约束和ORGANIZATION INDEX选 项时必须指定的。
选项的作用如下: • ORGANIZATION INDEX:用于指定创建一个索引表, • PCTHRESHOLD:用于指定数据块中为键列和部分非键
(address in ('1号楼','2号楼','3号楼','4号楼')) validate)
1-14
临时表
• Oracle 的临时表分为事务型和会话型。
• 事务型临时表 就是指在事务处理过程中插入的 记录只在事务提交或回滚之前有效,一旦事务 完成,表中的记录便被自动清除。
• 会话型临时表 指临时表中的数据在本次会话期 间一直有效,直到会话结束。会话结束后表中 针对此次会话的数据会自动清空。
• 外部表ext_department里面已经有数据了, 我们就可以把这些数据导入到真正的 Oracle的表中。
如:insert into department select * from ext_department;
• 可以使用user_external_tables来查看当前用 户可以使用的外部表。
• 其中: • global temporary table指定表的类型为临时表。 • on commit delete rows指定表为事务临时表。
• on commit preserve rows指定表为会话临时表。
1-16
事务临时表例子:
1-Fra Baidu bibliotek7
会话临时表的例子:
1-18
索引表
• 对于标准表而言,其数据以无序方式存储;而对于索引 表来说,其数据以B-树结构来组织,并且其叶子数据块 既包含键列数据,也包含非键列数据。
1-27
• Create table ext_department
• (DeptId number(9),
• DeptNo char(2),
• Name varchar2(20),
• Address varchar2(30)
•)
• Organization external
• (type ORACLE_LOADER
1-6
Oracle中的数据类型
• 字符型 —— char 、nchar
varchar2、nvarchar2
• 大对象数据类型—— clob 、nclob
blob、bfile (二进制)
• 二进制数据类型—— Row、Long Row • 数字型 —— number(p,s) • 时间和日期—— Date,.. • 行数据类型——RowID、URowID
1-13
创建标准表
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
• OVERFLOW TABLESPACE:用于指定溢出段所在 的表空间。
1-24
通过查询创建表(CTAS方式)
• SQL> create table emp1 as select * from emp nologging; --在创建大表时,建议带。
查询创建表,约束及默认值定义不会被复制。 查询创建表,不能带tablespace子句。 可以复制表的结构,复制数据。 可以复制表中的个别字段。
1-3
本章内容
• 表概述 • 数据完整性与约束条件 • 管理表的策略 • 管理表
创建表、更改表、删除表及删减表 • 管理约束 • 查看表信息及约束信息 • OEM中管理表
1-4
15.1 表概述
• 表是Oracle数据库最基本的对象,其他 许多数据库对象(如索引、视图)都以 表为基础。表被用于实际存储数据。表 中有列,列中存储多行数据。在关系数 据库中,不同表中的数据彼此之间可能 存在一定的关系。
• 当在临时表上执行DML操作时,既不会加锁也 不会将数据变化写到重做日志中。因此不能用 临时表保存永久数据。
1-15
创建临时表
Create global temporary table table_name ( …) on mit delete rows | on mit preserve rows
• 一般情况下,带有索引的标准表的表数据及其索引数据 分别存放在对应的表段和索引段中,当在where子句中 引用索引列时,首先定位索引数据并取得对应记录的 ROWID,然后根据ROWID取得表的数据。
• 建立索引表时,Oracle会将表数据及其主键索引的数据 一起放到索引段中。当在WHERE子句中引用主键列时, Oracle可以直接根据主键索引值取得表行数据。所以, 如果要经常基于主键列检索表数据,那么Oracle建议使用 索引表。
• Default directory dept_dir
• Access parameters
• (records delimited by newline
• Fields terminated by ‘,’
1-28
• Missing field values are null
1-29
department.txt
• 如果要在其他方案中建表,则要求用户必须具 有CREATE ANY TABLE系统权限。
• 创建表时,Oracle会为该表分配相应的表段。 表段的名称与表名完全相同,并且所有的数据 都会被存放在该表段中。
• 要求表的创建者必须指定表空间上具有空间配 额或具有UNLIMITED TABLESPACE系统权限 。
相关文档
最新文档