SQL约束 - 用于限制加入表的数据的类型
    可以在创建表时规定约束(通过 CREATE TABLE 语句),或者在表创建之后也可以(通过 ALTER TABLE 语句)。
    NOT NULL -- 约束强制列不接受 NULL 值。
    UNIQUE -- 约束唯一标识数据库表中的每条记录。每个表可以有多个 UNIQUE 约束,但是每个表只能有一个 PRIMARY KEY 约束。
        MySQL:
            CREATE TABLE tableName
            (
                Id int NOT NULL,
                UNIQUE (Id)
            )
        SQLServer/Oracle:
            CREATE TABLE tableName
            (
                Id int NOT NULL UNIQUE
            )
        需命名的UNIQUE约束:MySql/SQLServer/Oracle:
            CREATE TABLE tableName
            (
                Id int NOT NULL,
                pwd varchar(255) NOT NULL,
                CONSTRAINT uniqueName UNIQUE (Id,pwd)
            )
        表已创建:ALTER TABLE tableName ADD UNIQUE (Id)
        需命名:ALTER TABLE tableName ADD CONSTRAINT uniqueName UNIQUE (Id,pwd)
        撤销 UNIQUE 约束
            MySQL:
                ALTER TABLE tableName DROP INDEX uniqueName
            SQLServer/Oracle:
                ALTER TABLE tableName DROP CONSTRAINT uniqueName
    PRIMARY KEY -- 主键约束,约束唯一标识数据库表中的每条记录。主键必须包含唯一的值。主键列不能包含 NULL 值。每个表都应该有一个主键,并且每个表只能有一个主键。
        MySQL:
            CREATE TABLE tableName
            (
                Id int NOT NULL,
                PRIMARY KEY (Id)
            )
        SQLServer/Oracle:
            CREATE TABLE tableName
            (
                Id int NOT NULL PRIMARY KEY
            )
        命名PRIMARY KEY 约束,以及为多个列定义 PRIMARY KEY 约束:
        MySQL/SQLServer:
            CREATE TABLE tableName
            (
                Id int NOT NULL,
                pwd varchar(255) NOT NULL,
                CONSTRAINT pkName PRIMARY KEY (Id,pwd)
            )
       
        表已创建:ALTER TABLE tableName ADD PRIMARY KEY (Id)
        命名 PRIMARY KEY 约束,以及为多个列定义 PRIMARY KEY 约束:
            ALTER TABLE tableName ADD CONSTRAINT pkName PRIMARY KEY (Id,pwd)
            注释:如果使用 ALTER TABLE 语句添加主键,必须把主键列声明为不包含 NULL 值(在表首次创建时)。
        撤销 PRIMARY KEY 约束
        如需撤销 PRIMARY KEY 约束,请使用下面的 SQL:
        MySQL:
            ALTER TABLE tableName DROP PRIMARY KEY
        SQL Server / Oracle:
            ALTER TABLE tableName DROP CONSTRAINT pkName
    FOREIGN KEY -- 一个表中的 FOREIGN KEY 指向另一个表中的 PRIMARY KEY。用于预防破坏表之间连接的动作。必须是指向的那个表中的值之一。
        MySQL:
            CREATE TABLE tableName1
            (
                Id1 int NOT NULL,
                Id2 int,
                PRIMARY KEY (Id1),
                FOREIGN KEY (Id2) REFERENCES tableName2(Id2)
            )
        SQL Server/Oracle:
            CREATE TABLE tableName1
            (
            Id1 int NOT NULL PRIMARY KEY,
            Id2 int FOREIGN KEY REFERENCES tableName2(Id2)
            )
        命名 FOREIGN KEY 约束,以及为多个列定义 FOREIGN KEY 约束:
            CREATE TABLE tableName1
            (
                Id1 int NOT NULL,
                Id2 int,
                PRIMARY KEY (Id1),
                CONSTRAINT fkName FOREIGN KEY (Id2) REFERENCES tableName2(Id2)
            )
        表已创建:
            ALTER TABLE tableName1 ADD FOREIGN KEY (Id2) REFERENCES tableName2(Id2)
        命名 FOREIGN KEY 约束,以及为多个列定义 FOREIGN KEY 约束:
            ALTER TABLE tableName1 ADD CONSTRAINT fkName FOREIGN KEY (Id2) REFERENCES tableName2(Id2)
        撤销 FOREIGN KEY 约束
            MySQL: ALTER TABLE tableName1 DROP FOREIGN KEY fkName
            SQLServer/Oracle: ALTER TABLE tableName1 DROP CONSTRAINT fkName
    CHECK -- 约束用于限制列中的值的范围。对单个列定义 CHECK 约束,该列只允许特定的值。对一个表定义 CHECK 约束,此约束会在特定的列中对值进行限制。
        以下CHECK 约束规定 "col1" 列必须只包含大于 0 的整数。
        My SQL:
            CREATE TABLE tableName
            (
                col1 int NOT NULL,
                CHECK (col1>0)
            )
        SQL Server/Oracle:
            CREATE TABLE tableName
            (
                col1 int NOT NULL CHECK (col1>0)
            )
        命名 CHECK 约束,以及为多个列定义 CHECK 约束:
            CREATE TABLE tableName
            (
                col1 int NOT NULL,
                col2 varchar(255),
                CONSTRAINT chkName CHECK (col1>0 AND col2='Sandnes')
            )
        表已存在:ALTER TABLE tableName ADD CHECK (col1>0)
        命名 CHECK 约束,以及为多个列定义 CHECK 约束:
            ALTER TABLE tableName ADD CONSTRAINT chkName CHECK (col1>0 AND col2='Sandnes')
        撤销 CHECK 约束
        SQLServer/Oracle: ALTER TABLE tableName DROP CONSTRAINT chkName
        MySQL: ALTER TABLE tableName DROP CHECK chkName
    DEFAULT -- 用于向列中插入默认值。如果没有规定其他的值,那么会将默认值添加到所有的新记录。
        CREATE TABLE tableName
        (
            col varchar(255) DEFAULT 'Sandnes'
        )
        通过使用类似 GETDATE() 这样的函数,DEFAULT 约束也可以用于插入系统值:
        CREATE TABLE Orders
        (
        OrderDate date DEFAULT GETDATE()
        )
        表已存在:
        MySQL: ALTER TABLE tableName ALTER col SET DEFAULT 'SANDNES'
        SQL Server/Oracle:ALTER TABLE tableName ALTER COLUMN col SET DEFAULT 'SANDNES'
        撤销 DEFAULT 约束:
        MySQL: ALTER TABLE tableName ALTER col DROP DEFAULT
        SQL Server/Oracle:ALTER TABLE tableName ALTER COLUMN col DROP DEFAULT

