Linux下MariaDB(mysql)数据类型介绍和表的约束

数据类型         

1.thiyint类型 -128~127

2.bit类型:

      bit[(M)] : 位字段类型。M表示每个值的位数,范围从1到64。如果M被忽略,默认为1。

      bit字段在显示时,是按照ASCLL对应值显示的.

3.float类型:

      float[(m, d)] [unsigned] : M指定显示长度,d指定小数位数,占用空间4个字节.MySQL在保存值时会进行四舍五入.

4.decimal类型

     decimal(m, d) [unsigned] : 定点数m指定长度,d表示小数点的位数.

5.char类型

    char(L): 固定长度字符串,L是可以存储的长度,单位为字符,最大长度值可以为255.

6.varchar

    archar(L): 可变长度字符串,L表示字符长度,最大长度65535个字节.

    关于varchar(len),len到底是多大,这个len值,和表的编码密切相关:

varchar长度可以指定为0到65535之间的值,但是有1 - 3 个字节用于记录数据大小,所以说有效字节数是65532。当我们的表的编码是utf8时,varchar(n)的参数n最大值是65532/3=21844[因为utf8中,一个字符占用3个字节],如果编码是gbk,varchar(n)的参数n最大是65532/2=32766(因为gbk中,一个字符占用2字节)

    char与varchar的区别

如果数据确定长度都一样,就使用定长(char),比如:身份证,手机号

如果数据长度有变化,就使用变长(varchar), 比如:名字,地址,但是你要保证最长的能存的进去。

定长的磁盘空间比较浪费,但是效率高。

变长的磁盘空间比较节省,但是效率低。

7.日期类型

    常用的日期有如下三个

    datetime 时间日期格式 'yyyy-mm-dd HH:ii:ss' 表示范围从1000到9999,占用八字节

    date:日期 'yyyy-mm-dd',占用三字节

    timestamp:时间戳,从1970年开始的 yyyy-mm-dd HH:ii:ss格式和datetime完全一致,占用四字节

    添加数据时时间戳会自动补上当前数据

8.enum和set

enum:单选类型

    最终一个单元格中,实际只存储了其中一个值;而且出于效率考虑,这些值实际存储的是“数字”,因为这些选项的每个选项值依次对应如下数字:1,2,3,....最多65535个;当我们添加枚举值时,也可以添加对应的数字编号

set:多选类型

Linux下MariaDB(mysql)数据类型介绍和表的约束_第1张图片

9.集合查询:

     find_in_set(sub,str_list) :如果 sub 在 str_list 中,则返回下标;如果不在,返回0; str_list 用逗号分隔的字符

Linux下MariaDB(mysql)数据类型介绍和表的约束_第2张图片

表的约束

1.默认值:default

      某一种数据会经常性的出现某个具体的值,可以在一开始就指定好,在需要真实数据的时候,用户可以选择性的使用默认值

默认值的生效:数据在插入的时候不给该字段赋值,就使用默认值

2.列描述:comment

      没有实际意义,用来描述字段信息,给程序员和DBA来进行解释

desc查找不到注释信息,show 可以

3.zeoffill

4.主键 primary key 唯一且不能为空

     primary key用来唯一的约束该字段里面的数据,不能重复,不能为空,一张表中最多只能有一个主键;主键所在的列通常是整数类型。

    追加主键alter table 表名 add primary key(字段列表)

5.唯一键 unique

     一张表中有往往有很多字段需要唯一性,数据不能重复,但是一张表中只能有一个主键:唯一键就可以解决表中有多个字段需要唯一性约束的问题。

    唯一键的本质和主键差不多,唯一键允许为空,而且可以多个为空,空字段不做唯一性比较

6.自增长auto_increment

     当对应的字段,不给值,会自动的被系统触发,系统会从当前字段中已经有的最大值+1操作得到一个新的不同的值。通常和主键搭配使用,作为逻辑主键

     任何一个字段要做自增长,前提是本身是一个索引(key一栏有值)

     自增长字段必须是整数

一张表最多只能有一个自增长

7.外键 foreign key (字段名) references customer(列名),

      外键用于定义主表和从表之间的关系:外键约束主要定义在从表上,主表则必须是有主键约束或unique约束。当定义外键后,要求外键列数据必须在主表的主键列存在或为null

 

你可能感兴趣的:(数据库)