一 、整数类型
bigint
从 -2^63(-9223372036854775808) 到 2^63-1 (9223372036854775807) 的整型数据(所有数字)。存储大小为 8 个字节。
Int
从 -2^31(-2,147,483,648) 到 2^31 - 1 (2,147,483,647) 的整型数据(所有数字)。存储大小为 4 个字节。int 的 SQL-92 同义字为 integer。
smallint
从 -2^15 (-32,768) 到2^15 - 1 (32,767) 的整型数据。存储大小为 2 个字节。
intyint
从 0 到 255 的整型数据。存储大小为 1 字节。
注释
在支持整数值的地方支持 bigint数据类型。但是,bigint 用于某些特殊的情况,当整数值超过 int 数据类型支持的范围时,就可以采用 bigint。在 SQL Server 中,int数据类型是主要的整数数据类型。
在数据类型优先次序表中,bigint 位于smallmoney 和 int 之间。
只有当参数表达式是 bigint数据类型时,函数才返回 bigint。SQL Server 不会自动将其它整数数据类型(tinyint、smallint 和 int)提升为 bigint。
来自 <http://www.cnblogs.com/xiaochaohuashengmi/archive/2011/08/25/2152993.html>
MYSQL支持数据类型的名称后面指定该类型的显示宽度:
数据类型 (显示宽度)
INT(4) 指定INT类型的显示宽度为4
各种类型的默认显示宽度:
TINYINT | 4 (与其有符号数的最小值的显示宽度相同) |
SMALLINT | 6 |
MEDIUMINT | 9 |
INT | 11 |
BIGINT | 20 |
zerofill参数:数字不足的显示空间由0填补,会自动加上UNSIGNED属性,无符号数,显示宽度比默认宽度小1(负号占一个显示宽度)
当插入数据显示宽度>设置的显示宽度时,依然可以显示
AUTO_INCREMENT属性:使字段成为自增字段。具有该属性的字段,在插入新的纪录时,该字段的值都会在前一条记录的基础上加1
二、浮点数类型和定点数类型
表示小数
浮点数:单精度浮点数(FLOAT) && 双精度浮点数(DOUBLE)
定点数:DECIMAL
屏幕剪辑的捕获时间:2015/11/2 16:11
指定浮点数和定点数的精度
数据类型(M,D) M 精度,数据总长度,小数点不占位置; D 标度,小数点后的长度为D
屏幕剪辑的捕获时间:2015/11/2 16:18
FLOAT(6,2) 数据长度为6,小数点后保留2位
*最好不要让浮点数这样表示
*如果插入的值的精度高于实际定义的精度,系统会自动四舍五入处理
FLOAT和DOUBLE四舍五入不会报错,DECIMAL会有警告
三、日期与时间类型
YEAR ::YYYY 1901~2155
TIME HH:MM:SS -838:59:59~838:59:59
D HH:MM:SS 自动转换为HH = D *24 + HH
使用CURRENT_TIME/NOW()输入当前系统时间
DATA YYYY-MM-DD 1000-01-01 ~ 9999-12-31
-横杠可以用@或者.或者/或者#来代替,也可以不输入
TIMESTAMP 1970-01-0108:00:01 ~ 2038-01-19 11:14:07
四、字符串类型
CHAR VARCHAR
在创建表时指定了最大长度
字符串类型(M) eg:CHAR(4) ,CHAR长度固定
VARCHAR 长度可变,指定最大长度 VARCHAR(100) 使用多少分配多少
TEXT
只能保存字符数据
ENUM
枚举类型
属性名 ENUM('值1',‘值2' ……) 最多能有65535个值
列表中的每个值都有一个顺序排列的编号,MYSQL存入的是编号,不是列表中的值
ENUM的NOT NULL属性:默认值为取值列表的第一个元素
如果没有NOT NULL属性,ENUM将允许插入NULL,而且NULL是默认值
如果只能选取列表中的一个值,就用ENUM
如果要选取多个值,用SET
SET
属性名 SET('值1',‘值2' ……) 最多64个值
列表中的每个值都有一个顺序排列的编号,MYSQL存入的是编号,不是列表中的值
插入顺序不重要,系统会自动根据大小排列
五、二进制类型