MySQL之约束条件

创建表的完整语法

  语法:

create table 表名(
    字段名1 字段类型(数字) 约束条件,
    字段名2 字段类型(数字) 约束条件,
    字段名3 字段类型(数字) 约束条件
);

  注意事项

    1、字段名和字段类型是必须的

    2、数字和约束条件是可选的 并且 约束条件可以有多个空格隔开即可

    3、最后一个语句的结尾不要加逗号

约束条件

  约束条件相当于是在字段类型的基础之上添加的额外约束

  1、unsigned

    让数字没有正负号

  2、zerofill

    多余的使用数字0填充

  3、not null

    非空

create table t2(
      id int,
      name varchar(32) not null
);

  新增表数据的方式

    方式1:按照字段顺序一一传值

insert into t1 values(1,'jason');

    方式2:自定义传值顺序 甚至不传  

insert into t1(name,id) values('jason',1);
insert into t1(id) values(1);

在MySQL中不传数据 会使用关键字NULL填充意思就是空 类似于python的None

  4、default

    默认值

    所有的字段都可以设置默认值 ,用户不给该字段传值则使用默认的 否则使用传了的

create table t3(
    id int default 911,
    name varchar(16) default 'jason'
);

  5、unique

    唯一值

    单列唯一

create table t4(
    id int,
    name varchar(32) unique
);

    联合唯一

create table t5(
    id int,
    host varchar(32),
    port int,
    unique(host,port)
);

  6、primary key

    主键

    但从约束层面上来说 相当于是 not null + unique(非空且唯一),在此基础之上还可以加快数据的查询

    InnoDB存储引擎规定了一张表必须有且只有一个主键,因为InnoDB是通过主键的方式来构造表的

    如果没有设置主键

      情况1:

        没有主键和其他约束条件,InnoDB会采用隐藏的字段作为主键 不能加快数据的查询

      情况2:

        没有主键但是有非空且唯一的字段,自动将该字段升级为主键

create table t6(
    id int,
    age int not null unique,
    pwd int not null unique
);

    总结:以后我们在创建表的时候一定要设置主键,并且主键字段一般都是表的id字段(uid sid pid cid)

create table user(
    id int primary key,
    name varchar(32)
);

  7、auto_increment

    自增

    由于主键类似于数据的唯一标识 并且主键一般都是数字类型,我们在添加数据的时候不可能记住接下来的序号是多少 太麻烦

create table user1(
    id int primary key auto_increment,
    name varchar(32)
);

    自增的特性

      1、自增不会因为删除操作而回退

        delete from无法影响自增

      2、如果想要重置需需要使用truncate关键字

        truncate 表名  # 清空表数据并且重置主键值

 

posted @ 2022-03-02 20:18  那就凑个整吧  阅读(131)  评论(0编辑  收藏  举报