列属性(约束)
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. openjudge(三)

    已知三角形的三边分别是a.b.c, 先算出周长的一半s=1/2(a+b+c) 则该三角形面积S=根号[s(s-a)(s-b)(s-c)] 这个公式叫海伦--秦九昭公式 证明: 设三角形的三边a.b.c ...

  2. c语言程序设计第6周编程作业一(分解质因数)

    分解质因数 题目内容: 每个非素数(合数)都可以写成几个素数(也可称为质数)相乘的形式,这几个素数就都叫做这个合数的质因数.比如,6可以被分解为2x3,而24可以被分解为2x2x2x3. 现在,你的程 ...

  3. 【RabbitMQ系列】 Spring mvc整合RabbitMQ

    一.linux下安装rabbitmq 1.安装erlang环境 wget http://erlang.org/download/otp_src_18.2.1.tar.gz tar xvfz otp_s ...

  4. 【django之权限组件】

    一.需求分析 RBAC(Role-Based Access Control,基于角色的访问控制),就是用户通过角色与权限进行关联.简单地说,一个用户拥有若干角色,一个角色拥有若干权限.这样,就构造成& ...

  5. Git使用方法2.0

    ## Git来源: 最早开始是由Ruby程序员们发起的.Ruby是日本的家伙搞出来的,日本有个代码托管网站叫heroku,当时用这个的人比较多,现在这个网站还能打开,网址是www.heroku.com ...

  6. 一个C&C++程序的生命历程

    翻了好多博客,内容星星点点,没找到我想要的,现在吸取大神精华,加上本人拙见,总结如下: 一个C或C++程序从你开始编写,到结束,整个过程,都做了些什么,请看下文: 先看大体的过程:看图: 我在这里主要 ...

  7. Mysql数据库的触发程序

    /** **创建表 */ CREATE TABLE test1(a1 INT); CREATE TABLE test2(a2 INT); CREATE TABLE test3(a3 INT NOT N ...

  8. css精简命名

    想写写前言啥的,发现自己是前言无能星人. 简单吐吐槽好了,来到新公司,接手公司之前的项目,我想着也就是改改bug,慢慢来吧,粗略看了看这个项目的代码,目前仅看了html和css样式的,忍不住吐血三升. ...

  9. ASP.NET 访问项目网站以外的目录文件

    简单的说,可以通过在 IIS 添加虚拟目录的方法做到,获取访问路径的时候就用 HttpContext.Current.Server.MapPath("~/xxx"); 的方式. 下 ...

  10. ajax的原理解析

    一.关于同步与异步的分析: 异步传输是面向字符的传输,它的单位是字符:而同步传输是面向比特的传输,它的单位是桢,它传输的时候要求接受方和发送方的时钟是保持一致的.而ajax就是采用的异步请求方式的. ...