hand
_1_8_92
4
返回栏目
0k
1k
0.2k
3k
1k
1k
0.3k
0.9k
0.8k
1k
0k
1k
0.8k
0k
0k
1k
0.1k
0k
0k
0.8k
3k
2k
0.4k
1k
3k
1k
0k
1k
0.5k
1k
3k
0.6k
0.2k
0.4k
0.9k
0k
0.6k
0.2k
1k
1k
1k
0.4k
0.3k
0.2k
0.3k
0.2k
0k
3k
0.6k
0k
0.2k
0.1k
0.3k
0.6k
0.2k
0.2k
0k
0.3k
2k
0.4k
0.2k
0.1k
0.1k
0.1k
0k
0.1k
0.1k
0.2k
0.2k
0.2k
0k
0k
0.5k
0k
0.1k
0.6k
0.4k
0.4k
3k
2k
0.2k
0.7k
1k
0k
0k
0.1k
2k
0.4k
2k
0k
0k
0.3k
6k
0k
0.1k
0k
0k
0.5k
1k
返回mysql数据库栏目
作者:
贺及楼
成为作者
更新日期:2024-07-12 00:30:21
MySQL的数据类型包括5大类:数字类型、字符串类型、二进制类型、日期类型、Enum类型
下表包含几乎所有的数据类型对应的表现形式、范围
类型名 | MySQL类型 | python类型 | 描述 | 子节占据 | 表示形式 | 范围 | 场景 |
---|---|---|---|---|---|---|---|
数字 | - | - | - | - | - | - | - |
tinyint | tinyint | / | / | 1字节 | / | -128到127 | 不可以存IP地址 |
SmallInteger | smallint | int | 取值范围较小,一般为16位 | 2字节 | / | -32768到32767 | / |
MEDIUMINT | MEDIUMINT | int | 取值范围较小,一般为16位 | 3字节 | / | -8388608到8388607 | / |
Integer | int | int | 普通整数,一般32位 | 4字节 | / | -2147483648到2147483647 | / |
BigInteger | bigint | int/long | 不限精度的整数 | 8字节 | / | -9223372036854775808到9223372036854775807 | / |
Float | float | float | 单精度浮点型 | 4字节 | / | 精度为6位小数 | 不可以算钱 |
Float | float(x) | float | 单精度浮点型(X < = 24) | 4字节 | / | 精度为6位小数 | 不可以算钱 |
Float | float(x) | float | 单精度浮点型(25 < = X < = 53 ) | 8字节 | / | 精度为6位小数 | 不可以算钱 |
double | double | / | 双精度浮点型 | 8字节 | / | 精度为15位小数 | 不可以算钱 |
Numeric | decimal | decimal.Decimal | 定点数 | 4-8字节 | / | 精度在10进制下最多为65位 | 财务计算 |
字符串 | - | - | - | - | - | - | - |
String | char(M) | str | 固定字符串 | 与字符集相关(单行不能超过65535个字节) | / | 1 <= M <= 255 | / |
String | varchar(M) | str | 变长字符串 | 与字符集相关(单行不能超过65535个字节) | / | 1 <= M <= 255 | / |
Text | tinytext | str | 变长字符串 | 65535bytes | / | L< 2 ^ 16(64K) | / |
Text(65536) | mediumtext | str | 变长字符串 | / | / | L< 2 ^ 24(16M) | / |
Text(16777216) | longtext | str | 变长字符串 | / | / | L< 2 ^ 32(4G) | / |
Unicode | varchar | unicode | 变长字符串 | / | / | / | / |
UnicodeText | text | unicode | 变长字符串,64K | / | / | / | / |
二进制 | - | - | - | - | - | - | - |
LargeBinary | blob | str | 二进制文件,64K | / | / | / | / |
LargeBinary(65536) | mediumblob | str | 二进制,max16M | / | / | / | / |
LargeBinary(16777216) | longblob | str | 二进制,max32M | / | / | / | / |
PickleType | blob | 任何python对象 | 自动使用Pickle序列化,只有blob | / | / | / | / |
Boolean | tinyint | bool | 布尔值 | 2字节 | / | / | / |
TINYBLOB | TINYBLOB | BLOB | 布尔 | L+1 字节 | / | L< 2 ^ 8(255B) | / |
日期 | - | - | - | - | - | - | - |
YEAR | year | / | 年 | 1字节 | yyyy |
/ | / |
Date | date | datetime.date | 日期 | 3字节 | yyyy-mm-dd |
/ | / |
Time | time | date.time | 时间 | 3字节 | hh:mm:ss |
/ | / |
DateTime | datetime | datetime.datetime | 日期和时间 | 8字节 | yyyy-mm-dd hh:mm:ss |
'1000-01-01 00:00:00.000000' to '9999-12-31 23:59:59.999999' |
服务器时区不一样 |
Interval | datetime | datetime.timedelta | 时间间隔 | / | / | / | / |
/ | timestamp | / | 时间挫 | 4字节 | yyyy-mm-dd hh:mm:ss |
'1970-01-01 00:00:01.000000' to '2038-01-19 03:14:07.999999' |
自动插入时间或者自动更新时间 |
- | - | - | - | - | - | - | - |
Enum | enum | str | 一组字符串 | 1 或 2 个字节, 取决于枚举值的数目(最大值65535) | / | / | / |
大家可以根据需要保存的数据选择对应的数据类型,选择数据类型后,MySQL会有相对应的基础功能。
例如:记录创建时间、更新时间,不需要通过程序生成时间
如果存进去的是NULL
timestamp会自动储存当前时间
datetime会储存 NULL
下面都是 MySQL 允许的形式,MySQL 会自动处理
例如:2016-10-01 20:48:59
例如:2016#10#01 20/48/59
例如:20161001204859
CHAR
作用:用于存储固定长度的字符串,括号内需填写字符的最大长度
范围:1到255
例如:CHAR(10)
表示存储最大长度为10的字符串。
VARCHAR
作用:用于存储可变长度的字符串,括号内需填写字符的最大长度
范围:1到65535
规则:1(数字)表示1个字符串(字)
规则:啊(中文字)表示1个字符串(字)
规则:大于varchar(255)自动转化为 tinytext
规则:大于varchar(500)自动转化为 text
规则:大于varchar(20000)自动转化为 mediumtext
例如:VARCHAR(255)
表示存储最大长度为255的字符串
例如:VARCHAR(50)
表示存储最大长度为50的字符串
DECIMAL、NUMERIC
作用:用于存储精确的数值,括号内需填写总位数和小数点后的位数
格式:(M, D)
例如:DECIMAL(5, 2)
表示存储最大为5位数(包括小数点后的2位)的数值
FLOAT、DOUBLE
作用:用于存储浮点数,括号内需填写总位数和小数点后的位数
格式:(M, D)
例如:FLOAT(7, 4)
表示存储最大为7位数(包括小数点后的4位)的浮点数值
ENUM、SET
作用:用于表示枚举类型和集合类型,括号内需填写预定义的值
例如:ENUM('A', 'B', 'C')
表示该字段只能存储’A’, ‘B’, ‘C’这三个值之一
8、int
()指的是显示长度
CREATE TABLE int_demo (
id INT(11) NOT NULL AUTO_INCREMENT,
a INT(11) NOT NULL,
b INT(11) UNSIGNED ZEROFILL NOT NULL,
c INT(5) DEFAULT NULL,
d INT(5) UNSIGNED ZEROFILL NOT NULL,
e INT(15) DEFAULT NULL,
PRIMARY KEY (`id`)
)
INSERT INTO int_demo (a, b, c, d, e) VALUES (1, 1, 1, 1, 1);
INSERT INTO int_demo (a, b, c, d, e) VALUES (1234567890, 1234567890, 1234567890, 1234567890, 1234567890);
id | a | b | c | d | e |
---|---|---|---|---|---|
1 | 1 | 00000000001 | 1 | 00001 | 1 |
2 | 1234567890 | 01234567890 | 1234567890 | 1234567890 | 1234567890 |
mysql数据库
整章节共99节
快分享给你的小伙伴吧 ~