zoukankan      html  css  js  c++  java
  • 约束

    约束的概念:确保在列中插入有效的值并维护表之间的关系

     约束的类型:

    default                Insert时为列指定值

    check                  指定在列中可接受的值

    Not Null               指定在列中不接受的空值

    Primary key          每行唯一的标识

    unique                 不允许哟偶重复的关键字

    foregin                 匹配另一张表中的关键字

    Primary key(主键) 约束

       一个表中只能有一个,不能有空值,不能有重复值

        创建表时定义约束:

               字段名   数据类型[长度]  Primary key    

     unique (唯一)约束

         同一列中的两行不能有相同的值

          字段名   数据类型    unique

    default(默认)约束

    执行insert语句时将默认值自动插入约束所在的列

    字段名  数据类型   dafault  默认值

    Default 约束注意事项

     1,没列只能定义一个default约束

     2,不能有Identity属性的列  (自动增长列)

     3,如果定义的默认值长度大于对应字段的长度则输入的值将被截断

     4,有default约束的字段,可插入其他的值,若不插入,则以默认值为记录值

    check(检查)约束

    每次执行insert/update 语句时,该约束要检查数据的合法性

      字段名  数据类型  check(条件)

    注意事项

     1,一个表中可以定义多个检查约束,但每个字段只能定义一个检查约束

     2,如果对已有的数据的表添加约束,可以用 with nocheck 避免对以前的数据做检查

    Foregin key(外键)约束

      确保主关键字(主表中)和外关键字(辅表中)的关系

      字段名  数据类型  foregin key (字段名)    references   表名(字段名)

                                       

    修改约束

     alter table  表名

      add  constraint   约束名   primary key(字段名)  -----主键

      .............................    unique(字段名)-----唯一

     ..............................   default(默认值) for 字段名  ---默认

     ..............................  check(条件)     ---检查

    ...............................  foreign key(字段名)  references  主键表(参照字段名)-----外键

       删除约束

       alter table 表名   drop 约束名

      要删除被约束的列必须先删除约束

    级联更新和删除

        设置了外键约束后,如果要插入数据必须先插入主表数据,在插入外键表数据,如果删除数据,先删外键表数据再删除主键表数据

      功能:对主键表中的数据记录进行删除或更新时,外键表中的对应记录也跟着删除或更新

      语法: 

        级联删除     on delete cascade

        级联更新      on update cascade

      例如:

         alter table  XS_KC

      add constraint  fk_xh foreign key(学号)  references xs(学号)  on delete cascade  

    Rule  规则的使用 

      指定列中可以接受的值,确保数据落在指定的范围,相当于check约束

        语法:

      create rule  规则名称  as  规则条件

  • 相关阅读:
    python3安装 MAC
    MacOS三个比较接地气实用的终端命令
    maya界面字体怎么设置大小?
    Mac 下 Android Studio 连 夜神模拟器 调试以及真机调试方法
    [macOS] Mojave10.14 夜神安卓模拟器启动问题
    解决MAC电脑系统设置的安全性与隐私下通用没有任何来源选项
    一个分析“文件夹”选择框实现方法的过程
    windows下nginx+php简单配置
    使用windbg抓取崩溃文件和分析的过程
    解决工作中遇到的一个"打开,保存"文件框的bug的过程
  • 原文地址:https://www.cnblogs.com/Sea1ee/p/6359185.html
Copyright © 2011-2022 走看看