mysql存储数据类型、约束类型、键

内容概要

  一、mysql字段数据类型

  二、mysql约束条件

  三、三大键

 

1、mysql数据类型

  -整形:

    tinyint 范围 -128 到 127

    int 范围  -2**15 到 2**15-1 

    long int 不需要记 

 

  -浮点型:

    float

    double

    ps:一般应用用到float就可以了,如果你是科学家,搞火箭或者核弹什么的,就要用到精度更高的数据类型了

 

  -字符类型

    varchar() 可变长度的字符串类型(括号内填入数字,表示最大存储的字符数,实际占用空间取决于插入的数据长度)

    char() 不可变长度的字符串类型(括号内填入数字,表示最大存储的字符数,只要填入数据,实际占用的空间是固定的,多余的位置填充空格)

 

    -varchar和char使用场景

      -varchar存储数据时,会额外生成1到2个字节的数据用于记录插入数据的实际大小

      -char存储数据时,直接开辟固定空间用于存储数据

      结论:

        varchar存储数据更节省空间,但是在提取时要先解析数据长度,所以提取时会稍慢

        char存储数据相对浪费空间,但是在提取数据时直接提取,所以提取时会快些

        当varchar存储的数据接近最大存储限制时,varchar由于存储了数据大小,所以节省空间的优势不存在

 

  -枚举类型enum

    enum() 里面填入预定的值,插入数据时只能插入enum括号内存在的唯一一个值

 

  -集合类型set

    set() 里面填入预定的值,插入数据时只能插入set括号内存在的值,可以插入多个值

 

  create table school(

    id int primary key auto_increment,

    name char(15),

    course set('python','linux','go','java'),

    sub_school enum('oldboy','找蓝翔')

  )

  

  insert into school(name,course,sub_school) values('学什么学校','go java linux','oldboy');

 

2、mysql约束条件

  mysql约束条件是对字段插入数据的一种限制

    -not null 插入的数据不能为空

    -default 增加默认值

    -unsigned 数据值无符号

      tinyint unsigned 范围 0 到 255

      int unsigned 范围 0 到 65535

 

3、三大键

  -primary key主键

    使用innodb存储引擎创建表时,必须指定一个字段为主键,主键的设置,可以为加快搜索表中数据的效率

    注意:每张表的主键必须是唯一的,通常为id字段,并且设置自增auto_increment,主键字段默认不能为空

    create table student(

    id int primary key auto_increment,

    name varchar(10),

    age int not null,

    gender enum('male','female')

    )

 

    create table student(

    id int primary key auto_increment,

    name varchar(10),

    age int not null,

    gender enum('male','female')看这个逗号

    )

    注意:不要在枚举类型右括号后面添加",",否则会报错

 

  -unique key 唯一键

    unique 设置的字段值是为一的,但是可以为多个null

    设置unique key的两种方式

 

      -直接跟在字段名后面

      create table t1(

        id int primary key auto_increment,

        c_id int unique

      );

 

      -设置好字段后,利用unique key方法转换

      create table t1(

        id int primary key auto_increment,

        c_id int,

        unique key(c_id)

      );

 

      ps:这种方法可以设置联合唯一键

        

      create table t1(

        id int primary key auto_increment,

        c_id int,

        d_id int,

        unique key(c_id,d_id)

      );

 

  -外键foreign key

posted @ 2021-03-01 22:05  口乞厂几  阅读(146)  评论(0)    收藏  举报