章节11:数据库表列数据类型

  • 【1】整数类型
  • 【2】浮点数类型
  • 【3】字符串类型
  • 【4】日期和时间类型


【1】整数类型

mysql8 修改列类型会锁表吗_mysql8 修改列类型会锁表吗


MySQL支持选择在该类型关键字后面的括号内指定整数值的显示宽度(例如,INT(4))。显示宽度并不限制可以在列内保存的值的范围,也不限制超过列的指定宽度的值的显示

主键自增:不使用序列,通过auto_increment,要求是整数类型

【2】浮点数类型

mysql8 修改列类型会锁表吗_数据库_02


需要注意的是与整数类型不一样的是,浮点数类型的宽度不会自动扩充。 score double(4,1)

score double(4,1)–小数部分为1位,总宽度4位,并且不会自动扩充。

【3】字符串类型

mysql8 修改列类型会锁表吗_字符串_03


1)CHAR和VARCHAR类型相似,均用于存于较短的字符串,主要的不同之处在于存储方式。CHAR类型长度固定,VARCHAR类型的长度可变(但是长度仍然不能超过设定值)。

2)因为VARCHAR类型能够根据字符串的实际长度来动态改变所占字节的大小,所以在不能明确该字段具体需要多少字符时推荐使用VARCHAR类型,这样可以大大地节约磁盘空间、提高存储效率。

3)CHAR和VARCHAR表示的是字符的个数,而不是字节的个数。

ps:关于varchar可存储的汉字长度,参照“bingleihenshang”的mysql varchar可存储的汉字长度 这里的MySQL版本是8.4.0,超过了5.0

【4】日期和时间类型

mysql8 修改列类型会锁表吗_mysql_04


TIMESTEMP类型的数据指定方式与DATETIME基本相同,两者的不同之处在于以下几点:

(1) 数据的取值范围不同,TIMESTEMP类型的取值范围更小。

(2) 如果我们对TIMESTAMP类型的字段没有明确赋值,或是被赋与了NULL值,MySQL会自动将该字段赋值为系统当前的日期与时间。

(3) TIMESTEMP类型还可以使用CURRENT_TIMESTAMP来获取系统当前时间。

(4) TIMESTEMP类型有一个很大的特点,那就是时间是根据时区来显示的。例如,在东八区插入的TIMESTEMP数据为2017-07-11 16:43:25,在东七区显示时,时间部分就变成了15:43:25,在东九区显示时,时间部分就变成了17:43:25。