列属性(约束)
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. java 对象和封装

    软件出现的目的     面向对象设计和开发程序的好处用计算机语言描述现实世界    交流更加流畅用计算机解决现实世界的问题   提高设计和开发效率 面向对象的思想    描述→ 面向对象的世界     ...

  2. Java基础学习笔记二 Java基础语法

    注释 注释用来解释和说明程序的文字,注释是不会被执行的. 单行注释 //这是一条单行注释 public int i; 多行注释 /* 这是 * 一段注释, * 它跨越了多个行 */ public vo ...

  3. SpringMVC DispatcherServlet 启动和加载过程(源码调试)

    在阅读本文前,最好先阅读以下内容(当然,如果对 Servlet 已经有所了解,则可跳过): http://www.cnblogs.com/cyhbyw/p/8682078.html http://ww ...

  4. 《统计学习方法》P89页IIS的中间步骤Zw+δ(X)/Zw(X)的推导

    共有两个方法:

  5. 微信APP简要分析

    Part1 走进微信APP 很明显,微信是很成功的APP. 微信 (WeChat) 是腾讯公司于2011年1月21日推出的一个为智能终端提供即时通讯服务的免费应用程序,现已是超过九亿人使用的手机应用. ...

  6. 201621123057 《Java程序设计》第8周学习总结

    1. 本周学习总结 思维导图归纳总结集合相关内容. 2. 书面作业 1. ArrayList代码分析 1.1 解释ArrayList的contains源代码 ArrayList是允许重复的,但当用它来 ...

  7. 201621123057 《Java程序设计》第7周学习总结

    1. 本周学习总结 1.1 思维导图:Java图形界面总结 1.2 可选:使用常规方法总结其他上课内容. 2.书面作业 1. GUI中的事件处理 1.1 写出事件处理模型中最重要的几个关键词. 答: ...

  8. 学习UI的总结

    学习前端有一段时间了,一直在看书上的理论知识,而实战项目却很少.老师常说,想要知道自己的实力有多少,知识掌握了多少,最好的方法就是去实践了,实践出真知嘛.于是在学习中,总要是通过项目的实践以及理论知识 ...

  9. JAVA_SE基础——21.二维数组的定义

    2 二维数组的定义 基本与一维数组类似 //定义一个3行5列的二维数组 //方法1,先new对象,然后再初始化每个元素 int[][] a = new int[3][5]; a[0][0]=1; a[ ...

  10. Python模块configparser(操作配置文件ini)

    configparser模块提供对ini文件的增删改查方法. ini文件的数据格式: [name1] attribute1=value1 attribute2=value2 [name2] attri ...