mysql如何选择数据类型

mysql如何选择数据类型

1. 整数和浮点数

这个很容易区分,不需要小数时就选择整数,否则浮点数

浮点数包括float 和 double 类型

2. 浮点数和定点数

浮点数相对于定点数decimal来说,在一定长度浮点数能表示的数据范围更大

因为浮点数容易产生误差,所以精确度要求比较高时可以用decimal来存储

另外2个浮点数进行比较或者减法运算也容易出现问题,如果进行数值比较可以用decimal类型

3. 日期与时间类型

只记录年份,使用year类型即可

只记录时间,使用time类型即可

同时想要记录日期和时间,可以用timestamp或者datetime类型

datetime类型取值范围是’1000-01-01 00:00:00’ ~ ‘9999-12-3 23:59:59’

timestamp类型取值范围是’1970-01-01 00:00:01’ ~ ‘2038-01-19 03:14:07’

可以根据实际需要取值范围选择

4. char和varchar之间的特点和选择

char 是固定长度字符, varchar是可变长度字符

char 会自动删除插入数据的尾部空格,长度固定嘛,varchar 不会

mysql> create table tmp17(k char(4));
Query OK, 0 rows affected (0.01 sec)

mysql> insert into tmp17 values('');
Query OK, 1 row affected (0.01 sec)

mysql> select * from tmp17;
+------+
| k    |
+------+
|      |
+------+
1 row in set (0.00 sec)

mysql> select k,k='0000' from tmp17;
+------+----------+
| k    | k='0000' |
+------+----------+
|      |        0 |
+------+----------+
1 row in set (0.00 sec)

mysql> select k,k='\0\0\0\0' from tmp17;
+------+--------------+
| k    | k='\0\0\0\0' |
+------+--------------+
|      |            1 |
+------+--------------+
1 row in set (0.00 sec)

char 是固定长度,处理速度快,缺点是浪费存储空间, varchar反之

存储引擎对于选择char 和 varchar 的影响:

myisam存储引擎,最好用char,数据检索快

innodb存储引擎,最好用varchar,因为innodb数据表的存储格式不分固定长度喝可变长度,用varchar这样可以节省空间,从而磁盘I\O次数也会减少

5. enum和set

enum只能单选,比如性别是男还是女

set支持多选,比如兴趣爱好

6. blob和text

blob是二进制字符串,text是非二进制字符串,两者均可存放大容量的信息

blob主要存储图片、音频信息等

text只能存储纯文本文件

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值