文档章节

SQL约束 CONSTRAINT

e
 enosh
发布于 2015/06/02 16:36
字数 813
阅读 10
收藏 0
点赞 0
评论 0

       约束用于限制插入或则跟新数据表的数据的类型。也就是在表的数据跟新的时候数据库会验证更改或则插入的数据类型是否符合约束条件。可以在创建表的时候增加约束,也可以在创建表之后增加约束。

1.创建表的时候加入约束

第一种方式:
如加入not null约束,即id不能为空,如果为空数据库会拒绝执行插入或则更新。

CREATE TABLE hr.employee
(
  id character varying(40) NOT NULL,
  active character(1)
)

第二种方式:

CREATE TABLE hr.employee
(
  id character varying(40),
  active character(1),
  CONSTRAINT id Not Null 
)

2.创建表之后加入约束

CREATE TABLE hr.employee
(
  id character varying(40),
  active character(1),
)
ADD CONSTRAINT id_active_unique UNIQUE (id,active)

这样employee表中,id和active联合起来必须是唯一的。

3.删除约束

CREATE TABLE hr.employee
(
  id character varying(40),
  active character(1),
  role character varying(40)
  CONSTRAINT role_foreign_key FOREIGN KEY (role)
      REFERENCES hr.role(id) MATCH SIMPLE
      ON UPDATE NO ACTION ON DELETE NO ACTION
)  

alter table hr.employee
drop CONSTRAINT role_foreign_key:

4.重要的几个约束

Not Null : 列不能为空的约束
UNIQUE : 确保一个表中唯一性的约束,可以是一列,也可以是多列联合起来是唯一的。

CREATE TABLE hr.employee
(
  id character varying(40),
  active character(1),
  CONSTRAINT id_unique UNIQUE(id)
)
或者
CREATE TABLE hr.employee
(
  id character varying(40),
  active character(1),
  user character varying(40),
  CONSTRAINT id_unique UNIQUE (id, user)
)

PRIMARY KEY : 唯一标示约束,可以用在单个列上,也可以多个列联合成为主键.

CREATE TABLE hr.employee
(
  id character varying(40) PRIMARY KEY,
  active character(1),
  user character varying(40)
)


CREATE TABLE hr.employee
(
  id character varying(40),
  active character(1),
  user character varying(40),
  CONSTRAINT id_user_primary_key PRIMARY KEY (id, user)
)

UNIQUE 和 PRIMARY KEY 约束均为列或列集合提供了唯一性的保证。PRIMARY KEY 拥有自动定义的 UNIQUE 约束。每个表可以有多个 UNIQUE 约束,但是每个表只能有一个 PRIMARY KEY 约束。

FOREIGN KEY : 用来约束列必须指向另一个表的PRIMARY KEY, FOREIGN KEY 约束用于预防破坏表之间连接的动作。FOREIGN KEY 约束也能防止非法数据插入外键列,因为它必须是它指向的那个表中的值之一。

CREATE TABLE hr.employee
(
  id character varying(40),
  active character(1),
  user character varying(40),
  CONSTRAINT id_user_primary_key PRIMARY KEY (id, user),
  CONSTRAINT user_foreign_key FOREIGN KEY (user)
      REFERENCES hr.user(id) MATCH SIMPLE
      ON UPDATE NO ACTION ON DELETE NO ACTION
)
CHECK : 约束用于限制列中的值的范围, 可以用来限制一个列中值的范围,也可以联合几个列限制范围。
CREATE TABLE hr.employee
(
  id character varying(40) PRIMARY KEY,
  active character(1),
  user character varying(40),
  age integer,
  year integer,
  CONSTRAINT age_check CHECK(age > 18)
)
CREATE TABLE hr.employee
(
  id character varying(40) PRIMARY KEY,
  active character(1),
  user character varying(40),
  age integer,
  year integer,
  CONSTRAINT age_check CHECK(age > 18 and year > 2015)
)
DEFAULT : 用于向列中插入默认值
CREATE TABLE hr.employee
(
  id character varying(40) PRIMARY KEY,
  active character(1),
  user character varying(40),
  age integer DEFAULT 18,
  year integer DEFAULT 2015
)

添加默认约束

ALTER TABLE hr.employee
ALTER COLUMN age SET DEFAULT '18';


删除默认约束

ALTER TABLE hr.emoloyee
ALTER COLUMN age DROP DEFAULT;

© 著作权归作者所有

共有 人打赏支持
e
粉丝 7
博文 72
码字总数 19035
作品 0
大连
1Z0-051-DDL-表的约束

表的约束 表约束是数据库能够实施业务规则以及保证数据遵循实体-关系模型的一种手段。如果 DML违法了约束,则将自动回滚整个语句。 1.1 约束类型 (1)UNIQUE 约束 注:对于具有UNIQUE约束的...

pcghans ⋅ 2016/06/29 ⋅ 0

Oracle 约束详解

一 约束的定义 约束是强加在表上的规则或条件。确保数据库满足业务规则。保证数据的完整性。当对表进行DML或DDL操作时,如果此操作会造成表中的数据违反约束条件或规则的话,系统就会拒绝执行...

whshurk ⋅ 01/03 ⋅ 0

维护数据完整性

1、数据完整性规则:域完整性(Domain 栏位列)、实体完整性(Entity 实体行)、参照完整性(Reference) 数据完整性三种方式:a.使用应用代码;b.触发器trigger通过一段代码(过程)满足某个...

spider1983 ⋅ 2014/04/17 ⋅ 0

sql 高级 (四)(SQL 约束 (Constraints))

