数据类型
MySQL中的数据类型 主要用于 指定 数据表中的字段(列)的数据类型。
大致分为三类: 数值、日期/时间和字符串(字符)类型。
数值类型
|类型|大小|范围|用途|
|-|-|-|-|
|TINYINT|1 byte|(-128,127)|小整数值|
|SMALLINT|2 bytes|(-32 768,32 767)|大整数值|
|MEDIUMINT|3 bytes|(-8 388 608,8 388 607)|大整数值|
INT或INTEGER|4 bytes|(-2 147 483 648,2 147 483 647)|大整数值|
BIGINT|8 bytes|(-9,223,372,036,854,775,808,9 223 372 036 854 775 807)|极大整数值
FLOAT|4 bytes|(-3.402 823 466 E+38,-1.175 494 351 E-38),0,(1.175 494 351 E-38,3.402 823 466 351 E+38) |单精度浮点数值|
|DOUBLE|8 bytes|(-1.797 693 134 862 315 7 E+308,-2.225 073 858 507 201 4 E-308),0,(2.225 073 858 507 201 4 E-308,1.797 693 134 862 315 7 E+308)|双精度 浮点数值|
|DECIMAL|对DECIMAL(M,D) ,如果M›D,为M+2否则为D+2|依赖于M和D的值|小数值|
其中 DECIMAL(M,D)类型比较特殊,其中M代表可存储的十进制数的最大位数,包括小数位,D表示小数位有几位。DECIMAL类型==通常用来表示金额==等字段
举例:
decimal(3):999
decdimal(3,2):9.99
decimal(10,5):11615.23653
时间类型
|类型|大小|范围|格式|用途|
|-|-|-|-|-|
|DATE|3 bytes|1000-01-01到9999-12-31|YYYY-MM-DD|日期值|
|TIME|3 bytes|'-838:59:59'到'838:59:59'|HH:MM:SS|时间值或持续时间|
|YEAR|1 byte|1901到2155|YYYY|年份值|
|DATETIME|8 bytes|1000-01-01 00:00:00到9999-12-31 23:59:59|YYYY-MM-DD HH:MM:SS|混合日期和时间值|
|TIMESTAMP|4 bytes|1970-01-01 00:00:00到2038年结束时间是第 2147483647 秒,北京时间 2038-1-19 11:14:07,格林尼治时间 2038年1月19日 凌晨 03:14:07|YYYYMMDD HHMMSS|混合日期和时间值,时间戳|
字符串类型
|类型|大小|用途|
|-|-|-|
|CHAR|0-255 bytes|定长字符串|
|VARCHAR|0-65535 bytes|变长字符串|
|TINYBLOB|0-255 bytes|不超过 255 个字符的二进制字符串|
|TINYTEXT|0-255 bytes|短文本字符串|
|BLOB|0-65 535 bytes|二进制形式的长文本数据|
|TEXT|0-65 535 bytes|长文本数据|
|MEDIUMBLOB|0-16 777 215 bytes|二进制形式的中等长度文本数据|
|MEDIUMTEXT|0-16 777 215 bytes|中等长度文本数据|
|LONGBLOB|0-4 294 967 295 bytes|二进制形式的极大文本数据|
|LONGTEXT|0-4 294 967 295 bytes|极大文本数据|
char 和 varchar 比较常用
练习
1、列出三个MySQL中的数值类型及其范围?
:|TINYINT|1 byte|(-128,127)|小整数值| ;
|SMALLINT|2 bytes|(-32 768,32 767)|大整数值| ;
|MEDIUMINT|3 bytes|(-8 388 608,8 388 607)|大整数值| 。
2、列出三个MySQL中的时间日期类型及其范围?
:|DATE|3 bytes|1000-01-01到9999-12-31|YYYY-MM-DD|日期值| ;
|TIME|3 bytes|'-838:59:59'到'838:59:59'|HH:MM:SS|时间值或持续时间| ;
|YEAR|1 byte|1901到2155|YYYY|年份值|。
3、列出三个MySQL中的字符类型及其范围?
:|CHAR|0-255 bytes|定长字符串| ;
|VARCHAR|0-65535 bytes|变长字符串| ;
|TINYBLOB|0-255 bytes|不超过 255 个字符的二进制字符串|。
4、表示金额的字段通常使用什么数据类型?
:数值类型。
5、只表示日期的字段适合使用什么数据类型?
:时间类型。
6、表示日期+时间的字段适合使用什么数据类型?
:时间类型。