Mysql数据表中列的类型
主要分为3大类:
一.数值型
a) 整数型:
tinyint(1字节),
smallint(2字节),
mediumint(3字节),
int(4字节),
bigint(8字节)。
注意:可以使用unsigned来控制是否有正负; 也存在bool类型,就是tinyint(1)的别名。
b) 小数型:
float(4字节。注意:有效数位只有6到7位,后面的只能表示大概范围,会丢失精度! 例如:向数据表中float类型的字段插入数值1234567890.123456789,查询出来的值为1234570000,丢失精度!!!),
double(8字节。同float,会丢失精度!有效数位为15或16位,取决于操作系统和cpu的支持),
所以:在对精度要求特别高的场合,例如银行系统和电子商务,一定要注意浮点数的使用!!!
decimal(定点表示。变长,大致是每9个数字,采用4个字节存储。整数和分数分开计算。对精度要求很高的场合使用该类型,不会出现精度丢失!)
二.日期时间型:
Year(1字节。年份,格式: YYYY),
Timestamp(4字节。时间戳。存储时是整型,显示时是datetime型,最大只能到2038-01-19 03:14:07,因为受4字节整型数存储空间的制约),
Time(3字节。时分秒,格式: HH:MM:SS),
Date(3字节。年月日,格式:YYYY-MM-DD),
Datetime(8字节。年月日时分秒,格式: YYYY-MM-DD HH:MM:SS)
三.字符串型:
set,
Enum( 例:create table t_stu (gender enum(‘female’,’male’));
则该字段的值只能为female或male。 1.可以限制插入的数据。2.枚举类型看起来是字符串,但是内部存储是整型!!! ),
Blob(字节流,而非字符流),
Text(tinytext, text, longtext),
Varchar(65535字符,需要1~2保存信息,同时由于记录的限制,最大为65532),
Char(最长255字符)
使用help create table; 命令来查看新建数据表的详细帮助时,可以看到所有的数据类型!!!