SQL 约束 NOT NULL UNIQUE PRIMARY KEY FOREIGN KEY CHECK DEFAULT UNIQUE 和 PRIMARY KEY 约束均为列或列集合提供了唯一性的保证。 区别:每个表可以有多个 UNIQUE 约束,但是每个表只能有一...

萧小蚁 ⋅ 2015/08/04 ⋅ 0

ORA-02270: 此列列表的唯一关键字或主键不匹配一些思路

查看两个表的结构 SQL> describe student; Name Type Nullable Default Comments ------------ ------------ -------- ------- -------- ID NUMBER(10) TEACHER_ID NUMBER(10) Y STUDENT_NAM......

长路慢 ⋅ 01/03 ⋅ 0

1Z0-052 中英文解析(2)

Examine the following statement that is used to modify the primary key constraint on the SALES table: SQL> ALTER TABLE SALES MODIFY CONSTRAINT pk DISABLE VALIDATE; Which three s......

Big_zhujiao ⋅ 2017/04/18 ⋅ 0

SQL Server -- Check 约束(MSSQL,Oracal,Access,MySQL)

From: http://www.w3school.com.cn/sql/sql_check.asp SQL CHECK 约束 CHECK 约束用于限制列中的值的范围。 如果对单个列定义 CHECK 约束,那么该列只允许特定的值。 如果对一个表定义 CHEC...

chenhao_asd ⋅ 2016/11/02 ⋅ 0

SQLServer删除/重建/禁用/启用外键约束

SQLServer从一个数据库导数到另一个库的时候,如果目标库有外键约束,可能会导致导数失败。这时,可以将外键先删除或禁用,等导数完成后再重建或启用外键。 禁用、启用外键: [sql] view pla...

CYQ0520 ⋅ 2017/05/27 ⋅ 0

SQL sever 中系统表sys.objects的作用与字段含义

0 定义 官方对sys.objects的定义:在数据库中创建的每个用户定义的架构作用域内的对象在该表中均对应一行。 这种翻译,真心的无力吐槽。我们用中文再翻译下这句中文:你在库中创建一张表,这...

熊二熊 ⋅ 2016/04/14 ⋅ 0

SQLServer删除/重建/禁用/启用外键约束

SQLServer从一个数据库导数到另一个库的时候,如果目标库有外键约束,可能会导致导数失败。这时,可以将外键先删除或禁用,等导数完成后再重建或启用外键。 禁用、启用外键: [sql] view pla...

CYQ0520 ⋅ 2017/05/27 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

个人博客的运营模式能否学习TMALL天猫质量为上?

心情随笔|个人博客的运营模式能否学习TMALL天猫质量为上? 中国的互联网已经发展了很多年了,记得在十年前,个人博客十分流行,大量的人都在写博客,而且质量还不错,很多高质量的文章都是在...

原创小博客 ⋅ 今天 ⋅ 0

JavaScript零基础入门——(十一)JavaScript的DOM操作

JavaScript零基础入门——(十一)JavaScript的DOM操作 大家好,欢迎回到我们的JavaScript零基础入门。最近有些同学问我说,我讲的的比书上的精简不少。其实呢,我主要讲的是我在开发中经常会...

JandenMa ⋅ 今天 ⋅ 0

volatile和synchronized的区别

volatile和synchronized的区别 在讲这个之前需要先了解下JMM(Java memory Model :java内存模型):并发过程中如何处理可见性、原子性、有序性的问题--建立JMM模型 详情请看:https://baike.b...

MarinJ_Shao ⋅ 今天 ⋅ 0

深入分析Kubernetes Critical Pod(一)

Author: xidianwangtao@gmail.com 摘要:大家在部署Kubernetes集群AddOn组件的时候,经常会看到Annotation scheduler.alpha.kubernetes.io/critical-pod"="",以表示这是一个关键服务,那你知...

WaltonWang ⋅ 今天 ⋅ 0

原子性 - synchronized关键词

原子性概念 原子性提供了程序的互斥操作,同一时刻只能有一个线程能对某块代码进行操作。 原子性的实现方式 在jdk中,原子性的实现方式主要分为: synchronized:关键词,它依赖于JVM,保证了同...

dotleo ⋅ 今天 ⋅ 0

【2018.06.22学习笔记】【linux高级知识 14.4-15.3】

14.4 exportfs命令 14.5 NFS客户端问题 15.1 FTP介绍 15.2/15.3 使用vsftpd搭建ftp

lgsxp ⋅ 今天 ⋅ 0

JeeSite 4.0 功能权限管理基础(Shiro)

Shiro是Apache的一个开源框架,是一个权限管理的框架,实现用户认证、用户授权等。 只要有用户参与一般都要有权限管理,权限管理实现对用户访问系统的控制,按照安全规则或者安全策略控制用户...

ThinkGem ⋅ 昨天 ⋅ 0

python f-string 字符串格式化

主要内容 从Python 3.6开始,f-string是格式化字符串的一种很好的新方法。与其他格式化方式相比,它们不仅更易读,更简洁,不易出错,而且速度更快! 在本文的最后,您将了解如何以及为什么今...

阿豪boy ⋅ 昨天 ⋅ 0

Python实现自动登录站点

如果我们想要实现自动登录,那么我们就需要能够驱动浏览器(比如谷歌浏览器)来实现操作,ChromeDriver 刚好能够帮助我们这一点(非谷歌浏览器的驱动有所不同)。 一、确认软件版本 首先我们...

blackfoxya ⋅ 昨天 ⋅ 0

线性回归原理和实现基本认识

一:介绍 定义:线性回归在假设特证满足线性关系,根据给定的训练数据训练一个模型,并用此模型进行预测。为了了解这个定义,我们先举个简单的例子;我们假设一个线性方程 Y=2x+1, x变量为商...

wangxuwei ⋅ 昨天 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部