`
anfslove
  • 浏览: 17543 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

oracle 约束 主键 唯一 外键 检查 非空 约束

阅读更多

/*
 注意:
   1.如果某个约束只作用于单独的字段,即可以在字段级定义约束,也可以在表级定义约束,
     但如果某个约束作用于多个字段,必须在表级定义约束
    
   2.在定义约束时可以通过CONSTRAINT关键字为约束命名,
     如果没有指定,ORACLE将自动为约束建立默认的名称
    
   3.非空约束只能定义在字段级别
*/

 

-- 创建教师表
-- drop table teacher cascade constraint;

create table teacher(
  id         number(6),
  name    varchar2(20),
  phone   varchar2(20),
  constraint pk_tea_id primary key (id)
);

 

-- 创建学生表
-- drop table student;
create table student(
  id           number(6)         /*primary key                                      */
,
  name      varchar2(20)      /*not null                                           */ ,  
  cardno     varchar2(20)      /*unique check(length(cardno)>18)         */
,
  tid          number(6)        /*references teacher(id)                         */

 

  /*也可如下这样做,可以自定义约束名称
  constraint pk_stu_id primary key (id),
  constraint uk_stu_cardno unique (cardno),
  constraint fk_tea_id foreign key (tid) references teacher (id),
  constraint ck_stu_cardno check(length(cardno)>18)*/
 
  /*还可如下这样做,但是约束名称是系统给的
  primary key (id),
  unique (cardno),
  foreign key (tid) references teacher (id),
  check (length(cardno)>18)*/

);

 

-- 如果建表的时候没有加上约束,也可以如下方式新添约束
-- 主键约束
alter table student add constraint pk_stu_id primary key(id);
-- 唯一约束
alter table student add constraint uk_stu_cardno unique(cardno);
-- 外键约束
alter table student add constraint fk_tea_id foreign key (tid) references teacher (id);
-- 检查约束
alter table student add constraint ck_stu_cardno check(length(cardno)>18);
-- 非空约束
alter table student modify(name not null);

 

-- 删除约束
-- 主键\唯一\检查\非空

alter table student drop primary key;
alter table student drop constraint pk_stu_id;
-- 外键
-- 方式一:先删除子表或者只删除子表的外键约束 然后使用drop table 表名删父表
-- 方式二:drop table 父表名 cascade constraints;


-- 禁用约束:
alter table 表名 disable constraint 约束名;
-- 启用约束
alter table 表名 enable constraint 约束名;

分享到:
评论

相关推荐

    Oracle中定义常用约束对象的命令

    非空约束 唯一性约束 主键约束 外键约束 检查约束

    oracle创建表的方法和一些常用命令

    1、主键和外键主键:关系...注2:Oracle数据库共有5个约束:主键、外键、非空、唯一、条件非空:这个列的值不能为空(NOT NULL)唯一:这个列的值在表中是唯一存在的,不能重复,但可以为空值(NULL)条件:可以对列的

    第二章:Oracle数据库表的管理

    四、Oracle的表操作–非空约束(not null) 五、oracle的表操作–唯一约束(unique) 六、Oracle的表操作–检查约束  七、Oracle的表操作–外键约束(foreign key) 八、Oracle的表操作–修改和删除表 九、Oracle的...

    oracle全程笔记及代码

    域完整性,是指取值范围、是否非空、是否唯一等; 参照完整性,是指一个表中的字段的值要参照另一个表中字段的值(主键字段的值),那么在该表中该字段称为外键,即通过外键来实现 参照完整性。主键所在的表...

    Oracle SQL Handler (Oracle客户端工具) V3.1

    CLOB, LONG) <2> 运行命令 "desc tablename" 能清楚地显示表的所有列(包括名称、数据类型及长度、默认值、非空)、所有的索引、所有的约束条件(主键、唯一键、检查键、子表、外键、触发器、甚至外键的外键) ...

    mysql数据库的基本操作语法

    主键约束相当于唯一约束+非空约束的组合,主键约束列不允许重复,也不允许出现空值;如果的多列组合的主键约束, 那么这些列都不允许为空值,并且组合的值不允许重复。 每个表最多只允许一个主键,建立主键约束可以...

    Oracle数据库、SQL

    16.3 not null:非空约束 31 16.4 unique key:唯一建约束 31 16.5 references foreign key:外键约束 32 16.6 check:检查约束 34 十七、 事务 35 17.1 transaction 35 17.2定义 35 17.3事务的特性:ACID 35 17.4...

    一个oracle客户端(oracle sql handler)

    ” 或 Ctrl+鼠标点击字串“[user.]objectName[@dbLink]”,如果是一表名,则能清楚地显示表的列信息(包括列名称、数据类型及长度、默认值、非空)、索引、约束条件(主键、唯一键、检查键、子表、触发器、外键、...

    transferdb:Transferdb支持异步数据库模式转换,全量数据导入,导入和增量数据同步功能(Oracle数据库-> MySQL数据库)

    支持非空约束,外键约束,检查约束等 数据同步【数据同步需要存在主键或者唯一键】 FULL模式【全量数据导入导入】数据同步转换导入要求表中存在主键或唯一键,否则因异常错误退出或手工中断退出,断点续传【替换为...

    震撼推出超方便实用的Oracle开发工具 - Oracle SQL Handler,双语界面,智能SQL编辑器,免装Oracle客户端,能运行于Windows, 双语界面

    ” 或 Ctrl+鼠标点击字串“[user.]objectName[@dbLink] ”,如果是一表名,则能清楚地显示表的列信息(包括列名称、数据类型及长度、默认值、非空)、索引、约束 条件(主键、唯一键、检查键、子表、触发器、外键、...

    程序员的SQL金典6-8

     3.1.3 非空约束对数据插入的影响  3.1.4 主键对数据插入的影响  3.1.5 外键对数据插入的影响  3.2 数据的更新  3.2.1 简单的数据更新  3.2.2 带WHERE子句的UPDATE语句  3.2.3 非空约束对数据更新的影响  ...

    程序员的SQL金典7-8

     3.1.3 非空约束对数据插入的影响  3.1.4 主键对数据插入的影响  3.1.5 外键对数据插入的影响  3.2 数据的更新  3.2.1 简单的数据更新  3.2.2 带WHERE子句的UPDATE语句  3.2.3 非空约束对数据更新的影响  ...

    程序员的SQL金典4-8

     3.1.3 非空约束对数据插入的影响  3.1.4 主键对数据插入的影响  3.1.5 外键对数据插入的影响  3.2 数据的更新  3.2.1 简单的数据更新  3.2.2 带WHERE子句的UPDATE语句  3.2.3 非空约束对数据更新的影响  ...

    程序员的SQL金典3-8

     3.1.3 非空约束对数据插入的影响  3.1.4 主键对数据插入的影响  3.1.5 外键对数据插入的影响  3.2 数据的更新  3.2.1 简单的数据更新  3.2.2 带WHERE子句的UPDATE语句  3.2.3 非空约束对数据更新的影响  ...

    oracle学习文档 笔记 全面 深刻 详细 通俗易懂 doc word格式 清晰 连接字符串

    在创建表时,经常会创建该表的主键、外键、唯一约束、Check约束等  语法结构 create table 表名( [字段名] [类型] [约束] ……….. CONSTRAINT fk_column FOREIGN KEY(column1,column2,…..column_n) ...

    Oracle开发工具 - Oracle SQL Handler(功能强大,超方便好用, 免装客户端, Windows / Linux)

    objectName[@dbLink]” 或 Ctrl+鼠标点击字串“[user.] objectName[@dbLink]”,如果是一表名,则能清楚地显示表的列信息(包括列名称、数据类 型及长度、默认值、非空)、索引、约束条件(主键、唯一键、检查键、子...

    程序员的SQL金典.rar

     3.1.3 非空约束对数据插入的影响  3.1.4 主键对数据插入的影响  3.1.5 外键对数据插入的影响  3.2 数据的更新  3.2.1 简单的数据更新  3.2.2 带WHERE子句的UPDATE语句  3.2.3 非空约束对数据更新的影响  ...

    2009达内SQL学习笔记

    export ORACLE_HOME=/oracledata/.../bin: 一、注意事项: 大小写不敏感,即不区分大小写。提倡关键字大写,便于阅读和调式。 “!”在SQL环境下执行Unix命令。 SQL语句是由简单的英语单词构成;这些英语单词...

    DM达梦数据库对象管理——表

    达梦支持哪些类型的表? 和oracle和相似,在oracle中支持的表类型几乎在dm中都...非空,唯一,主键,检查,外键 注释:comment 遵循3范式 案例1:规划一张学员信息表 表名:STU 列:学号(id char(10)),姓名(sname va

Global site tag (gtag.js) - Google Analytics