MySQL中的数据类型 [数值型、字符串型、时间日期型]
| 类型 | 数据大小 | 类型 (无符号:unsigned) | 数据大小 | 存储空间 |
| tinyint | -128 到 127 | tinyint unsigned | 到 255 | 1 |
| smallint | -32768 到 32767 | smallint unsigned | 0 到 65535 | 2 |
| mediumint | -8388608 到 8388607 | mediumint unsigned | 到 16777215 | 3 |
| int 或 integer | -2147483648 到 2147483647 | int unsigned 或 integer unsigned | 到 4294967295 | 4 |
| bigint | -9223372036854775808 到 9223372036854775807 | bigint unsigned | 0 到 18446744073709551615 | 8 |
| 类型 | “ 零 ” 值 | 存储空间 |
| time | '00:00:00' | 3 |
| date | '0000-00-00' | 3 |
| datetime | '0000-00-00 00:00:00' | 8 |
| year | 0000 | 1 |
| timestamp | 0000000000000000 | 4 |
- varchar(M):1. 当字符串长度M小于255时,用额外的1个字节来记录长度,存储空间L+1。[L为值的长度]
2. 当字符串长度M大于255时,用额外的2个字节来记录长度,存储空间L+2。[L为值的长度]
- 比如:char(255)和varchar(255),在存储字符串"hello world"时:
char会用255个字节的空间放那个11个字符;
varchar就不会用255个,它先计算字符串长度为11,然后再加上一个记录字符串长度的字节,一共用12个字节存储,这样varchar在存储不确定长度的字符串时会大大减少存储空间。
- 从效率上考虑,固定长度,存储空间一次性分配,CHAR更好(长度较短的字段:门牌号等、固定长度的字段:性别、身份证号、手机号等)。
- 从空间上考虑,可变长度,根据长度动态调整存储空间,VARCHAR更好。
- 下面的表显示了将各种字符串值保存到CHAR(4)和VARCHAR(4)列后的结果,说明了CHAR和VARCHAR之间的差别:
| 值 | char(4) | 存储空间 btyes | varchar(4) | 存储空间 btyes |
| '' | ' ' | 4 | '' | 1 |
| 'ab' | 'ab ' | 4 | 'ab ' | 3 |
| 'abcd' | 'abcd' | 4 | 'abcd' | 5 |
| 'abcdefgh' | 'abcd' | 4 | 'abcd' | 5 |
另外:
| 类型 | 存储空间 |
| tinyint | 1 |
| smallint | 2 |
| mediumint | 3 |
| int,integer | 4 |
| bigint | 8 |
| float(p) | 如果0 <= p <= 24为4个字节, 如果25 <= p <= 53为8个字节 |
| double | 8 |
| decimal(M,D),numeric(M,D) | 变长 |
| bit(M) | 大约(M+7)/8个字节 |

- 实际上小数数值只有两种数据类型:float 和 decimal,分别是近似数值和精确数值。
- 其他小数类型,都可以使用float和decimal来替代,例如,双精度(double precision)数据类型等价于 float(53),real等价于float(24)。
- numeric是 decimal的同义词,应该避免在程序中直接使用 double precision、real和numeric,而是用 float(24) 、float(53)和decimal 代替。
| 类型 | 存储空间 (字节) |
| char(M) | M,0 <= M <= 255 |
| varchar(M) | L+1 或 L+2,其中L <= M 且0 <= M <= 65532 |
| binary(M) | M,0 <= M <= 255 |
| varbinary(M) | L+1个字节,其中L <= M 且0 <= M <= 255 |
| tinyblob tinytext |
L+1个字节,其中L < 28 |
| blob,text | L+2个字节,其中L < 216 |
| mediumblob mediumtext |
L+3个字节,其中L < 224 |
| longblob longtext |
L+4个字节,其中L < 232 |
| enum('value1','value2',...) | 1或2个字节,取决于枚举值的个数(最多65,535个值) |
| set('value1','value2',...) | 1、2、3、4或者8个字节,取决于set成员的数目(最多64个成员) |

