mysql 数据类型

Posted 西瓜的夏天

tags:

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

1、数值类型

整数类型还有一个属性:AUTO_INCREMENT。在需要产生唯一标识符或顺序值时,可利用此属性,这个属性只用于整数类型。AUTO_INCREMENT 值一般从1 开始,每行增加1。在插入NULL 到一个AUTO_INCREMENT 列时,mysql 插入一个比该列中当前最大值大1 的值。一个表中最多只能有一个AUTO_INCREMENT列。对于任何想要使用AUTO_INCREMENT 的列,应该定义为NOT NULL,并定义为PRIMARY KEY 或定义为UNIQUE 键。

2、日期时间类型

如果需要经常插入或者更新日期为当前系统时间,则通常使用TIMESTAMP 来表示。TIMESTAMP 值返回后显示为“YYYY-MM-DD HH:MM:SS”格式的字符串,显示宽度固定
为19 个字符。如果想要获得数字值,应在TIMESTAMP 列添加+0。

 3、字符串类型

4、ENUM 类型

ENUM 中文名称叫枚举类型,它的值范围需要在创建表时通过枚举方式显式指定,对1~
255 个成员的枚举需要1 个字节存储;对于255~65535 个成员,需要2 个字节存储。最多
允许有65535 个成员。下面往测试表t 中插入几条记录来看看ENUM 的使用方法。
(1)创建测试表t,定义gender 字段为枚举类型,成员为\'M\'和\'F\':
  mysql> create table t (gender enum(\'M\',\'F\'));
(2)插入4 条不同的记录:
  mysql> INSERT INTO t VALUES(\'M\'),(\'1\'),(\'f\'),(NULL);

5、SET类型

Set 和ENUM 类型非常类似,也是一个字符串对象,里面可以包含0~64 个成员。根据
成员的不同,存储上也有所不同。
 1~8 成员的集合,占1 个字节。
 9~16 成员的集合,占2 个字节。
 17~24 成员的集合,占3 个字节。
 25~32 成员的集合,占4 个字节。
 33~64 成员的集合,占8 个字节。

 

Set 和ENUM 除了存储之外,最主要的区别在于Set 类型一次可以选取多个成员,而ENUM则只能选一个。下面的例子在表t 中插入了多组不同的成员:
Create table t (col set (\'a\',\'b\',\'c\',\'d\');
insert into t values(\'a,b\'),(\'a,d,a\'),(\'a,b\'),(\'a,c\'),(\'a\');
mysql> select * from t;
+------+
| col |
+------+
| a,b |
| a,d |
| a,b |
| a,c |
| a    |
+------+
SET 类型可以从允许值集合中选择任意1 个或多个元素进行组合,所以对于输入的值只要是在允许值的组合范围内,都可以正确地注入到SET 类型的列中。对于超出允许值范围的值例如(\'a,d,f\')将不允许注入到上面例子中设置的SET 类型列中,而对于(\'a,d,a\')这样包含重复成员的集合将只取一次,写入后的结果为“a,d”,这一点请注意

 

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

MySQL数据库的数据类型

mysql 数据类型TIMESTAMP

mysql数据类型中blob和binary的区别?

MYSQL 的数据类型

MySQL数据类型

mysql基础数据类型118-124