黄毅然的数据库学习(二)

数据类型

一、数字类型
整数
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
定长二进制数据,小于宽度时会在后面补齐空格。

你可能感兴趣的:(mysql)