zoukankan      html  css  js  c++  java
  • MySQL中的字段约束 null、not null、default、auto_increment

    在MySQL中,每个字段定义都包含附加约束或者修饰符,这些可以用来增加对所输入数据的约束。今天我们来看一下MySQL的字段约束:NULLNOT NULL修饰符、DEFAULT修饰符,AUTO_INCREMENT修饰符。
     
    NULL 和 NOT NULL 修饰符
    可以在每个字段后面都加上这NULL 或 NOT NULL 修饰符来指定该字段是否可以为空(NULL),还是说必须填上数据(NOT NULL)。MySQL默认情况下指定字段为NULL修饰符,如果一个字段指定为NOT NULL,MySQL则不允许向该字段插入空值(这里面说的空值都为NULL),因为这是“规定”。
    create table friends (
    id int(3) not null,
    name varchar(8) not null,
    pass varchar(20) not null
    );
     
    INSERT INTO friends
    VALUES (
    NULL , 'simaopig', 'simaopig'
    );
    但是在自增列和TIMESTAMP字段中,这个规则并不适用。向这些字段中插入NULL值将会导致插入下一个自动增加的值或者当前的时间戳。
    DEFAULT 修饰符
    可以使用DEFAULT修饰符为字段设定一个默认值。当插入记录时,您老人家忘记传该字段的值时,MySQL会自动为您设置上该字段的默认值。
    create table im (
    id int(3) not null,
    name varchar(25) not null default 'QQ' 
    );
     
    INSERT INTO im( id, name ) VALUES ( 2, 'MSN' ) ;
     
    INSERT INTO im( id ) VALUES ( 3 ) ;
     
    SELECT * FROM im LIMIT 0 , 30;
     
    如果一个字段中没有指定DEFAULT修饰符,MySQL会依据这个字段是NULL还是NOT NULL自动设置默认值。如果指定字段可以为NULL,则MySQL为其设置默认值为NULL如果是NOT NULL字段,MySQL对于数值类型插入0,字符串类型插入空字符串,时间戳类型插入当前日期和时间,ENUM类型插入枚举组的第一条。
    AUTO_INCREMENT 修饰符:
    AUTO_INCREMENT修饰符只适用于INT字段,表明MySQL应该自动为该字段生成一个数(每次在上一次生成的数值上面加1)。对于主键(稍候介绍),这是非常有用的。因为其允许开发者使用MySQL为每条记录创建唯一的标识符。
    CREATE TABLE items(
    id int( 5 ) NOT NULL AUTO_INCREMENT PRIMARY KEY ,
    label varchar( 255 ) NOT NULL
    );
     
    insert into items(label) values ('xxx');
     
    insert into items(label) values ('yyy');
     
    insert into items(label) values ('zzz');
     
     
    select * from items;
     
     
  • 相关阅读:
    Spring Boot 2 (四):使用 Docker 部署 Spring Boot
    Spring Boot 2 (三):Spring Boot 2 相关开源软件
    ConnectionString属性(网速慢的情况下研究Connect Timeout)
    Flexbox布局入门笔记
    ASP.Net一般处理程序Session用法
    AngularJS 插值字符串 $interpolate
    浅谈AngularJS的$parse服务
    VsCode 解决vim插件,不能使用ctrl+c的问题(目标卸载im)
    win10远程桌面 CredSSP加密Oracle修正的解决办法
    fatal:'origin' does not appear to be a git repository fatal:Could not read from remote repository
  • 原文地址:https://www.cnblogs.com/baorantHome/p/6964847.html
Copyright © 2011-2022 走看看