1. 1、本文档共24页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
Less_09建表

目标 生成一张包含完整性约束的表. 确定表的命名规范. 描述当你定义列时可能用到的数据类型. 认识自动生成的索引. 基于一个表的内容建一个新表 数据结构 一个Oracle的数据库可以包括多种数据结构. Table 存储数据 View 从一个或多个表中提取的数 据的子集 Sequence 产生主键值 Index 提高某些查询的性能 在数据库设计中定义结构. 表结构 随时可创建 无需预先决定其大小 可被在线修改 建表:语法 你必须拥有指定的权限: CREATE TABLE 存储区域 参考其他用户的表 约束必须参考同一数据库的其他表. 属于其他用户的表不在用户的模式中. 你应使用所有者的名字作为表的前缀. 缺省选项 在insert过程中,为一列指定一个缺省的值. 命名规则 必须以字母开头 1-30个字符长 只能包含A-Z, a-z, 0-9, _, $, and # 同一个用户不能拥有两个同名的对象 不能使用Oracle Server的保留字 数据类型 约束 在表一级定义. 如果存在依赖关系,阻止删除一张表. 下面是一些在Oracle中有效的约束类型: 非空 唯一性 主键 外键 检测 约束指导 服务器为约束自动命名,格式为SYS_Cn 生成一个约束 在生成表的同时. 在生成一个表后. 在列或表级定义一个约束条件. 约束:句法 列级约束 表级约束 NOT NULL约束 确保列中不能出现空值 在列级被定义 举例 UNIQUE约束 在一张表中指定一列或多列组合中没有两行具有相同的键值 若UNIQUE键是基于单列的,则可以有空值。 可以在表或列级被定义 自动生成一个UNIQUE索引 主键约束 为表生成一个主键;每个表只能拥有一个主键 在主键中不允许出现空值 可以在表或列级被定义 自动生成一个唯一索引 外键约束 定义单列或组合列为一个外键 外键的值对应于另一个表中的主键值 可在表或列级定义 必须和父表中的值相匹配或为空值 FOREIGN KEY Constraint Keywords FOREIGN KEY 在表级定义子表中的列约束 REFERENCES 确定父表中的表名和列名 ON DELETE CASCADE 删除父表行的同时删除子表中的从属行 利用表实例图表生成一张表 1. 生成一个脚本文件. 书写建表的语法. 2. 映射列名,数据类型和长度. 3.在列级映射非空约束. 4. 映射主键约束. 5.映射唯一性,检测性,和外键约束. 6. 保存并执行脚本文件. 建表:举例 CREATE TABLE dept1 ( deptno NUMBER(4) PRIMARY KEY, dname VARCHAR2(30) NOT NULL, loc VARCHAR2(13)); 建表:举例 CREATE TABLE emp1( empno NUMBER(6) primary key, ename VARCHAR2(25) NOT NULL, email VARCHAR2(25) unique, sal NUMBER(8,2), comm NUMBER(8,2) check (comm in(10,12.5,15,17.5,20)), hiredate DATE default sysdate, deptno NUMBER(4) REFERENCES dept1(deptno) ); Creating a Table by Using a Subquery: Syntax 通过合并CREATE TABLE命令和AS 子查询选项建一张表并插入行记录. 被指定列的数目应和子查询列的数目相对应. 使用缺省的值和完整性约束定义列 利用子查询建一个表: 举例 建一个表包含 S_EMP 表里部门号为41的所有员工信息 只有NOT NULL约束被继承. Confirming Table Creation 利用SQL*Plus DESCRIBE命令确认一个数据库表和它的列的存在. DML 语句(DB写语句) INSERT INTO emp VALUES(`e01`, `李宏`,32 ,…); UPDATE emp SET sal=sal*1.1 WHERE dno=`d01` ; DELETE FROM emp WHERE dno=`d01` ; 9-* Copyright ó Oracle Corporation

文档评论(0)

xcs88858 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

版权声明书
用户编号:8130065136000003

1亿VIP精品文档

相关文档