zoukankan      html  css  js  c++  java
  • 431.chapter3.创建表,约束和用户自定义类型

    2 约束 就是用户输入超出允许范围的数据

    (1)check约束:通过限制列的可接受值,强制域的完整性。通过任何基于逻辑运算符号返回true或者false的逻辑值创建check约束。
    一个列可以有多个check约束,按照约束的创建顺序进行验证
    搜索条件必须为逻辑表达式,并且不能引用其他表
    列级别的check约束只能引用被约束的列,表级别的约束只能引用用一个表中的列
    不能再text,ntext或image上定义check约束

    (2)规则(Rule):执行和check相同的功能。使用check约束是限制列值的首要方法。一个列只能应用一个规则,可以应用多个check约束。check约束和表或者表的某一列绑定在一起。而规则作为数据库对象而单独存在。

    Rule sample


    (3)unique约束:禁止出现重复的值
    如果没有为unique指定clustered或者nonclustered,默认使用nonclustered
    每个unique约束都会生成一个索引。unique约束的数目不会使表中的nonclustered索引超过249个,clustered索引超过1个

    Code


    (4)主键约束
    一个表只能包含一个主键约束
    由主键约束生成的索引不会使表中的nonclustered索引超过999个,clustered索引超过1个
    如果没有为主键指定clustered或者nonclustered,并且没有为unique约束指定clustered索引,主键约束将默认采用clustered
    主键约束定义中的所有列必须定义为not null

    mutiple primary key

    (5)外键约束:保证引用的完整性。确保用户输入的值存在于一个指定的表的对应的列里。
    如果FK约束输入非null值,则此值必须在被引用的列中存在。
    FK仅能用于同一服务器上同意数据库中的表。跨数据库应用完整性必须通过触发器实现。
    FK可以引用同一表中的其他列,此行为成为自引用。比如AdventureWork中HumanResources.Employee的外键FK_Employee_Employee_MangerID
    列级别的FK只能引用一个列。两者数据类型必须相同
    表级别的FK的引用中列的数目比月和约束列中的列数相同,数据类型也必须相同
    FK约束只能引用所引用表的PK或者unique约束中的列或所引用的表中unique index中的列

    Foreign Key Sample


    (6)default约束:当用户未指定值是,sql server自动为其赋值

    default constraint

    所有的约束的完整sql

    Ovarall sample
  • 相关阅读:
    AWK
    正则表达式
    BASH
    C# 常用控件的一些属性及方法
    C# FTP
    C# Delegate
    DLL/EXE查看工具Dumpbin
    VBA 破解Excel工作表保护密码
    VB6 IP地址+网卡地址+网卡类型
    编程之路┊由C#风潮想起的——给初学编程者的忠告 ZT
  • 原文地址:https://www.cnblogs.com/yang_sy/p/1397786.html
Copyright © 2011-2022 走看看