精华内容
下载资源
问答
  • 常见的五种约束类型
    千次阅读
    2021-04-16 09:21:32

    一、五大约束

      1、主键约束(Primay Key Coustraint) 唯一性,非空性
      2、唯一约束 (Unique Counstraint)唯一性,可以空,但只能有一个
      3、检查约束 (Check Counstraint)对该列数据的范围、格式的限制(如:年龄、性别等)
      4、默认约束 (Default Counstraint)该数据的默认值
      5、外键约束 (Foreign Key Counstraint)需要建立两表间的关系并引用主表的列

    二、五大约束的语法示例

    1、添加主键约束(将UserId作为主键)
    alter table UserId
    add constraint PK_UserId primary key (UserId)
    
    2、添加唯一约束(身份证号唯一,因为每个人的都不一样)
    alter table UserInfo
    add constraint UQ_IDNumber unique(IdentityCardNumber)
    
    3、添加默认约束(如果地址不填 默认为“地址不详”)
    alter table UserInfo
    add constraint DF_UserAddress default (‘地址不详’) for UserAddress
    
    4、添加检查约束 (对年龄加以限定 20-40岁之间)
    alter table UserInfo
    add constraint CK_UserAge check (UserAge between 20 and 40)
    alter table UserInfo
    add constraint CK_UserSex check (UserSex=’男’ or UserSex=’女′)
    
    5、添加外键约束 (主表UserInfo和从表UserOrder建立关系,关联字段UserId)
    alter table UserOrder
    add constraint FK_UserId_UserId foreign key(UserId)references UserInfo(UserId)

    三、SQL Server中五大约束详解

    约束(Constraint)是Microsoft SQL Server 提供的自动保持数据库完整性的一种方法,定义了可输入表或表的单个列中的数据的限制条件。在SQL Server 中有5 种约束:主关键字约束(Primary Key Constraint)、外关键字约束(Foreign Key Constraint)、惟一性约束(Unique Constraint)、检查约束(Check Constraint)和缺省约束(Default Constraint)。

    1、主关键字约束

    主关键字约束指定表的一列或几列的组合的值在表中具有惟一性,即能惟一地指定一行记录。每个表中只能有一列被指定为主关键字,且IMAGE 和TEXT 类型的列不能被指定为主关键字,也不允许指定主关键字列有NULL 属性。

    此处应有说明:多列组成的主键叫联合主键,而且联合主键约束只能设定为表级约束;单列组成的主键,既可设定为列级约束,也可以设定为表级约束。

    联合主键:联合主键就是用2个或2个以上的字段组成主键。用这个主键包含的字段作为主键,这个组合在数据表中是唯一,且加了主键索引。
    可以这么理解,比如,你的订单表里有很多字段,一般情况只要有个订单号bill_no做主键就可以了,但是,现在要求可能会有补充订单,使用相同的订单号,那么这时单独使用订单号就不可以了,因为会有重复。那么你可以再使用个订单序列号bill_seq来作为区别。把bill_no和bill_seq设成联合主键。即使bill_no相同,bill_seq不同也是可以的。

    2、外关键字约束

    外关键字约束定义了表之间的关系。当一个表中的一个列或多个列的组合和其它表中的主关键字定义相同时,就可以将这些列或列的组合定义为外关键字,并设定它适合哪个表中哪些列相关联。这样,当在定义主关键字约束的表中更新列值,时其它表中有与之相关联的外关键字约束的表中的外关键字列也将被相应地做相同的更新。外关键字约束的作用还体现在,当向含有外关键字的表插入数据时,如果与之相关联的表的列中无与插入的外关键字列值相同的值时,系统会拒绝插入数据。与主关键字相同,不能使用一个定义为 TEXT 或IMAGE 数据类型的列创建外关键字。外关键字最多由16 个列组成。

    指定在删除表中数据时,对关联表所做的相关操作。在子表中有数据行与父表中的对应数据行相关联的情况下,如果指定了值CASCADE,则在删除父表数据行时会将子表中对应的数据行删除;如果指定的是NO ACTION,则SQL Server 会产生一个错误,并将父表中的删除操作回滚。NO ACTION 是缺省值。

    ON UPDATE {CASCADE | NO ACTION}
    指定在更新表中数据时,对关联表所做的相关操作。在子表中有数据行与父表中的对应数据行相关联的情况下,如果指定了值CASCADE,则在更新父表数据行时会将子表中对应的数据行更新;如果指定的是NO ACTION,则SQL Server 会产生一个错误,并将父表中的更新操作回滚。NO ACTION 是缺省值。

    NOT FOR REPLICATION
    指定列的外关键字约束在把从其它表中复制的数据插入到表中时不发生作用。

    3、惟一性约束

    惟一性约束指定一个或多个列的组合的值具有惟一性,以防止在列中输入重复的值。惟一性约束指定的列可以有NULL 属性。由于主关键字值是具有惟一性的,因此主关键字列不能再设定惟一性约束。惟一性约束最多由16 个列组成

    4、检查约束

    检查约束对输入列或整个表中的值设置检查条件,以限制输入值,保证数据库的数据完整性。可以对每个列设置复合检查。
    注意:对计算列不能作除检查约束外的任何约束。

    5、缺省约束

    缺省约束通过定义列的缺省值或使用数据库的缺省值对象绑定表的列,来指定列的缺省值。SQL Server 推荐使用缺省约束,而不使用定义缺省值的方式来指定列的缺省值。

    6、列约束和表约束

    对于数据库来说,约束又分为列约束(Column Constraint)和表约束(Table Constraint)。
    列约束作为列定义的一部分只作用于此列本身。表约束作为表定义的一部分,可以作用于多个列。

    由上可知,1,主键、外键、唯一、检查这四项,既可以创建列约束,也可以创建表约束。而缺省 和 非空只能创建列约束。

    7、关于约束的其他操作

    删除约束
    ALTER TABLE employees DROP CONSTRAINT emp_manager_fk;

    关闭约束
    ALTER TABLE employees DISABLE CONSTRAINT emp_emp_id_pk CASCADE; //如果没有被引用则不需CASCADE关键字

    打开约束
    ALTER TABLE employees
    ENABLE CONSTRAINT emp_emp_id_pk; //注意,打开一个先前关闭的被引用的主键约束,并不能自动打开相关的外部键约束

    四、注意点:

    添加主键约束会自动创建唯一索引。如果表中尚未创建 聚焦索引,则自动创建聚焦唯一索引。如果表中已存在聚焦索引,则自动创建非聚焦索引。
    添加唯一约束会自动创建唯一索引。如果未在unique关键字后加上[nonclustered|clustered],则默认会创建非聚焦索引。

    更多相关内容
  • Oracle 常见五种约束

    万次阅读 2019-03-18 16:55:12
    (1)定义约束 (2)列级约束\表级约束 (3)非空约束 NOT NULL 非空约束作用的列也叫强制列。顾名思义,强制列中必须有值,当然建表时候若使用default关键字指定了默认值,则可不输入。 (4)唯一性约束...

    (1)定义约束

    (2)列级约束\表级约束

    (3)非空约束 NOT NULL

    非空约束作用的列也叫强制列。顾名思义,强制列中必须有值,当然建表时候若使用default关键字指定了默认值,则可不输入。

    (4)唯一性约束unique

    唯一性约束可作用在单列或多列上,对于这些列或组合,唯一性约束保证每一行的唯一性。

    Unique需要注意:对于unique约束来讲,索引是必须的。如果不存在,就自动创建一个(unique的唯一本质上是通过索引来保证的)

    Unique允许null值,unique约束的列可存在多个null。这是因为,unique唯一性通过btree索引来实现,而btree索引中不包含null。当然,这也造成了在where语句中null值进行过滤会造成全表扫描。

    (5)主键约束 primary key

    主键是定位表中单个行的方式,可唯一确定表中的某一行,关系型数据库要求所有表都应该有主键,不过Oracle没有遵循次范例要求,Oracle中的表可以没有主键(这种情况不多见)。关于主键有几个需要注意的点:

    键列必须具有唯一性,且不能为空,其实主键约束相当于unique+not null  一个表只允许有一个主键

    主键所在列必须具有索引(主键的唯一约束通过索引来实现),如果不存在,将会在索引添加的时候自动创建

    注意:主键约束可以定义在表级也可以定义在列级(添加主键:约束的添加可在建表时创建,也可如下所示在建表后添加,一般推荐建表后添加,灵活度更高一些,建表时添加某些约束会有限制)

    (6)外键约束 foreign key

    外键约束定义在具有父子关系的子表中,外键约束使得子表中的列对应父表的主键列,用以维护数据库的完整性。不过出于性能和后期的业务系统的扩展的考虑,很多时候,外键约束仅出现在数据库的设计中,实际会放在业务程序中进行处理。外键约束注意以下几点:

           外键约束的子表中的列和对应父表中的列数据类型必须相同,列名可以不同

           对应的父表列必须存在主键约束(Primary key)或唯一约束(unique)

           外键约束允许null值,对应的行就成了孤行了

     

    其实很多时候不使用外键,很多人认为会让删除操作比较麻烦,比如要删除父表中的某条数据,但某个子表中又有对该条数据的引用,这时就会导致删除失败。我们有两种方式来优化这种场景:

      第一种方式简单粗暴,删除的时候,级联删除掉子表中的所有匹配行,在创建外键时,通过 on delete cascade 子句指定该外键列可级联删除:

    alter table emp add constraint emp_deptno_fk foreign key(deptno) references dept(deptno)on delete cascade;

           第二种方式,删除父表中的对应行,会将对应子表中的所有匹配行的外键约束列置为null,通过on delete set null子句实施:

    alter table emp add constraint emp_deptno_fk foreign key(deptno) references dept(deptno) on delete set null;

     

    实际上,外键约束列和对应的父表列可以在同一张表中,常见的就是表的业务逻辑含义是一棵树,最简单的例子如下(id为主键id,fid为父id,fid存储对id的引用),这种结构的表根据业务要求可通过Oracle的递归查询来获取这种层级关系

    注意:外键约束可以定义在表级也可以定义在列级

    foreign key:在表级指定子表中的列

    references:标示在父表中的列

    no delete cascade(级联删除):当父表中的列被删除时,字表中相对应的列也被删除

    no delete set null(级联置空):子表中相应的列置空

    (7)检查约束 check 约束

    检查约束可用来实施一些简单的规则,比如列值必须在某个范围内。检查的规则必须是一个结果为true或false 的表达式,比如:

    alter table emp add constraint emp_sex_ck check(sex in('',''));

    alter table test31 add constraint chkk check (sex ='' or sex=''); 

    alter table test34 add constraint ch_test34 check(age>0 and age<120);

    alter table test34 add constraint ch_test34 check(age between 12 and 30); --在一个范围中间

    alter table test36 add constraint ch_test36 check(length(password)=6); --长度大于某个值

    alter table test36 add constraint email check (email like '%@%'); --电子邮箱要含有@符号

    alter table test36 add constraint password check((password like '00[0-9][0-9]/_[a-z,A-Z][a-z,A-Z][a-z,A-Z]%' escape '/')and(length(password)=8) )

     

    如上描述如有不懂,可以扫码关注麒琳技术栈公众号,欢迎在线咨询

    展开全文
  • 常见约束类型.doc

    2021-10-04 17:55:26
    常见约束类型.doc
  • mysql中常见的几种约束有哪些

    千次阅读 2021-02-03 02:13:05
    mysql中常见的几种约束有:1、主键;2、默认值;3、唯一;4、外键;5、非空。约束是一限制,它通过对表的行或列的数据做出限制,来确保表的数据的完整性、唯一性。约束是一限制,它通过对表的行或列的数据做出...

    mysql中常见的几种约束有:1、主键;2、默认值;3、唯一;4、外键;5、非空。约束是一种限制,它通过对表的行或列的数据做出限制,来确保表的数据的完整性、唯一性。

    3e4a9947d5dc511a46cc4bef24af0030.png

    约束是一种限制,它通过对表的行或列的数据做出限制,来确保表的数据的完整性、唯一性。

    (推荐教程:mysql教程)

    MYSQL中常用的几种约束:

    1、主键

    主键(PRIMARY KEY)是用于约束表中的一行,作为这一行的标识符,在一张表中通过主键就能准确定位到一行,因此主键十分重要。主键要求这一行的数据不能有重复且不能为空。

    还有一种特殊的主键——复合主键。主键不仅可以是表中的一列,也可以由表中的两列或多列来共同标识。

    2、默认值

    默认值约束(DEFAULT)规定,当有DEFAULT约束的列,插入数据为空时该怎么办。

    DEFAULT约束只会在使用INSERT语句(上一实验介绍过)时体现出来,INSERT语句中,如果被DEFAULT约束的位置没有值,那么这个位置将会被DEFAULT的值填充。

    3、唯一约束

    唯一约束(UNIQUE)比较简单,它规定一张表中指定的一列的值必须不能有重复值,即这一列每个值都是唯一的。

    当INSERT语句新插入的数据和已有数据重复的时候,如果有UNIQUE约束,则INSERT失败。

    4、外键

    外键(FOREIGN KEY)既能确保数据完整性,也能表现表之间的关系。

    一个表可以有多个外键,每个外键必须REFERENCES(参考)另一个表的主键,被外键约束的列,取值必须在它参考的列中有对应值。

    在INSERT时,如果被外键约束的值没有在参考列中有对应,比如以下命令,参考列(department表的dpt_name)中没有dpt3,则INSERT失败

    5、非空

    非空约束(NOT NULL),听名字就能理解,被非空约束的列,在插入值时必须非空。

    在MySQL中违反非空约束,不会报错,只会有警告。

    相关推荐:php培训

    展开全文
  • 数据库中的常见约束类型

    千次阅读 2020-06-17 22:45:20
    一般分为约束: 主键约束(Primary Key constraint):要求主键列数据唯一,不允许为空。 唯一约束(Unique constraint):要求该列唯一,允许为空,但只能出现一个空值。 检查约束(Check constraint):某列取值...

    一般分为五大约束:

    主键约束(Primary Key constraint):要求主键列数据唯一,不允许为空。

    唯一约束(Unique constraint):要求该列唯一,允许为空,但只能出现一个空值。

    检查约束(Check constraint):某列取值范围限制,格式限制等,如有关年龄的约束。

    默认约束(Default constraint):某列的默认值,如在数据库里有一项数据很多重复,可以设为默认值。

    外键约束(Foreign Key constraint):用于在两个表之间建立关系,需要指定引用主表的哪一列。

    主外键和索引的区别:

    展开全文
  • 地下室侧墙受到的约束常见早期裂缝类型,张军,,随着经济的发展与混凝土强度等级的提高,地下室侧墙结构在施工期经常出现温度收缩裂缝。地下室侧墙一旦产生裂缝就会破坏了结构的
  • SQL教程——常见约束类型

    千次阅读 2020-12-01 01:21:56
    常见约束类型 一、创建表时添加约束 1.添加列级约束 2.添加表级约束 二、删除表时删除约束 1.删除非空约束 2.删除默认约束 3.删除主键 4.删除唯一 5.删除外键 三、表示列 常见约束类型 含义:一...
  • 数据库中的8种常见约束定义

    千次阅读 2021-10-28 11:08:12
    数据库 常见约束定义 及其概念揭示
  • Oracle中的四种约束类型 Oracle中约束类型有主键约束,唯一约束,外键约束,检查约束。 主键约束(primary key constraint) 主键约束:要求主键列数据唯一,并且不能为空。 添加主键约束: 例如在student表中,为...
  • 【SQL】数据库中的五种约束

    千次阅读 2019-10-11 15:13:05
    #约束 1、主键约束(Primay Key Coustraint) 唯一性,非空性 2、唯一约束 (Unique Counstraint)唯一性,可以空,但只能有一个 3、检查约束 (Check Counstraint)对该列数据的范围、格式的限制(如:年龄、...
  • 数据库常见数据类型约束

    千次阅读 2021-02-08 07:05:41
    常用数据类型MYSQL数据库支持多种类型,大致可以分为三个类型:数值型、时间/日期型和字符型在这里就列举一些我们常用的数据类型1、数值型表示整数型数据类型(tinyint、smallint、mediumint、int) 浮点型数据类型...
  • 数据库主键 4种类型及6种约束

    万次阅读 2018-03-27 13:29:43
    导读:在看《SQL必知必会(第四版)》看到运用外键建立表关系,联想到工作时建表主键类型的选择问题,查资料的时候遇到了比较简洁的一个文章; 1. 基础理论: 1.主键和外键的设计原则。 a. 主键应尽量分离于业务的...
  • MySQL的七种约束

    千次阅读 多人点赞 2022-02-20 10:43:00
    MySQL约束类型
  • mysql常见六大约束

    千次阅读 2019-07-21 00:01:16
    常见约束: **约束的含义**: 一限制,用于限制表中的数据,为了保证表中的数据的准确性和可靠性 **分类:** 六大约束 1. NOT NULL :非空约束,用于保证该字段的值不能为空 比如姓名,学号等 2. DEFAULT :...
  • 数据库的常见约束

    千次阅读 2020-11-03 11:50:54
    我们常见的数据库约束有六,分别为非空、主键、外键、唯一键、default、cheak 六大约束 NOT NULL:非空,该字段的内容必填 UNIQUE:唯一,该字段的内容不可重复,可以为NULL,但是只能有一条为NULL DEFAULT:默认...
  • redis的五种数据类型

    万次阅读 多人点赞 2021-05-15 14:56:27
    (2)Redis是一个key-value存储系统,它支持存储的value类型相对更多,包括string、list、set、zset(sorted set --有序集合)和hash。这些数据结构都支持push/pop、add/remove及取交集并集和差集及更丰富的操作,
  • 数据库索引常见种类型

    万次阅读 2019-03-19 12:53:34
    索引分四类: index ----普通的索引,数据可以重复 fulltext----全文索引,用来对大表的文本域(char,varchar,text)进行索引。语法和普通索引一样。 unique ----唯一索引,唯一...第一:index unique scan ...
  • 什么是约束? 数据库—由若干张数据表组成(理解为一个类库) 数据表—由行和列组成的一个二维数组(理解为一个类) 列—字段(理解为表中对象的一个属性) 行—理解为表中的一个...约束类型(6): 1.主键约束(PR...
  • SQLServer中的常见约束

    2022-03-28 16:03:21
    二、约束分为有六: NOT NULL:非空,该字段的值必填 UNIQUE:唯一,该字段的值不可重复 DEFAULT:默认,该字段的值不用手动插入有默认值 CHECK:检查,mysql不支持 PRIMARY KEY:主键,该字段的值不可重复并且...
  • 数据库中表的常见七大约束

    万次阅读 2018-05-14 20:15:55
    真正约束字段的是数据类型,但是数据类型约束很单一,需要有一些额外的约束,更好的保证数据的合法性,从业 务逻辑角度保证数据的正确性。比如有一个字段是email,要求是唯一的。 1、空属性not null:not null ...
  • MySQL常见约束

    千次阅读 2021-01-19 04:47:58
    #常见约束/*含义:一限制,用于限制表中的数据,为了保证表中的数据的准确和可靠性分类:六大约束NOT NULL:非空,用于保证该字段的值不能为空比如姓名、学号等DEFAULT:默认,用于保证该字段有默认值比如性别...
  • 十九、约束作用及常见约束

    千次阅读 2020-08-24 07:34:54
    2、常见约束有哪些? 非空约束(not null): 约束的字段不能为NULL 唯一约束(unique): 约束的字段不能重复 主键约束(primary key): 玉树的字段既不能为NULL,也不能重复(简称PK) 外键约束(foreign ...
  • 关系型数据库MySQL常见的几种约束

    千次阅读 2018-05-07 18:46:41
    对于已经创建好的表,虽然字段的数据类型决定了所能存储的数据类型,但是表中所存储的数据是否合法并没有进行检查,想...MYSQL中,常用的几约束:约束类型: 非空 默认值 唯一 主键 自增 外键 关键字: not null D...
  • 数据结构有什么用? 常见的数据结构 栈 队列 数组 链表 红黑树
  • Android常见界面 大布局(超级详细)

    万次阅读 多人点赞 2021-03-09 18:25:19
    Android系统提供五种常用布局分别为LinearLayout(线性布局)、RelativeLayout(相对布局)、FrameLayout(帧布局)、TableLayout(表格布局)、ConstraintLayout(约束布局) 布局的通用属性 属性名称 功能描述 ...
  • MySQL常见约束条件

    万次阅读 多人点赞 2018-12-02 15:36:23
    约束条件:限制表中的数据,保证添加到数据表中的数据准确和可靠性!凡是不符合约束的数据,插入时就会失败! 约束条件在创建表时可以使用, 也可以修改表的时候添加约束条件 1、约束条件分类: 1)not null :非空...
  • SQL Server常见约束条件

    千次阅读 多人点赞 2020-03-21 08:51:01
    SQL server常见约束条件 1.检查只能是男或者女 Sex in(‘男,女’)), Sex =‘男’ or sex =‘女’) 2.在一个范围中间 Sage>0 and sage<120 Sage between 12 and 30 3.长度大于某个值 len(pwd)>6) //pwd为...
  • 在 MySQL 中,约束是指对表中数据的一种约束,能够帮助数据库管理员更好地管理数据库,并且能够确保数据库中数据的正确性和有效性。

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 124,571
精华内容 49,828
热门标签
关键字:

常见的五种约束类型