Oracle - 二维表相关

1. 创建二维表

-- create table 表名 (
  -- 字段名1 字段类型 [not null] [primary key] ,
  -- 字段名2 字段类型 check(条件判断),
  -- 字段名3 字段类型 ,
  -- ...
  -- constraint 约束名 primary key(字段名)
-- )

-- 字段类型

  -- number 数值类型
     -- number(a, b), 总长度为a, 小数位长度为b, 小数位可以不写

  -- varchar2 字符类型
     -- varchar(a), a表示字符的最大长度
     -- 实际存储的内存长度是根据字符大小来分配的, 但是不能超过a
     -- 动态分配存储空间, 节省空间

  -- char 字符类型
     -- char(a), 不管字符数据长度是多少, 直接开辟a大小的空间来存储数据
     -- 存储效率高于varchar2

  -- date 日期类型

2. 维护二维表

-- 添加新字段
  -- alter table 表名 add 新字段名 字段类型

-- 修改原字段
  -- 修改字段类型
  -- alter table 表名 modify 字段名 新字段类型
  -- 修改字段名
  -- alter table 表名 rename column 字段名 to 新字段名
  -- 删除字段
  -- alter table 表名 drop column 字段名

-- 修改表名
  -- rename 原表名 to 新表名

3. 删除二维表

--  drop table 表名

4. 创建约束 (主键约束/非空约束/检查约束/唯一约束)

-- 添加主键 : 非空唯一
  -- 直接在创建表的字段后使用 primary key
  -- 在创建表的语句最后 constraints 约束名 primary key(字段名)
  -- 在创建表后 alter table 表名 add constraints 约束名 primary key(字段名)
  -- 删除主键 alter table 表名 drop constraints 约束名

-- 非空约束
  -- 直接在创建表的字段后使用 not null
  -- 在创建表的语句最后 constraints 约束名 check(字段名 is not null)
  -- 在创建表后 alter table 表名 add constraints 约束名 check(字段名 is not null)
  -- 删除非空约束 alter table 表名 drop constraints 约束名

-- 检查约束
  -- 直接在创建表的字段后使用 check(条件判断)
  -- 在创建表的语句最后 constraints 约束名 check(条件判断)
  -- 在创建表后 alter table 表名 add constraints 约束名 check(条件判断)
  -- 删除检查约束 alter table 表名 drop constraints 约束名

-- 唯一约束
  -- 直接在创建表的字段后使用 unique
  -- 在创建表的语句最后 constraints 约束名 unique(字段名)
  -- 在创建表后 alter table 表名 add constraints 约束名 unique(字段名)
  -- 删除唯一约束 alter table 表名 drop constraints 约束名

-- 外键约束

  -- 作用: 当在子表中插入的数据在父表中不存在, 则会自动报错

  -- 当一张表的某个字段的值需要依赖另外一张表的某个字段的值, 则使用外键约束
  -- 其中主动依赖的表称为子表, 被依赖的表称为父表, 外键加在子表中

  -- 使用:
     -- 在子表中的字段后直接使用 references 父表名(父字段名)
     -- 在创建表的语句最后 constraints 约束名 foreign key(子字段名) references 父表名(父字段名)
     -- 在创建表后 alter table 表名 add constraints 约束名 foreign key(子字段名) references 父表名(父字段名)
     -- 删除外键约束 alter table 表名 drop constraints 约束名

  -- 无法直接删除父表数据, 可以使用级联删除
  -- 级联删除 :
     -- 在添加外键约束时, 在结尾使用关键字 on delete cascade
     -- 当删除父表数据时, 会自动删除子表相关所有数据 (缺点: 无法保留子表历史数据)
     -- 在添加外键约束时, 在结尾使用关键字 on delete set null
     -- 当删除父表数据时, 会将子表中的依赖字段的值设置为null (注意: 子表依赖字段不能添加非空约束)

原文地址:https://www.cnblogs.com/mpci/p/12228671.html

时间: 2024-10-12 03:20:35

Oracle - 二维表相关的相关文章

Oracle二维表的创建与约束以及修改

Oracle二维表的创建与约束以及修改 创建表2477203708 create table 表名( 属性名 数据类型 行约束条件, 属性名 数据类型 行约束条件, …… 表级约束条件 ) 字符串 char 使用指定长度的固定长度表示的字符串,位数不足的字符串在其后补空字符: 字符串 varchar 存放固定长度的字符串 字符串 varchar2 长度可变的字符串,动态分配内存空间(Oracle所特有的数据类型) 数字 number number(6,3)数据长度为6,其中3位为小数 日期 da

