1.MySQL常用数据类型分类
日期类型 数字类型(整数和小数) 字符类型 二进制类型
2.日期类型
MySQL数据类型 | 字节数 | 含义 |
---|---|---|
date | 3字节 | 日期,格式:2014-09-18 |
time | 3字节 | 时间,格式:08:42:30 |
datetime | 8字节 | 日期时间,格式:2014-09-18 08:42:30 |
timestamp | 4字节 | 格式和datetime一样但是它可以根据mysql设置的时区自动修改 |
year | 1字节 | 年份,格式:2018 (范围1901-2155) |
3.整数类型
MySQL数据类型 | 字节数 | 含义(带有符号) |
---|---|---|
tinyint | 1字节 | 范围(-128~127) |
smallint | 2字节 | 范围(-32768~32767) |
mediumint | 3字 | 范围(-8388608~8388607) |
int | 4字节 | 范围(-2147483648~2147483647) |
bigint | 8字节 | 范围(+-9.22*10的18次方)java中long范围 |
4.浮点数类型
MySQL数据类型 | 字节数 | 含义(带有符号) |
---|---|---|
float(m, d) | 4字节 | 单精度浮点型,m总个数,d小数位,最大m-d整数位,默认(10,2) |
double(m, d) | 8字节 | 双精度浮点型,m总个数,d小数位,最大m-d整数位,默认(16,4) double 与 real 是一样的 |
decimal(m, d) | decimal是存储为字符串的浮点数,可以精确表示 |
float和 double会有精度丢失 例如以下代码:
mysql> insert into tc(ifloat) values('131072.32');
Query OK, 1 row affected
mysql> select* from tc;
+-----------+---------+----------+
| ifloat | idouble | idecimal |
+-----------+---------+----------+
| 131072.31 | NULL | NULL |
+-----------+---------+----------+
1 row in set
float和double在计算机中的存储格式就是二进制所以难免有精度丢失,可以使用decimal代替。
mysql> insert tc(idecimal) values(131072.32);
Query OK, 1 row affected
mysql> select * from tc;
+--------+---------+-----------+
| ifloat | idouble | idecimal |
+--------+---------+-----------+
| NULL | NULL | 131072.32 |
+--------+---------+-----------+
1 row in set
表的设计如下:
5.字符串类型
MySQL数据类型 | 含义(带有符号) |
---|---|
char(n) | 固定长度,n位字符,最多255个字符 |
varchar(n) | 可变长度,n位字符,最多(2^16-1)个字符 |
tinytext | 可变长度,最多255个字符 |
text | 可变长度,最多(2^16-1)个字符 |
mediumtext | 可变长度,最多(2^24-1)个字符 |
longtext | 可变长度,最多(2^32-1)个字符 |
6.二进制类型
MySQL数据类型 | 含义 |
bit(M) | M位二进制,M最大64位 也就是8字节 |
tinyblob | 可变长二进制,数据最多255字节 |
blob | 可变长二进制,数据最多(2^16-1)字节 64KB |
mediumblob | 可变长二进制,数据最多(2^24-1)字节 16MB |
longblob | 可变长二进制,数据最多(2^32-1)字节 4GB |
二进制可以用来存储图片和视频,但是一般都不会这样用,这样会导致MySQL链接被长期占用以及数据库服务器一直在io处理数据,效率低下。
参考文章:
https://blog.youkuaiyun.com/appleLg/article/details/54616130
http://wiki.jikexueyuan.com/project/mysql/data-types.html
ttps://blog.youkuaiyun.com/u011794238/article/details/50962702