数据库—约束「终于解决」

数据库—约束「终于解决」 一、概述 创建表的时候可以给表中的数据添加数据校验规则,这些规则称之为约束。 在创建表的时候,同时可以指定所插入数据的一些规则,比如某个字段不能为空值; 某个字段的值(比如年龄)不能小于零等…

	数据库---约束[数据库教程]

一、概述

       创建表的时候可以给表中的数据添加数据校验规则,这些规则称之为约束。

在创建表的时候,同时可以指定所插入数据的一些规则,比如某个字段不能为空值;

某个字段的值(比如年龄)不能小于零等等。这些规则称为约束。

约束是在表上强制执行的数据校验规则,它提供的自动保持数据库完整性的一种方法!

  创建约束的时机:

  —在建表的同时创建

  —建表之后通过alter进行创建

 

二、约束类型

   从作用上分类,可以分成两大类:

  —表级约束:可以约束表中任意一列或者多列。可以定义除了not null意外的任意约束

  —列级约束:只能约束其所在的某一列,可以定义任何约束。

1.主键约束(Primay Key Coustraint) 唯一性,非空性

2.唯一约束 (Unique Counstraint)     唯一性,可以空,但只能有一个

3.检查约束 (Check Counstraint)           对该列数据的范围、格式的限制(如:年龄、性别等)

4.默认约束 (Default Counstraint)     该数据的默认值

5.外键约束 (Foreign Key Counstraint)  需要建立两表间的关系并引用主表的列


 

ORACLE数据库提供了下面五种完整性约束:

1. 非空约束(not null)   插入数据的时候某些列不允许为空
2. 唯一约束(unique key)  唯一键约束,可以限定某一个列的值是唯一的,唯一键的列一般被用作索引列。
3. 主键约束(primary key) 非空且唯一,任何一张表一般情况下最好有主键,用来唯一的标识一行记录,
4. 外键约束(foreign key)  当多个表之间有关联关系(一个表的某个列的值依赖与另一张表的某个值)的时候,需要使用外键
5. 检查约束(check)     可以根据用户自己的需求去限定某些列的值

 

三、主键约束(Primay Key Coustraint)

主关键字约束指定表的一列或几列的组合的值在表中具有惟一性,即能惟一地指定一行记录。

每个表中只能有一列被指定为主关键字,且IMAGE 和TEXT 类型的列不能被指定为主关键字,也不允许指定主关键字列有NULL 属性。

*** 多列组成的主键叫联合主键,而且联合主键约束只能设定为表级约束;单列组成的主键,既可设定为列级约束,也可以设定为表级约束。

联合主键:

联合主键就是用2个或2个以上的字段组成主键。用这个主键包含的字段作为主键,这个组合在数据表中是唯一,且加了主键索引。

 

-- 1.主键约束(Primay Key Coustraint)      唯一性,非空性
ALTER TABLE student ADD CONSTRAINT PK_STU_ID PRIMARY KEY (stu_id);

-- 插入两次一模一样的数据
INSERT INTO student ( stu_id, name, age, hiredate, classes, email, deptno )
VALUES( 20200707, zhansgan, 111, to_date( 2020-07-09, YYYY-MM-DD ), 1, [email protected], 10 );

代码100分

 

技术图片

 

 

 

四、唯一约束

代码100分-- 2.唯一约束 (Unique Counstraint)     唯一性,可以空,但只能有一个
ALTER TABLE student ADD CONSTRAINT PK_STU_EMAIL UNIQUE (email);
-- 插入表中已存在的email数据
INSERT INTO student ( stu_id, name, age, hiredate, classes, email, deptno )
VALUES( 202007171806, lisi, 24, to_date( 2020-07-17, YYYY-MM-DD ), 2, [email protected], 20 );

 

技术图片

 

数据库—约束

原文地址:https://www.cnblogs.com/han-sun/p/13331757.html

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
转载请注明出处: https://daima100.com/7336.html

(0)
上一篇 2023-03-22
下一篇 2023-03-22

相关推荐

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注