续上
整型
Mysql支持在类型名称后面的小括号指定其显示宽度,如果不指定显示宽度,那么默认宽度为11.一般配合zerofill
使用,即数值位不够,使用0来填充.如果插入的数值大于其指定的最大宽度.也会按照实际精度显示.此时的指定宽度没有任何意义.
浮点数和定点数
对于小数的表示,mysql分为两种方式,浮点数和定点数.浮点数包括float
和double
,而定点数只有decimal
一种表示.并且定点数在Mysql中以字符串的形式存放.其表示方法为*(M,D)*,表示一共显示M位数字(整数+小数),其中D位在小数点后面.对于超过精度的插入记录,将会进行四舍五入.若没有指定M和D,那么将会采用默认值,其中M为10,D为0.
日期
日期和时间类型 | 一般用途 |
---|---|
DATE | 表示年月日 |
DATETIME | 表示年月日时分秒 |
TIME | 表示时分秒 |
YEAR | 表示年 |
TIMESTAMP | 更新当前时间为系统时间,长度为固定19个字符 |
下面看如下代码:
create table t1(id1 time,id2 datetime,id3 date);
insert into t1(id1, id2,id3) values(now(),now(),now());
结果显示如下,
id1 | id2 | id3 |
---|---|---|
2017-10-31 | 18:31:40 | 2017-10-31 18:31:40 |
可以看到datetime
是date
和time
的组合.
字符串类型
mysql中常见的字符串类型有如下几种:
char
,varchar
,binary
,varbinary
,blob
,text
,enum
,set
-
char
和varchar
char
的长度固定为创建表时所声明的长度,而varchar
的长度是可变的.并且在检索的时候,char类型的字符串会删除末尾的空格,而varchar
不会删除,它会保留这些空格. -
enum
类型
该类型称为枚举类型,它的值需要在创建表时显示给定.见下面的例子:
create table t(gender enum(‘M’,‘F’)); -
set
类型
set类型的类型可以一次选择多个成员,而enum一次只能选取一个.见下面的例子:
create table t(col set('a,‘b’,‘c’,‘d’))
insert into t() values(‘a,b’),(‘a,d,a’);
并且如果插入的值中,有重复的,那么将会去除重复的值.