数据表的列类型

Posted 尼农小道

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了数据表的列类型相关的知识,希望对你有一定的参考价值。

列类型

文本类型

enum(枚举类型)

语法:

enum(值列表);

说明:

  • 值是使用逗号分隔多个值
  • 值列表中的值的个数最多是65535个
  • 作用是规范数据,节省空间。
  • 类比于form表单中的单选按钮

示例:

示例:

原理:

    

set集合类型

语法:

    set(值列表);

说明:

  • 值是使用逗号分隔多个值
  • 值列表中的值的个数最多是64个
  • 作用是规范数据,节省空间。
  • 类比于form表单中的多选按钮
  • 字段的数据型是一个字符串,相当于将值列表中的多个值拼接成一个字符串,值的顺序可以是任意

示例:

原理:

    mysql会将集合类型组织一个二进制数,集合中的每一个值,按顺序被组织二进制中的一位

图解:

插入数据:值是red、silver、pink组合

    

日期时间型

date        日期型        格式 \'yyyy-mm-dd\'

time        时间型        格式 \'hh:ii:ss\'

datetime    日期时间型        格式 \'yyyy-mm-dd hh:ii:ss\'

year(m)        年

    m取的是4或2,

    4表示4位的年份,取值    0000至2155

    2表示2位的年份,取值70以上表示19xx,如果是69表示20xx

示例1:

示例2:

timestamp    时间戳类型

说明:

  • 格式 \'yyyy-mm-dd hh:ii:ss\'
  • 缺省值是0000-00-00 00:00:00
  • 只要对具有时间戳字段的表中进行更改,那么被更改的记录第1个时间戳字段会自动使用当前的时间进行填充。

示例:

 

列属性

列类型与列属性区别:

列类型针对的是单独的一个个体,是对单独个体的一个限制。

列属性针对列的整体进行约束。列属性也就是约束(constraint)。

示例:

primary key    主键

主键:就主要的键,主键是索引中的一种,索引就是唯一标识一条记录,提供用记数据查询,索引就是加快表的查询速度。一般会自定义一个与用户数据无关的字段作为主键字段。

 

创建主键

方法1:在创建表结构时,在需要定义主键的字段后使用primary key,来定义主键

示例:

方法2:

    在创建表结构时,在所有的字段后,使用primary key(\'字段名\')

示例:

方法3:

    在表结构好后之后,通过修改表结构来添加主键字段

查看表结构

主键的特点:

1、主键一定要唯一

2、主键字段的值不能为null

3、主键字段如果没有使用auto_increment,那么缺省值是0,

4、一个表中的主键字段只能有一个

主键的修改

主键不能修改,只能通过删除的方式,再重新添加主键

删除主键

语法:

    alter table 表名 drop primary key;

示例:

复合主键

    就是由两个或多个字段共同组成主键字段

示例:

说明:

    对于复合主键,只要当复合主键中所有的字段都相同时,才算是主键重复。

 

auto_increment    自增长

  • 自动根据表中的数据进行,新记录字段值的填充。
  • 对于自增长自段,只能是整型
  • 自增长字段,只能是一个索引字段(primary key 或者unique)
  • 主要与primary key配合使用

错误示例:

示例:

主键字段数据的插入:

对于自增长字段,可以人为的更改自增长的数据规律

(默认)新记录的自增加字段的值,是表中最大的自增长字段的值+1

自增长的字段的值保存位置:

show create table 表名;

示例:

自增长变量:

语法:

show variables like \'auto_increment_%\';

示例:

auto_increment_increment    表示步长

auto_increment_offset    表示起始值

示例:

自增长的删除

通过修改字段类型的方式

alter table 表名 modify 字段名 字段类型;

示例:

null

    在进行数据插入时,如果没有为具有约束的字段赋值时,那么MySQL默认会以null填充。

    在实际工作中,一般字段都不允许为null,

示例:

default    

缺省值

当插入记录时,如果没有为某些字段赋值,那么可人为指定一个缺省值

示例:

unique

唯一键

    用于约束整个列中的数据不能重复。

唯一键的特点:

    不能重复,但可以是为null(原因null不等于null)

示例1:

示例2:

查看

删除唯一键

    由于唯一键就是一个普通索引(index)

语法:

    alter table 表名 drop index 约束名;

示例:

查看约束名:

show create table 表名;

模拟主键

    如果一个表中没有主键(primary key)字段,那么MySQL会将第一个具有not null&&unique约束的字段设置为主键字段。

以上是关于数据表的列类型的主要内容,如果未能解决你的问题,请参考以下文章

数据表的列类型

你如何更改rails中的列数据类型?

如何将具有数字值的 char 数据类型的列转换为数字数据类型

将重复类型的列添加到数据表中

SettingWithCopyWarning Python 更改 Dataframe 中的列数据类型

无法将 SSMS 中的列转换为数据类型地理