SQL——SQL约束的更多相关文章

  1. SQL PRIMARY KEY 约束\SQL FOREIGN KEY 约束\SQL CHECK 约束

    SQL PRIMARY KEY 约束 PRIMARY KEY 约束唯一标识数据库表中的每条记录. 主键必须包含唯一的值. 主键列不能包含 NULL 值. 每个表都应该有一个主键,并且每个表只能有一个主 ...

  2. SQL CREATE TABLE 语句\SQL 约束 (Constraints)\SQL NOT NULL 约束\SQL UNIQUE 约束

    CREATE TABLE 语句 CREATE TABLE 语句用于创建数据库中的表. SQL CREATE TABLE 语法 CREATE TABLE 表名称 ( 列名称1 数据类型, 列名称2 数据 ...

  3. 扩展Exception,增加判断Exception是否为SQL引用约束异常方法!

    在设计数据表时,如果将某些列设置为关联其它表的外键,那么如果对其进行增加.修改操作时,其关联表若没有相匹配的记录则报错,或者在对其关联表进行删除时,也会报错,这就是外键约束的作用,当然除了外键还有许多 ...

  4. 基础篇 - SQL 的约束

    基础篇 - SQL 的约束       约束 一.实验简介 约束是一种限制,它通过对表的行或列的数据做出限制,来确保表的数据的完整性.唯一性.本节实验将在实践操作中熟悉 MySQL 中的几种约束. 二 ...

  5. SQL CHECK 约束

    SQL CHECK 约束 CHECK 约束用于限制列中的值的范围. 如果对单个列定义 CHECK 约束,那么该列只允许特定的值. 如果对一个表定义 CHECK 约束,那么此约束会在特定的列中对值进行限 ...

  6. SQL UNIQUE 约束

    SQL UNIQUE 约束 UNIQUE 约束唯一标识数据库表中的每条记录. UNIQUE 和 PRIMARY KEY 约束均为列或列集合提供了唯一性的保证. PRIMARY KEY 拥有自动定义的 ...

  7. SQL数据库约束、默认和规则

    数据的完整性 实体完整性 又称为行完整性,即数据库中的所有行都具有一个非空且没有重复的主键值 MSSQL中通过唯一索引.PRIMARY KEY约束.UNIQUE约束.INDENTITY属性等来强制主键 ...

  8. SQL Server - 约束 CONSTRAINT

    总结 约束放置在表中,以下五种约束: NOT NULL 非空约束C 指定的列不允许为空值 UNIQUE 唯一约束U 指定的列中没有重复值,或该表中每一个值或者每一组值都将是唯一的 PRIMARY KE ...

  9. MySQL笔记(五)MySQL 角色与SQL CHECK约束

    MySQL ROLE MySQL 8.0 Reference Manual  /  Security  /  MySQL User Account Management  /  Using Roles ...

  10. Sql Server约束的学习二(检查约束、默认约束、禁用约束)

    接上一篇的Sql Server约束学习一(主键约束.外键约束.唯一约束) 4.检查约束 1)检查约束的定义 检查约束可以和一个列关联,也可以和一个表关联,因为它们可以检查一个列的值相对于另一个列的值, ...

