zoukankan      html  css  js  c++  java
  • mysql 列约束

    mysql可以对插入的数据进行特定得验证,只有满足条件才可以插入到数据表中,否则认为是非法插入;

     例如:人性别只可以是男、女。年龄只能是0-100。

    ①主键约束查重-PRIMARY KEY,1表一个

    例子:id INT PARIMARY KEY,

    声明主键约束列上的值不能出现重复,一个表只可以有一个主键,设置主键约束不可以使用NULL值;

    表中查询的记录会按照主键由小到大的顺序排列--加快查找速度

    ②非空约束-NOT NULL,批量插入会失效

    注意问题:INSERT INTO 插入时候会收到影响,起不了作用;

    例子:id INT NOT NULL,

    在插入数据时候,无法确定要保存的数据,例如:无法确定员工的工资,生日都可以使用NULL;

    ③唯一约束-UNIQUE

    声明了唯一约束的列上不能插入重复的值,允许插入NULL,甚至多个NULL.

    说明:NULL这个值比较特殊,它和任何值都不相等,甚至和自身都不相等;

    注意:一个表里可以有多个唯一约束UNIQUE,但是只能有一个主键约束 PRIMARY KEY

    ④检查约束-CHECK

    检查约束可以对插入的数据进行自定义的验证

    CREATE TABLE student(score TINYINT CHECK(score>=0&scure<=100)

    );

    mysql 中不支持检查约束,会降低数据的插入速度;

    ⑤默认值约束-DEFAULT

      可以使用DEFAULT关键字声明默认值,有两种方式应用默认值

    第一种设置DEFAULT方法

    CREATE TABLE family(

    fid INT PRIMARY KEY,

    fname VARCHAR(20) UNIQUE,

    XX XX DEFAULT 1

    );

    INSERT INTO family VALUES(50,'华硕',DEFAULT);

    第二种设置DEFAULT方法

    INSERT INTO family (fid,fname)VALUES(50,'华硕');第三个值自动使用默认数值

    注意事项:不可以在表格后括号里加引号!!!

    ⑥外键约束-FOREIGN KEY

    使用方法:

    CREATE TABLE laptop(

      lid INT PRIMARY KEY,

      familyld INT,

      FOREIGN KEY(familyId) REFERENCES laptop_family(fid) 

    );

    注意问题:

    1.必须是另一个表格的主键

    2.列类型必须和另一个表格的一样

    3.需要加了逗号写到下一行

     声明了外键约束的列,取值必须在另一个表的主键列上出现过,两者的列类型要保持一致,允许使用多个NULL或者多个NULL

     使用方法:

     FOREIGN KEY (列名) REFERENCES 数据表(主键列)

    mysql 中的自增列

    AUTO_INCREMENT:

      自动增长,假如一个列声明了自增列,无需手动赋值,直接赋值为NULL,会获取当前的最大值, 然后加1插入

      注意: 1.只适用于整数型的主键列上面

            2.自增列允许手动赋值

    3.手动赋值后中间跳跃有缺失,还会按最大值继续增长。

    4.使用方便,可以直接给上面写NULL,数字自动加1;

    列约束汇总

     

  • 相关阅读:
    搭建非域AlwaysOn win2016+SQL2016
    从0开始搭建SQL Server AlwaysOn 第四篇(配置异地机房节点)
    从0开始搭建SQL Server AlwaysOn 第二篇(配置故障转移集群)
    从0开始搭建SQL Server AlwaysOn 第三篇(配置AlwaysOn)
    从0开始搭建SQL Server AlwaysOn 第一篇(配置域控)
    四、基于Windows 2012配置SQL Server 2014 AlwaysOn
    三、安装SQLserver 2014(For AlwaysOn)
    二、 Windows 2012配置故障转移(For SQLServer 2014 AlwaysOn)
    Mybatis-SQL语句构建器类及日志
    Mybatis-JavaAPI
  • 原文地址:https://www.cnblogs.com/sugartang/p/10967422.html
Copyright © 2011-2022 走看看