Oracle【二维表管理:约束】

1.简单的表创建和字段类型最简单的方式去创建表(没有添加主键之类的约束条件)[Oracle的字段类型]number:数值类型--整数类型:number(a) 总长度a--小数类型:number(a,b) 总长度a,小数长度b,小数可缺省varchar2:字符类型--字符类型 varchar2(ln) ln表示字符的最大长度,实际存储内存的长度<=ln--特点:多态分配存储空间,节省空间char:字符类型--字符类型char(ln) 不管字符数据长度多大,直接在内存开辟ln大小的空间存储数据--特

层次结构和二维表的关系数据存储

摘:Storing Hierarchical Data in a Database Article(翻译版本) 原文链接:http://shiningray.cn/hierarchical-data-database.html 作者:Gijs Van Tulder 翻译:ShiningRay @ NirvanaStudio 无论你要构建自己的论坛,在你的网站上发布消息还是书写自己的CMS程序,你都会遇到要在数据库中存储层次数据的情况.同时,除非你使用一种像XML的数据库,否则关系数据库中的表都不

Excel Power Query经典应用之二维表转一维表

Excel Power Query经典应用之二维表转一维表 将一个二维表格转为一维表格,是我们经常要做的事,目的是为了将数据做更好的分析.但Excel普通的转换的方式却比较麻烦.不过不用担心.利用Excel的Power Query功能,可以实现秒转. 了解更多新技能,扫描关注微信公众号 大话office

C++二维码相关库编译

一.瞎想 坐在地铁上闲来无聊,突然想到了二维码,顺手就百度了下相关的资料,目前C++二维码相关的库不多,也就zbar(开源中国上下了半天也没下载下来).zxing,不过这两个库据说都是解析二维码的,不能生成二维码,这个是对于C++而言,如果你是搞C#或者java的,那么恭喜你,你可以直接使用zxing库来完成生成和解析二维码,具体参看 C++生成二维码总结,这篇文章主要是总结了下当前二维码相关的第三方库,个人觉着不错.QZXing是基于qt将zxing进行了封装 zxing实现二维码生成和解析,

采用jsp页面与java代码分离的方式写一个简单的二维表

前提:在我们做程序时追求的是高内聚,低耦合,但是如果我们把jsp页面的的代码和java的代码都放在了jsp的代码编写中,使java和jsp高耦合这样的话不仅使jsp代码页面显得很复杂,而且也特别让不利于以后的维护,所以我们有了一个不成文的规范就是分层架构,把javad代码与jsp的代码分离开来,使jsp代码页中更加干净整洁. 下面我将于用jsp和java代码分离的方法做出这样的一个二维表(做一个jsp页面动态显示信息表) 第一步:首先我们需要一个实体类用于存放一个人的一整条信息(根据表格信息有编

mysql关系(二维表)的设计规范,范式

范式,NF,normal format,就是指对表的结构的要求! 目的:1,规范结构!2,减少数据冗余! 第一范式,1NF,字段原子性 要求字段不能再分,要求字段的原子性 第二范式,2NF,非部分依赖 增加唯一主键即可!ID 范式的要求,是逐渐递增! 在满足 了 第一范式的前提下,不能出现部分依赖! 部分依赖指的是:普通字段对 主键 是完全依赖的,而不应该是依赖主键的一部分! 依赖:可以通过那个字段去决定另一个字段 因此,出现主键部分依赖的前提是,出现复合主键! 其中代课时间,开始和结束时间,没

数据库中的二维表—巧借Excel

一维表和二维表的区别         一维表也常称为流水线表格,它和二维表做出的数据透视表最大的区别在于"行总计".判断数据是一维表格还是二维表格的一个最简单的办法,就是看其列的内容--每一列是否是一个独立的参数.如果每一列都是独立的参数那就是一维表,如果每一列都是同类参数那就是二维表. 二维表的建立     开始在网上一直查找如何在数据库中建立二维表,查了很多资料大多是什么静态和动态的sql语句建立,看了看也不是很清楚但是在查询的时候总是出来Excel如何如何,于是便想是否可以在Ex

如何用Excel QueryTable以二维表的方式展现MOLAP里的多维数据

关于误用.滥用MDX和SSAS的场合,这里引用一篇老外的文章(http://www.bp-msbi.com/2010/03/when-not-to-write-mdx-and-when-not-to/),重点请看下最后一节(2. No Aggregations)里的内容,考虑到看官网速可能不太给力,引用此部分内容如下: 2. No Aggregations Another way SSAS gets misused is when a lot of textual data gets store