数据类型
- 数据类型(data_type):指系统中所允许的数据的类型
- MySQL中常用的数据类型为:
- 数值类型:
- 日期和时间类型
- 字符串类型
数值类型
-
整型
(1) TINYINT: 一字节,无符号取值范围[0,255], 有符号取值范围[-128,127] (2) SMALLINT: 二字节,无符号取值范围[0,65535], 有符号取值范围[-32768,32767] (3) MEDIUMINT: 三字节,无符号取值范围[0,16777215], 有符号取值范围[-8388608,8388607] (4) INT: 四字节,无符号取值范围[0,4294967295], 有符号取值范围[-2147483648,2147483647] (5) BIGINT: 八字节,无符号取值范围[0,2^64 - 1], 有符号取值范围[-2^63,2^63 - 1]
-
定点类型
(1) DECIMAL:即小数,可以用(M, D)来表示,其中M称为精度,表示总共的位数;D称为标度,表示小数的位数 (2) 例如:salary DECIMAL(5,2),则表示salary的范围为 -999.99 到 999.99, 即总位数为5位,小数位数为两位
-
浮点类型
(1) FLOAT: 四字节, 可表示精度为0 - 23位 (2) DOUBLE:八字节, 可表示精度为0 - 53位 (3) float和double同样支持(M,D)表示形式,(M,D)表示最多可存储M个数字的值,其中D表示小数点的位数
-
Bit-Value型
(1) BIT(M): 用于存储位值,M表示1bit允许存储M位值,M的取值范围为1-64
日期和时间类型
-
DATE
日期类型,用于包含日期部分但不包含时间部分的值。MySQL检索并显示日期'YYYY-MM-DD'格式的值。支持的范围是“1000-01-01”到“9999-12-31”。
-
DATETIME
日期时间类型,用于同时包含日期和时间部分的值。MySQL检索并以'YYYY-MM-DD hh:mm:ss'格式显示日期时间值。支持的范围是“1000-01-01 00:00:00”到“9999-12-31 23:59:59”
-
TIMESTAMP
时间戳数据类型,用于同时包含日期和时间部分的值。时间戳的范围是 '1970-01-01 00:00:01' UTC to '2038-01-19 03:14:07' UTC
-
TIME
时间类型,MySQL检索并以'hh:mm:ss'格式显示时间值(或'hhh:mm:ss'格式显示更大范围的小时值)。时间值可能从'-838:59:59'到'838:59:59'不等。小时的部分之所以如此之大,是因为可以使用时间类型不仅能代表一天之内(必须小于24小时),还能代表运行时间或两个事件之间的时间间隔(这可能是远远大于24小时,甚至为负)
-
YEAR
(1) 年份类型,是用于表示年份值的类型,大小为1字节。它可以声明为YEAR或YEAR(4),显示宽度为4个字符 (2) MySQL以 YYYY 格式显示年份值,范围从 1901 到 2155, 或0000
字符串类型
-
CHAR(M)
CHAR类型为固定长度字符串,在定义时指定字符串列长。当保存时,在右侧填充空格以达到指定的长度。M 表示列的长度,范围是 0~255 个字符。
-
VARCHAR(M)
(1) VARCHAR(M) 是长度可变的字符串,M 表示最大列的长度,M 的范围是 0~65535 (2) VARCHAR 的最大实际长度由最长的行的大小和使用的字符集确定,而实际占用的空间为字符串的实际长度加 1 (3) 例如:str1 VARCHAR(10), 定义了一个最大长度为10个字符的字符串,如果插入的字符串只有3个,则实际存储的字符串为 3 个字符和 一个字符串结束字符