互联网科技@IT·互联网程序员

mysql之旅-数据类型

2016-07-29  本文已影响221人  小豪丶

mysql数据类型


[toc]

粗谈

粗谈这里不会做详细介绍,仅仅是点到即止,具体详细内容在下面的细谈里再做详细介绍。如果不愿花太多时间,仅仅是想了解个大概可以看粗谈。

mysql的数据类型可三大类:数值型字符串型日期时间型

数值型

整数型小数型(废话~)

字符串型

mysql中的字符串类型有char(定长字符串)、varchar(可变长字符串)、text(字符串文本)、blob(二进制文本)、enum(枚举)、set(集合)

日期时间型

mysql中的日期时间型有五种:

据说不如php的时间戳强大~~

细谈

数值型

整数型

  1. tinyint:占用1个字节
  2. smallint:占用2个字节
  3. mediumint:占用3个字节
  4. int:占用4个字节
  5. bigint:占用8个字节

一般的,tinyint与int较为常用

小数型
相关用法:float(M,D) M表示总长度,D表示小数点部分的长度。

mysql>create table mytable(a float(10,2))charset utf8; 

double和decimal与此类似;

  1. 浮点型:
  1. 定点型:decimal

浮点型容易丢失精度。因此对精确度高的地方不用浮点型(比如与钱有关的地方),而是用定点型。

字符串型

char:固定长度字符串。磁盘会分配固定长度的空间去存储数据,如 数据不够长度,空间依然占用。
varchar:可变长度字符串。会使用1~2个字节来保存实际长度。
text:字符串文本。可存储64M字节数的文本,要使用10个字节来保存实际长度。
blob:二进制文本。
enum:枚举。列出一系列的元素,可以在这些元素中任选一个作为元素的值(单选框)。使用2个字节来保存数据,能够保存65535个数据,是因为枚举实际保存的是数值,而不是字符串本身。
set:集合。列出一系列的袁术,可以在这些元素中选择一个或多个作为元素的值(复选框)。集合使用8个字符保存数据,和枚举一样保存的是数值,集合定义的数据类型里面出现的元素最多个数为64个。

证明enum和set保存的是数值:  
create database mydatabase; -- 创建一个mydatabase数据库
mysql> use mydatabase; -- 进入mydatabase数据库中
-- 创建一个mytable表
create table mytable(
animal enum('猫','狗','猪') -- enum类型animal列
)charset utf8;
insert into mytable values('狗');  -- 插入数据
select animal + 0 from mytable; -- 用数学运算讲其显示。

其他:

  • charvarchar的使用:
  1. 所有字符串长度必须小于255
  2. 如果字符串长度固定,那么使用char;否则使用varchar
  3. char效率高,varchar节省空间
  • enumset都保存的是数值而不是字符串,因此较为节省空间。插入时也能够使用数值插入。

日期时间型

附:在mysql中,任意一条记录,所有字段的集合的长度不超过65535个字节。所有的字段没有全部不允许null,那么null会占用一个字节来保存。

上一篇 下一篇

猜你喜欢

热点阅读