列属性(约束)
1: 是否允许为空(not null)  --not null不允许为空
create table t_1(
    a tinyint(3) zerofill not null,
    b tinyint(3)
);
例: insert into t_1 values(18,29);
例: insert into t_1 values(null,12);  --报错
例: desc t_1;
例: alter table t_1 modify a tinyint(3) not null zerofill;  --报错zerofill不能数据类型分开
例: insert into t_1(a) values(19);
例: insert into t_1(b) values(28);

*******************************************************************************************************************

2: 默认值属性(default)
    create table t_2(
        a tinyint(2) zerofill not null default 18,
        b tinyint(2)
    );
    例: insert into t_2(b) values(19);
*******************************************************************************************************************

3: 列注释(comment)
    create table t_3(
        id tinyint(2) zerofill not null default 18 comment '编号',
        name varchar(30) comment '姓名'
    );
    use information_schema;
    show tables;
    desc information_schema.columns;
    select table_schema, table_name, column_name, column_comment from information_schema.columns;
    select table_schema, table_name, column_name, column_comment from information_schema.columns where table_schema = 'test' and table_name = 't_3';
*******************************************************************************************************************

4: 唯一约束  --不允许有重复的值
    drop table if exists t_4;
    create table t_4(
        id int,
        age tinyint,
        constraint un_id unique(id)    --创建一个唯一约束给id字段, constraint un_id给这个唯一约束取名为un_id;
    );
    desc t_4;
    show create table t_4\G

    例: insert into t_4 values(1, 2);
    例: insert into t_4 values(1, 2);        --报错, id值要是唯一的
    例: alter table t_4 drop index un_id;    --删除唯一约束 un_id(约束名);
    例: alter table t_4 add unique(id);      --增加唯一约束,
    ps: 约束名可以不用写, 如果不写的话则会默认的创建一个唯一约束名字,可以通过show create table t_4\G 来查看约束名;
        例: alter table t_4 drop index id;

    例: insert into t_4 values(null, null);
    例: insert into t_4 values(null, null);  --唯一约束允许null值的重复
*******************************************************************************************************************

5: 主键约束(primary key)
    create table t_6(
        t_no int(1) primary key,
        t_name varchar(30),
        t_sex varchar(3)
    );
    例: desc t_6;
    例: insert into t_6 values(null, '胖胖', '男');   --报错 主键值不能为null, 在创建主键时也会默认把字段设置not null
    例: insert into t_6 values(1, '胖胖', '男');
    例: insert into t_6 values(1, '小明', '男');      --报错 主键值不能重复

    ps: 一个表中只能有一个主键;
    drop table if exists t_7;
    create table t_7(
        a int,
        b int
    );
    alter table t_7 modify a int primary key;    --添加主键
    alter table t_7 modify b int primary key;    --报错 一个表中只能有一个主键;
    alter table t_7 drop primary key;            --删除主键

    ps: 可以设置组合主键
    drop table if exists t_8;
    create table t_8(
        a int,
        b tinyint,
        primary key(a, b)
    );        
    例: insert into t_8 values(1,2);
    例: insert into t_8 values(1,3);
    例: insert into t_8 values(1,3);
********************************************************************************************************************

6: 自动增长(auto_increment)
    create table t_9(
        id int primary key auto_increment,
        name varchar(30)
    );
    例: insert into t_9 values(null, '胖胖');      --如果添加了auto_increment,主键值可以用null来表示插入,但真正插入的并不是null值
    例: insert into t_9 values(null, '小明');
    例: insert into t_9 values(null, '小红');
    例: insert into t_9(name) values('哈哈');
        insert into t_9 values('小哈');            --报错
    ps: 自动增长需要整形和索引
        例: create table t_9(                      --报错
                id int auto_increment
            );

    自动增长的初始值从1开始, 可以自定义这个初始值
    create table t_10(                    
        id int primary key auto_increment
    );
    例: alter table t_10 auto_increment 10;              --把自动增长的初始值 设置为10
    例: insert into t_10 values();
    例: insert into t_10 values(50);
    例: insert into t_10 values();                         --自动增长会从已有的最大值开始增长;
********************************************************************************************************************

