• 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;

    列约束汇总

     

  • 相关阅读:
    Chunky Monkey(算法)
    Confirm the Ending(算法)
    Return Largest Numbers in Arrays(算法)
    防止SQL注入总结
    mybatis中的#和$的区别 以及 防止sql注入
    拆分字符串为树形结构
    虚拟机类加载机制
    linux加载字体
    项目上线暴露出的问题
    浅析正则表达式-应用篇
  • 原文地址:https://www.cnblogs.com/sugartang/p/10967422.html
Copyright © 2020-2023  润新知