mysql time类型数据_MySQL数据类型
MySQL中定义数据字段的类型对你数据库的优化是非常重要的;
MySQL支持多种类型,大致可以分为三类:数值、日期/时间和字符串(字符)类型;
整数类型
Int(N)中N的涵义
定义了 init(5)zerofill 当和int(10)join时显示宽度对不上有可能出现临时表
N表示显示宽度为N,但仍占4字节存储,存储范围不变;
>create table int_test(a int zerofill NOT NULL auto_increment, PRIMARY KEY(a));>createtable int_test_4(a int(4) zerofill NOT NULL auto_increment, PRIMARY KEY(a));>select * fromint_test_4;+------------+
|a |
+------------+
| 0001 |
| 0002 |
|2147483648 |
+------------+
>select * fromint_test;+------------+
|a |
+------------+
|0000000001 |
|0000000002 |
|2147483648 |
+------------+
关于浮点数类型:1)能不用到尽量不要用,2)浮点数不能用在等号比较的场景
建议TINYINT替换enum
日期和时间类型
表示时间值的日期和时间类型为DATETIME、DATE、TIMESTAMP、TIME和YEAR。
MySQL5.6不支持year(2)
日期类型注意事项
Timestamp,datatime从MySQL5.6.5支持自动更新为当前的时间:current timestamp
日期转换:cast(datatime_col as DATE)
>select now()+0;
5.6的us支持
>select now(4),MICROSECOND(now(4));
+--------------------------+---------------------+
|now(4) |MICROSECOND(now(4)) |
+--------------------------+---------------------+
|2016-04-16 08:50:01.6589 | 658900 |
+--------------------------+---------------------+
timestamp5.6.6之后支持 null
建议datetime 来替换timestamp
字符串类型
字符串类型指CHAR、VARCHAR、BINARY、VARBINARY、BLOB、TEXT、ENUM和SET。该节描述了这些类型如何工作以及如何在查询中使用这些类型;
字符型
varchar与char的区别
char是一种固定长度的类型,varchar则是一种可变长度的类型,它们的区别是: char(M)类型的数据列里,每个值都占用M个字节,如果某个长度小于M,MySQL就会在它的右边用空格字符补足.(在检索操作中那些填补出来的空格字符将被去掉)在varchar(M)类型的数据列里,每个值只占用刚好够用的字节再加上一个用来记录其长度的字节(即总长度为L+1字节)varchar存储可变长字符串,小于255字节时需要1个额外字节(大于255需要2个额外字节)存储长度,最大长度为65532字节(所有列总和);
char存储定长,读取时会截断末尾空格,长度最大为255字符;
1)CHAR(M)的涵义:
实际分配的长度是:M*字符编码长度=存储空间
例如:存储了255个字符 中文汉字是占用3个字节
255*3 = 765 一共是765字节
2)varchar(N)中N的涵义
最大存储N个字符;varchar(5)和varchar(200)存储hello所占空间一样,但后者在排序时会消耗更多内存,因为order by col采用fixed_length计算col长度(memory引擎也一样)
例如:
varchar(200)utf8下面占用多少字节
200*3+ 2
varchar(64) utf8
64*3=192<255
192+1=193
建议:
通常使用MySQL是innodb引擎 innodb引擎本来就是变长存储
行存储着:
trx_id, row-id,rollback, filed_pointer, null-flag, filed1,....
innodb存储引擎推荐varchar
char更快是针对MyISAM这种堆表 char 定长分配会更快一点
计算例子
举两个例说明一下实际长度的计算。
a)若一个表只有一个varchar类型,如定义为
createtable t4(c varchar(N)) charset=gbk;
则此处N的最大值为(65535-1-2)/2= 32766。
减1的原因是实际行存储从第二个字节开始’;
减2的原因是varchar头部的2个字节表示长度;
除2的原因是字符编码是gbk。
b)若一个表定义为
createtable t4(c int, c2 char(30), c3 varchar(N)) charset=utf8;
则此处N的最大值为 (65535-1-2-4-30*3)/3=21812
减1和减2与上例相同;
减4的原因是int类型的c占4个字节;
减30*3的原因是char(30)占用90个字节,编码是utf8。
mysql time类型数据_MySQL数据类型相关推荐
- mysql的double类型数据_mysql数据类型double和decimal区别详解
实数是带有小数部分的数字.然而,它们不只是为了存储小数部分,也可以使用 DEClMAL 存储比 BIGINT还大的整数. MySQL 既支持精确类型,也支持不精确类型. FLOAT 和 DOUBLE ...
- mysql 体重 类型 身高_MySQL 数据类型
介绍 存储引擎决定了表的类型,而表内存放的数据也要有不同的类型,每种数据类型都有自己的宽度,但宽度是可选的 mysql常用数据类型概括: #1. 数字: 整型:tinyint int bigint 小 ...
- mysql字段类型原理_mysql数据类型和字段属性原理与用法详解
本文实例讲述了mysql数据类型和字段属性.分享给大家供大家参考,具体如下: 本文内容: 数据类型 数值类型 整数型 浮点型 定点型 日期时间类型 字符串类型 补充: 显示宽度与zerofll 记录长 ...
- mysql time类型解析_mysql时间数据类型解析
1.MySQL的五种日期和时间类型 MySQl中有多种表示日期和时间的数据类型.其中YEAR表示年份,DATE表示日期,TIME表示时间,DATETIME和TIMESTAMP表示日期和实践.它们的对比 ...
- mysql 字符串类型 分区_MySQL分区类型
博文大纲: 1.RANGE分区 2.LIST分区 3.HASH分区 4.key分区 5.MySQL分表和分区的区别 6.附加:如何实现将分区放在不同的目录下进行存储 MySQL分区类型如下: RANF ...
- mysql索引类型 优劣_Mysql索引的类型和优缺点详解
索引是一种特殊的文件(InnoDB数据表上的索引是表空间的一个组成部分),它们包含着对数据表里所有记录的引用指针. 注: [1]索引不是万能的!索引可以加快数据检索操作,但会使数据修改操作变慢.每修改 ...
- mysql 索引类型案例_Mysql索引类型与基本用法实例分析
本文实例讲述了Mysql索引类型与基本用法.分享给大家供大家参考,具体如下: 索引 MySQL目前主要有以下几种索引类型: 普通索引 唯一索引 主键索引 组合索引 全文索引 - 普通索引 是最基本的索 ...
- mysql frm恢复数据_MYSQL使用.frm恢复数据表结构的实现方法
我们都知道当我们建立数据表(innodb或myisam)时,会生成相应的文件(如:MYD,MYI,frm) 在这里,我们探讨下使用frm文件恢复 innodb和myisam类型表的结构,不过由于他们存 ...
- sql判断数据库类型数据_SQL数据类型
sql判断数据库类型数据 SQL | 资料类型 (SQL | Data Types) Just like other programming languages, facilities of defi ...
最新文章
- 如何从 Ubuntu 中彻底卸载 Google Chrome
- 关于libnmap 的一些应用
- ElasticSearch创建文档
- Linux bash总结(一) 基础部分(适合初学者学习和非初学者参考)
- 【今日CV 计算机视觉论文速览 第120期】Thu, 23 May 2019
- Python练习:整数加减和
- sap idoc生成文件传到别的服务器,IDOC 实例详解
- [OpenBMC] 快速上手OpenBMC的Redfish
- solidworks图纸模板添加_「solidworks工程图模板」solidworks怎么添加置工程图模板? - seo实验室...
- RGB565的计算颜色表
- c#写图像tif gdal_C#使用GDAL将tif图像转换为jpg、bmp、png和gif格式的图像
- 恶意软件清理助手V2.6.3 build 005 2007-07-05
- 自己封装特定的Windows系统镜像
- 学习andriod开发之 异步加载图片(二)--- 使用其他进度条
- 前端常见面试题 - JS篇
- 【论文翻译】SHINE 一个用于特定领域实体与异构信息网络链接的通用框架
- 音频算法工程师发展前景
- 一个mysql安装问题的解决
- Grafana 设置 Right Y
- PMP考试报名费用可以怎么支付?给你说明白