mysql列约束的更多相关文章

  1. MySQL的列约束

    1.列约束 (1)主键约束——PRIMARY KEY (2)非空约束——NOT NULL 声明了非空约束的列上,不允许使用NULL (3)唯一约束——UNIQUE 声明了唯一约束的列上不能插入重复的值 ...

  2. MySQL服务 - MySQL列类型、SQL模式、数据字典

    MySQL列类型的作用: 列类型可以简单理解为用来对用户往列种存储数据时做某种范围"限定",它可以定义数据的有效值(字符.数字等).所能占据的最大存储空间.字符长度(定长或变长). ...

  3. MYSQL中约束及修改数据表

    MYSQL中约束及修改数据表 28:约束约束保证数据的完整性和一致性约束分为表级约束和列级约束约束类型包括:    NOT NULL(非空约束)    PRIMARY KEY(主键约束)    UNI ...

  4. 数据库-SQL语句:删除和修改语句-列类型-列约束

    使用MySQL客户端连接服务器的两种方式: (1)交互模式: ——查 mysql.exe  -h127.0.0.1  -uroot  -p mysql   -uroot (2)脚本模式:——增删改 m ...

  5. mysql列的处理

    MySQL 添加列,修改列,删除列 示例:ALTER TABLE tb_financial MODIFY CREATE_TIME DATETIME(3) DEFAULT NULL COMMENT '录 ...

  6. 【MySQL】MySQL的约束

    在开始之前,笔者介绍一下笔者使用的数据库版本为5.7.所有的关系型数据库都支持对数据表使用约束,通过约束可以更好的保证数据表里数据的完整性.约束是在表上强制执行的数据校验,约束主要用于保证数据库里数据 ...

  7. mysql的约束

    SQL 约束 约束用于限制加入表的数据的类型. 可以在创建表时规定约束(通过 CREATE TABLE 语句),或者在表创建之后也可以(通过 ALTER TABLE 语句). (1)NOT NULL约 ...

  8. [转]mysql的约束

    转自:http://blog.csdn.net/kqygww/article/details/8882990 MySQL中约束保存在information_schema数据库的table_constr ...

  9. MYSQL数据库约束类型

    07.14自我总结 MYSQL数据库约束类型 一.主键约束(primary key) 主键约束要求主键列的数据唯一,并且不能为空.主键分为两种类型:单字段主键和多字段联合主键. 1.单字段主键 写法 ...

随机推荐

  1. Jmeter返回参数值写入文件《一》

    在用Jmeter做自动化测试的时候,某些特殊情况下我们需要将Jmeter的返回的某个特殊值写入的文件中,那么我们该如何做呢? 对于Jmeter这个工具来说,我们不难知道,它是一个java开源的可扩展的 ...

  2. DEVC使用问题集锦

    一.DEVC++编译出现"Id return 1 exit status" 这是初学者刚用DEVC经常碰到问题,一般有如下解决方法: 1.首先检查下是否有c的exe程序开着,若开着 ...

  3. 个人作业Week3-案例分析

    DeadLine:2017.10.13 23:00 声明:本作业以邹欣老师博客 http://www.cnblogs.com/xinz/archive/2012/03/26/2417699.html ...

  4. C语言--第三周作业

    一.PTA作业中4个题目 1.7-9 A乘以B 要求:输入的两个整数:A是你学号前两位数字,B是你学号后两位数字 a.代码 #include <stdio.h> int main () { ...

  5. 【iOS】Swift ?和 !(详解)

    Swift语言使用var定义变量,但和别的语言不同,Swift里不会自动给变量赋初始值, 也就是说变量不会有默认值,所以要求使用变量之前必须要对其初始化 .如果在使用变量之前不进行初始化就会报错: [ ...

  6. bzoj 4399 魔法少女LJJ

    4399: 魔法少女LJJ Time Limit: 20 Sec  Memory Limit: 162 MBhttp://www.lydsy.com/JudgeOnline/problem.php?i ...

  7. WebApi 方法的参数类型总结。

    1:[HttpGet]  ①:get方法之无参数. [HttpGet] public IHttpActionResult GetStudentInfor() { List<StudentMode ...

  8. Python内置函数(61)——eval

    英文文档: eval(expression, globals=None, locals=None) The arguments are a string and optional globals an ...

  9. HTTP头HOST

    http request header 中的host行的作用 在早期的Http 1.0版中,Http 的request请求头中是不带host行的,在Http 1.0的加强版和Http 1.1中加入了h ...

  10. Docker学习笔记 - Docker的守护进程

    学习目标:  查看Docker守护进程的运行状态 启动.停止.重启Docker守护进程 Docker守护进程的启动选项 修改和查看Docker守护进程的启动选项 1.# 查看docker运行状态  方 ...