• 约束


    1、约束类型:

      主键约束(PRIMARY KEY):

        1、要求主键列不能为空

        2、约束唯一标识数据库表中的每一条记录

        3、主键必须包含唯一的值

        4、每张表都应该有一个主键

        5、语法: 

          1、创建主键(创建表时):create table <表名> (StudentID int not null primary key)

          2、创建主键(表已存在):alter table <表名>  add constraint pk_列名 primary key (列名)

          3、删除主键约束:1、alter table <表名> drop constraint primary key 

                    2、alter table <表名> drop constraint <主键约束名> 主键

                    约束名可以使用sp_help查询

      非空约束(NULL、NOT NULL):

        1、要求该列不能存在空值

        2、语法:

          创建表时:CREATE TABLE <表名>  (name varchar(10) not  null)

      唯一约束(unique):

        1、要求该列的值必须是唯一的,允许为空,但只能有一个。

        2、每张表中只有一个primary key约束,但可以有多个unique约束。

        3、unique和primary key都是为数据提供唯一性约束

        4、语法:

          1、创建主键(创建表时):create table <表名> (StudentID int unique)

          2、创建主键(表已存在):1、constraint <列名> uniqe (列名,列名) --添加多个约束

                        2、alter table <表名>  add unique (列名)    

          3、删除主键约束:1、alter table <表名> drop constraint unique

                                                         2、alter table <表名> drop constraint <主键约束名> 主键

      检查约束(CHECK):

        1、限制某列取值的范围

        2、如果对单个列做check约束,那么该列只能输入特定的数值

        3、如果一张表定义了check约束,那么会在特定的列队值进行限制

        4、语法:

    1、StudentID int not null check (<列名>>0) --要求StudentID要大于0

    2、sex varchar(2) not null check (sex='男' or sex='女') --要性别只能输入男或女

    3、alter table <表名> add constraint ck_列名 check (列名>0) --向已有列添加check约束

    4、alter table <表名> drop constraint check 约束名 --删除约束

    默认约束(DEFAULT):

    1、设计某列的默认值

    2、如果这列没有输入值,那么会将默认值添加到记录中

    3、语法:

    1、name verchar(40) not null default '李四' --该列默认插入李四

    2、endtime data default getedata() --默认插入当前时间

    3、alter table <表名> add contraint df_列名 default(0) for 列名 

    外键约束(FOREIGN KEY):

      1、用于在两表之间建立关系,需要指定引用主表的那一列(primary key)

      2、foreign key约束用于防止破坏表之间的连接

      3、foreign key约束也能防止非法数据插入该列,因为该列的值必须是他指向那张表的列的值的其中之一

      4、语法:

    1、foreign key (列名) references 主表名 (主键列名) 

    2、列名 int foreign key references 主表名 (主键列名) 

    3、alter table 表名 add constraint fk_列名 foreign key (列名) references 主表名 (主键列名) 

    4、alter table 表名 drop constraint 外键约束名 

    主键约束与唯一约束的区别:

      1、主键约束所在的列不允许有空值,唯一约束可以为空

      2、每张表中只有一个主键、可以有多个唯一键

     2、SQL添加约束类型

    列:

    USE <数据库>

    GO

    ALTER TABLE <表名>

    ADD CONSTRAINT PK_<字段名> PRIMARY KEY (字段名),

    ADD CONSTRAINT CK_<字段名> CHECK(LEN(字段名)>6),

    ADD CONSTRAINT CK_<字段名> CHECK(字段名=1, OR 字段名=0,),

    ADD CONSTRAINT DF_<字段名> DEFAULT(0) FOR 字段名,

    ADD CONSTRAINT CK_<字段名> CHECK(字段名 like '%@%'),

    ADD CONSTRAINT PK_<> PRIMARY KEY (),

        

  • 相关阅读:
    字符串比较,栈溢出引起的程序bug
    C语言实现的矩阵乘法运算器
    n阶魔方阵(奇数阵)的输出
    文件的上传和下载---以图片为例
    数据列表的分页显示---前端及后台
    表单重复提交的解决方法
    JAVA基础----持续更新
    Servlet---基础、转发重定向、编码问题解析
    JDBC的链接及封装
    com.mysql.jdbc.connection和java.sql.connection的区别
  • 原文地址:https://www.cnblogs.com/zhouxiangfei/p/12577862.html
Copyright © 2020-2023  润新知