SQL列类型
列类型的几种基本规则 M:表示最大显示宽度,最大有效显示宽度255 D:适用于浮点和定点类型,表示小数点后面的位数 方括号: [],表示可选部分 如果为一个数值列指定ZEROFILL,MySQL自动为该列添加UNSIGNED属性 数值类型 //数值类型// 这些类型包括严格数值数据类型(INTEGER、SMALLINT、DECIMAL和NUMERIC), 以及近似数值数据类型(FLOAT、REAL和DOUBLE PRECISION)。 关键字INT是INTEGER的同义词,关键字DEC是DECIMAL的同义词。 //字节说明 tinyint 1个字节 范围为+-127,无符号位则0-255 smallint 2个字节 范围为+-32768,无符号位则0-65535 mediumint 3个字节 范围为+-8388607,无符号位则0-16777215 int 4个字节 范围为+-2147483648,无符号位则0-4294967295 bigint 8个字节,范围为+-9223372036854775808,无符号位则18446744073709551615 TINYINT[(M)] [UNSIGNED] [ZEROFILL] 很小的整数。带符号的范围是-128到127。无符号的范围是0到255。 BOOL,BOOLEAN 是TINYINT(1)的同义词。zero值被视为假。非zero值视为真。 SMALLINT[(M)] [UNSIGNED] [ZEROFILL] 小的整数。带符号的范围是-32768到32767。无符号的范围是0到65535。 MEDIUMINT[(M)] [UNSIGNED] [ZEROFILL] 中等大小的整数。带符号的范围是-8388608到8388607。无符号的范围是0到16777215。 INT[(M)] [UNSIGNED] [ZEROFILL] 普通大小的整数。带符号的范围是-2147483648到2147483647。无符号的范围是0到4294967295。 INTEGER[(M)] [UNSIGNED] [ZEROFILL] 这是INT的同义词。 BIGINT[(M)] [UNSIGNED] [ZEROFILL] //大整数 FLOAT[(M,D)] [UNSIGNED] [ZEROFILL] 小(单精度)浮点数。 允许的值是-3.402823466E+38到-1.175494351E-38、0和1.175494351E-38到3.402823466E+38。 这些是理论限制,基于IEEE标准。实际的范围根据硬件或操作系统的不同可能稍微小些。 M是小数纵位数,D是小数点后面的位数。如果M和D被省略,根据硬件允许的限制来保存值。单精度浮点数精确到大约7位小数位。 如果指定UNSIGNED,不允许负值。 DOUBLE[(M,D)] [UNSIGNED] [ZEROFILL] 普通大小(双精度)浮点数。 允许的值是-1.7976931348623157E+308到-2.2250738585072014E-308、0和2.2250738585072014E-308到 1.7976931348623157E+308。 这些是理论限制,基于IEEE标准。实际的范围根据硬件或操作系统的不同可能稍微小些。 M是小数总位数,D是小数点后面的位数。如果M和D被省略,根据硬件允许的限制来保存值。双精度浮点数精确到大约15位小数位。 如果指定UNSIGNED,不允许负值 //日期和时间类型 DATE 日期。支持的范围为'1000-01-01'到'9999-12-31'。 MySQL以'YYYY-MM-DD'格式显示DATE值,但允许使用字符串或数字为DATE列分配值。 DATETIME 日期和时间的组合。 支持的范围是'1000-01-01 00:00:00'到'9999-12-31 23:59:59'。 MySQL以'YYYY-MM-DD HH:MM:SS'格式显示DATETIME值,但允许使用字符串或数字为DATETIME列分配值。 TIMESTAMP[(M)] 时间戳。范围是'1970-01-01 00:00:00'到2037年。 TIMESTAMP列用于INSERT或UPDATE操作时记录日期和时间。如果你不分配一个值,表中的第一个TIMESTAMP列自动设置为最近操作的日期和时间。也可以通过分配一个NULL值,将TIMESTAMP列设置为当前的日期和时间。 TIMESTAMP值返回后显示为'YYYY-MM-DD HH:MM:SS'格式的字符串,显示宽度固定为19个字符。如果想要获得数字值,应在TIMESTAMP 列添加+0。 TIME 时间。范围是'-838:59:59'到'838:59:59'。 MySQL以'HH:MM:SS'格式显示TIME值,但允许使用字符串或数字为TIME列分配值。 YEAR[(2|4)] 两位或四位格式的年。默认是四位格式。在四位格式中,允许的值是1901到2155和0000。在两位格式中,允许的值是70到69,表示从1970年到2069年。 MySQL以YYYY 格式显示YEAR值,但允许使用字符串或数字为YEAR列分配值。 //存储字节说明 date 3个字节 datetime 8个字节 timestamp 4个字节 time 3个字节 year 1个字节 //字符串类型// CHAR VARCHAR //变长字符串
无语言基础,自学python所做的各种笔记,欢迎大牛指点.