随机推荐

  1. Windows 10 MSDN官方原版ISO镜像(简体中文)下载

    http://www.heu8.com/2800.html 硬件要求如下:处理器:1 GHz 或更快的处理器或 SoC RAM:1 GB(32 位)或 2 GB(64 位) 硬盘空间:16 GB(32 ...

  2. 我想solo自己一个人!

    区域赛之后你就该走了,现在你告诉我,没精力不打了,我真谢谢你! 今年就TM的没有一点舒心的地方! 父母分居, 队友出走, 队伍解散, 白天家里两个外甥很吵, 鼻窦炎复发, 喜欢的妹子也追不到, 整夜失 ...

  3. RF(用例执行方法)

    一.执行 RF 脚本方法 1.执行整个项目下的所有用例 dos 窗口下输入 robot + 项目绝对路径 2.执行单个 Suite 中的所有用例 dos 窗口下输入 robot + 用例套件绝对路径 ...

  4. 使用C++STL的map容器实现一种命令映射

    因为最近在练习写一个ftp的服务器,其中的命令有很多种,每个命令对应一个执行函数,能够想到的最简单的实现方式便是使用if--else匹配命令和执行对应的函数,如下所示: if(strcmp(" ...

  5. VUE生命周期中的钩子函数及父子组件的执行顺序

    先附一张官网上的vue实例的生命周期图,每个Vue实例在被创建的时候都需要经过一系列的初始化过程,例如需要设置数据监听,编译模板,将实例挂载到DOM并在数据变化时更新DOM等.同时在这个过程中也会运行 ...

  6. 时间日期相关类:Date类,DateFormat类&SimpleDateFormat类,Calendar类

    日期相关类 1.Date类:日期时间类 A.构造方法 Date(): 根据当前系统时间创建日期对象 ​ Date(Long time):根据传入的毫秒值时间创建日期对象 B.成员方法 Long get ...

  7. 剑指offer--(根据前序遍历和中序遍历)重建二叉树

    题目描述 输入某二叉树的前序遍历和中序遍历的结果,请重建出该二叉树.假设输入的前序遍历和中序遍历的结果中都不含重复的数字.例如输入前序遍历序列{1,2,4,7,3,5,6,8}和中序遍历序列{4,7, ...

  8. jQuery中val() text()和html()的区别

    2020年4月21日 16:48:11 jQuery 学习 html() 它可以设置和获取起始标签和结束标签中的内容. 跟 dom 属性 innerHTML 一样.text() 它可以设置和获取起始标 ...

  9. 图形学_Bezier曲线

    Bezier曲线由n个控制点生成,举个例子:当n=2时,点$P_0$.$P_1$之间遵从计算: $P_0=(1-t)P_0+tP_1$ 而推广为n维时,有: $P^n_0=(1-t)P^{n-1}_0 ...

  10. 基于胜率矩阵的PageRank排序

      在做博弈模型评估的时候,遇到一个问题是如何评价多个模型的优劣.例如我有训练好的三个围棋模型A,B,C,两两之间对打之后有一个胜负关系,如何对这三个模型进行排序呢?通常对于人类选手这种水平有波动的情 ...