8、创建表视图序列索引.ppt

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

CISSST ? 2012 西安软件服务外包学院.All rights reserved. Xian institute Service Software Science Technology 课程编号: DB001 课程名: Oracle 11g SQL开发 章节编号:DB001-08 章节标题:创建表、视图、序列、索引 编写:司丙茂 一、创建表 创建表: CREATE [GLOBAL TEMPORARY] TABLE tableName( colName colType [DEFAULT defaultExp CONSTRAINT constraintDef ] [,colName colType……] ) [ ON COMMIT { DELETE | PRESERVE } ROWS ] TABLESPACE tabSpace ; 说明: GLOBAL TEMPORARY 选项表示该表中的行都是临时的,这种表也称为全局临时表。临时表中的行是特定于某个用户会话的,行的有效期由ON COMMIT子句指定: 如果是ON COMMIT DELETE ROWS则表示提交事务后自动删除临时表中的所有数据;如果是ON COMMIT PRESERVE ROWS则表示提交事务后保留数据直至会话结束。 DEFAULT用于指定该列的默认值; CONSTRAINT后跟对于该列的约束; 注:如果是创建全局临时表,那么不能使用最后的TABLESPACE tabSpace指定表空间。 1,约束的种类: (1)主键约束:表中任一行在主键列的值都不能为空,主键列的值能唯一确定一条记录。 (2)外键约束:外键列的值要么为空,要么等于它引用到的列的某个值。外键列只能引用另一个表中的具有主键约束或唯一键约束的列。 (3)唯一约束:该列的值要么为空,要么是一个唯一值; (4)检查约束:该列的值要么为空,要么符合一个表达式的限制; (5)非空约束:表中任一行在该列的值都不能为空。 2,约束的定义,有两种方式: 列级约束:紧跟每列的定义,列级约束是列定义的一部分; 表级约束:所有列都定义完毕,后续的独立定义约束的语句,表级约束可针对某一列或多列; 列级约束的完整语法: CONSTRAINT constraintName [选择以下某种约束] 主键:PRIMARY KEY 外键:REFERENCES otherTableName(columnName) 唯一:UNIQUE 检查:CHECK (exp) 非空:NOT NULL (1)约束命名约定: pk_table_column fk_table_column uq_table_column ck_table_column nn_table_column (2)可以不指定约束名,那么数据库会自动生成一个约束名。 (3) 一个列可以有多个约束 【示例】列级约束 【示例】创建临时表 表级约束的语法: 主键约束:CONSTRAINTS pk_tbName_colName PRIMARY KEY(colName) 外键约束:CONSTRAINTS fk_tbName_colName FOREIGN KEY (colName) REFERENCES tbName (colName), 检查约束:CONSTRAINTS ck_tbName_colName CHECK( exp ) 唯一约束:CONSTRAINTS uq_tbName_colName UNIQUE(colName) 【示例】表级约束 注: ○非空约束只能定义在列级; ○联合主键只能使用表级约束; 3,列默认值:DEFAULT exp DEFAULT短语和CONSTRAINT短语的前后顺序不能颠倒 通过复制现有表来创建新表: CREATE TABLE tableName AS (子查询); 新表的结构和内容由子查询的返回结果决定。 【示例】复制现有表的结构和内容 特殊使用: CREATE TABLE tableName AS (SELECT * FROM otherTable WHERE 1=2) 子查询不会返回一条记录,此时只复制表结构,不复制内容。 二、修改表 1,添加列 ALTER TABLE tableName ADD columnName type [DEFAULT … CONSTRAINT …] 注:如果表中已经有了记录,那么新追加的列不能有NOT NULL约束。 2,修改列的数据类型 ALTER TABLE tableName MODIFY columnName newType 注:修改类型时,如果表中还没有记录或该列的所有值都为空,那么可以将它修改为任意数据类型;如果已经有了数据,那么只

文档评论(0)

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

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

版权声明书
用户编号:8130065136000003

1亿VIP精品文档

相关文档