<wiz_tmp_tag id="wiz-table-range-border" contenteditable="false" style="display: none;">
MySQL中的数据类型 [数值型、字符串型、时间日期型]的更多相关文章
- MySQL 中的数据类型介绍(转)
据我统计,MySQL支持39种(按可使用的类型字段统计,即同义词也作多个)数据类型.下面的介绍可能在非常古老的mysql版本中不适用. 转载出处:http://blog.csdn.net/anxpp/ ...
- MySQL中各种数据类型的长度及在开发中如何选择
接触MySQL这个数据库大概快要两年了,不过由于没有特别深入系统的去学习,大多也是停留在一知半解的状态.今天在工作中刚好碰到了表设计的问题,顺便写篇博客,把MySQL中数据类型和字段类型选择这方面给弄 ...
- 存储引擎和表的操作(mysql中的数据类型、完整性约束)
一.存储引擎 .概念 MySQL中的数据用各种不同的技术存储在文件(或者内存)中.这些技术中的每一种技术都使用不同的存储机制.索引技巧.锁定水平并且最终提供广泛的不同的功能和能力. 通过选择不同的技术 ...
- 【个人笔记】《知了堂》MySQL中的数据类型
MySQL中的数据类型 1.整型 MySQL数据类型 含义(有符号) tinyint(m) 1个字节 范围(-128~127) smallint(m) 2个字节 范围(-32768~32767) ...
- 抛砖系列之-MySQL中的数据类型JSON
今天介绍一个MySQL中的数据类型-JSON,相信大家对JSON都不陌生,在日常工作中使用到的频率也很高,话不多说,直接开始. 何谓JSON 看下RFC文档对于JSON的描述 1.基于 JavaScr ...
- MySQL 中的数据类型介绍
1.MySQL 数据类型 MySQL中定义数据字段的类型对你数据库的优化是非常重要的. MySQL支持多种类型,大致可以分为三类:数值.日期/时间和字符串(字符)类型. 2.数值类型(12) 2.1. ...
- 存储引擎,MySQL中的数据类型及约束
存储引擎,MySQL中的数据类型及约束 一.存储引擎 1.不同的数据应该有不同的处理机制 2.mysql存储引擎 Innodb:默认的存储引擎,查询速度叫myisam慢,但是更安全 支持事务, ...
- MySQL中的数据类型及创建
MySQL创建: 1.创建数据库create database test2; 2.删除数据库drop database test2;3.创建表create table ceshi( ids in ...
- vb.net字符串格式转为日期型
vb.net字符串格式转为日期型 比如 "20080815" 转换为"2008-05-15"Dim a As Date Dim s As String = ...
随机推荐
- 使用Hangfire处理后台任务
Hangfire用法比较简单,个人觉得可以和Quartz框架配合使用. hangfire比较适合处理基于队列的任务,和延时执行任务. 至于重复和定时任务使用quartz框架可以支持秒级单位的定时任务处 ...
- free 内存检测
free打印出的内存信息主要分为两种,一种是安装的内存,一种是用磁盘虚拟的内存,就是这里的Swap,相信装过Linux系统的同学肯定不陌生交换分区,这里Swap大小就是我们分区的时候分配的大小. 下面 ...
- CodeForces 519D A and B and Interesting Substrings ——(奥义字符串)
题意:给出26个字母每个字母的价值,问字符串中有多少个满足以下条件的子串: 1.子串的第一个和最后一个相同 2.子串除了头和尾的其他字符的价值加起来和尾0 这题普通方法应该是O(n^2),但是在1e5 ...
- selenium的方法
# Licensed to the Software Freedom Conservancy (SFC) under one # or more contributor license agreeme ...
- postman设置环境变量,实现一套接口根据选择的环境去请求不同的url
一个系统,有本地,开发,测试,生产等不同的环境,如果写不同的url配置多套会比较麻烦,可以设置不同的环境实现不同的url之间的切换.配置之后如下: 第一步: 第二步: 添加环境变量 ps::不同的环境 ...
- 图解Python 【第八篇】:网络编程-进程、线程和协程
本节内容一览图: 本章内容: 同步和异步 线程(线程锁.threading.Event.queue 队列.生产者消费者模型.自定义线程池) 进程(数据共享.进程池) 协程 一.同步和异步 你叫我去吃饭 ...
- python小白之list使用笔记
List常见用法 list拆分 I=array([4.,2.]) print(I[:,newaxis])#将原本在一个列表里的两个数拆为两个不同列表里 list合并 法一 运算符重载 num=[1, ...
- layui-简单的登录注册界面【转载】
register.html 源代码: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 ...
- html提交表单,php在后台获取表单内容的方法_例1
html代码: <html> <head> <meta http-equiv="Content-Type" content="t ...
- linux 执行shell脚本的时候,生成的log文件乱码
脚本执行后,生成的log文件,cat打开没有问题,vim打开就是文字乱码. file1完全没有问题,其他人的file2追加到file中间的时候就出现了这个问题. 因为使用notepad在win7写的, ...