数据类型
一、数字类型
整数
TINYINT:1字节
SMALLINT:2字节
MEDIUMINT:3字节
INT:4字节
BIGINT:8字节
取值范围:对于有符号数符号占一位,后面7位用二进制表示法。例如INT型为-32768~32767.无符号数符号不占位,为0-65535。
使用方法:使用无符号数时,加上UNSIGNED。
例如:
CREATE TABLE wdnmd(
int_1 INT,
int_2 INT UNSIGNED
);
可以在后面加上显示宽度,在数据类型表达的范围之内,如果小于宽度则会被空格填充,大于宽度也不会影响结果。
int_1 INT(4),
int_2 INT(3) UNSIGNED,
加上ZEROFILL可以在小于宽度时在前面填充0。比如宽度为3,2->002。
CREATE TABLE wdnmd(
int_1 INT,
int_2 INT(3) ZEROFILL
);
浮点数类型
FLOAT:4字节 精度:6~7位
DOUBLE:8字节 精度:15位
CREATE TABLE wdnmd(f1 FLOAT,f2 FLOAT);
INSERT INTO wdnmd VALUES(111111,1.11111);
INSERT INTO wdnmd VALUES(1111111,1.111111);
INSERT INTO wdnmd VALUES(1111114,1111115);
INSERT INTO wdnmd VALUES(11111149,11111159);
结果:
f1 f2
111111 1.11111
1111110 1.11111
1111110 1111120
11111100 11111200
整数部分和小数部分加起来达到7位时,第7位四舍五入。
定点数
DECIMAL
INSERT INTO TABLE wdnmd(d1 DECIMAL(n,m),d2 DECIMAL(x,y));
n,m和x,y指定了两数的整数和小数部分。使用方法同上。
二、时间日期
类型 | 取值范围 | 日期格式 | 零 |
---|---|---|---|
YEAR | 1901~2155 | YYYY | 0000 |
DATE | 1000-01-01~9999-12-3 | YYYY-MM-DD | 0000-00-00 |
TIME | -838:59:59~838:59:59 | HH:MM:SS | 00:00:00 |
DATETIME | 1000-01-01 00;00:00~9999-12-31 23:59::59 | YYYY-MM-DD HH:MM:SS | 0000-00-00 00:00:00 |
TIMESTAMP | 1970-01-01 00:00:01~2038-01-01 03:14:07 | YYYY-MM-DD HH:MM:SS | 0000-00-00 00:00:00 |
DATE:CURRENT_DATE或NOW()为当前日期
TIME:CURRENT_TIME或NOW()当前系统时间
DATETIME:NOW()当前系统日期和时间
三、字符串类型
数据类型 | 说明 |
---|---|
CHAR | 定长字符串 |
VARCHAR | 可变长字符串 |
TEXT | 文本数据 |
ENUM | 枚举 |
SET | 字符串对象 |
BINARY | 定长二进制 |
VARBINARY | 可变长二进制 |
BLOB | 二进制大对象 |
1.CHAR与VARCHAR
区别:前者空间固定,后者会随现实字符串变化。
2.TEXT
当CHAR与VARCHAR保持数据时,会自动去除末尾的空格,而TEXT会保留空格。
当查询CHAR,VARCHAR,TEXT时末尾空格会被忽略。
CHAR,VARCHAR,TEXT,ENUM,SET不区分大小写,‘A’=‘a’。
3.ENUM
ENUM('1','2','3','4'.....)
一次只能取出一个值。
4.SET
用于保存字符串定义同ENUM,最多保存64个值
5.BINARY
定长二进制数据,小于宽度时会在后面补齐空格。