mysql数据库中数据类型的长度

在mysql中新建数据表的时候会有长度一说,其实用建表语句建数据表的时候也有涉及

例如:

CREATE TABLE user(

uid int(4),

name varchar(255),

passward varchar(20)

birthday data

)

不知道你有没有注意这个数据类型后面的括号有什么玄机,今天看了《Mysql 5.6 从零开始学》这本书,算是把这个地方搞清楚了。

括号里的数字叫数据的宽度,我们不能一概而论,因为不同的数据类型对宽度的处理也不一样:

1、整数类型,这里显示的宽度和数据类型的取值范围是没有任何关系的,显示宽度只是指明Mysql最大可能显示的数字个数,数值的位数小于指定的宽度时会由空格填充;如果插入了大于显示宽度的值,只要该值不超过该类型的取值范围,数值依然可以插入,而且能够显示出来。

例如上面的udi,显示的宽度是4,但是我向uid中插入100001,也是可以的,保存和显示的都会是100001

如果你不设置宽度,系统将添加默认的宽度 tinyint(4),smallint(6),mediumint(9),int(11),bigint(20),这些默认的宽度是跟该类型的取值范围长度相关。

2、字符串类型,字符串类型这个宽度才真的用上了。不管是char还是varchar,宽度都定义了字符串的最大长度

例如上面的 password varchar(20),如果你输入了一个21个字符的密码,那么保存和显示的只会是前20个字符,你将丢失一个字符信息,char同理。由于varchar是变长存储的,所以实际开发中我们一般都把varchar的宽度设为最长255,反正你没用完它也不会浪费空间。

3、浮点和日期等数据类型对数据的宽度没有要求,一般也不设置,默认是0

mysql 各数据类型的 大小及长度

数字型

类型 大小 范围(有符号) 范围(无符号) 用途
TINYINT 1 字节 (-128,127) (0,255) 小整数值
SMALLINT 2 字节 (-32 768,32 767) (0,65 535) 大整数值
MEDIUMINT 3 字节 (-8 388 608,8 388 607) (0,16 777 215) 大整数值
INT或INTEGER 4 字节 (-2 147 483 648,2 147 483 647) (0,4 294 967 295) 大整数值
BIGINT 8 字节 (-9 233 372 036 854 775 808,9 223 372 036 854 775 807) (0,18 446 744 073 709 551 615) 极大整数值
FLOAT 4 字节 (-3.402 823 466 E+38,1.175 494 351 E-38),0,(1.175 494 351 E-38,3.402 823 466 351 E+38) 0,(1.175 494 351 E-38,3.402 823 466 E+38) 单精度 浮点数值
DOUBLE 8 字节 (1.797 693 134 862 315 7 E+308,2.225 073 858 507 201 4 E-308),0,(2.225 073 858 507 201 4 E-308,1.797 693 134 862 315 7 E+308) 0,(2.225 073 858 507 201 4 E-308,1.797 693 134 862 315 7 E+308) 双精度 浮点数值
DECIMAL 对DECIMAL(M,D) ,如果M>D,为M+2否则为D+2 依赖于M和D的值 依赖于M和D的值 小数值

字符类型

CHAR 0-255字节 定长字符串
VARCHAR 0-255字节 变长字符串
TINYBLOB 0-255字节 不超过 255 个字符的二进制字符串
TINYTEXT 0-255字节 短文本字符串
BLOB 0-65 535字节 二进制形式的长文本数据
TEXT 0-65 535字节 长文本数据
MEDIUMBLOB 0-16 777 215字节 二进制形式的中等长度文本数据
MEDIUMTEXT 0-16 777 215字节 中等长度文本数据
LOGNGBLOB 0-4 294 967 295字节 二进制形式的极大文本数据
LONGTEXT 0-4 294 967 295字节 极大文本数据

枚举集合

ENUM (最多65535个成员) 64KB
SET (最多64个成员) 64KB

时间类型

类型 大小 (字节) 范围 格式 用途
DATE 3 1000-01-01/9999-12-31 YYYY-MM-DD 日期值
TIME 3 ‘-838:59:59’/‘838:59:59’ HH:MM:SS 时间值或持续时间
YEAR 1 1901/2155 YYYY 年份值
DATETIME 8 1000-01-01 00:00:00/9999-12-31 23:59:59 YYYY-MM-DD HH:MM:SS 混合日期和时间值
TIMESTAMP 8 1970-01-01 00:00:00/2037 年某时 YYYYMMDD HHMMSS 混合日期和时间值,时间戳

所以MySQL中int长度经常定义为11位,包含所有范围。

mysql数据库中数据类型的长度相关推荐

  1. mysql 数据库中varchar的存储单位是什么

    一.先了解字节与字符 字节(Byte)是计量单位,表示数据量多少,是计算机信息技术用于计量存储容量的一种计量单位,通常情况下一字节等于八位. 字符(Character)计算机中使用的字母.数字.字和符 ...

  2. mysql数据库的数据类型转换_MySQL 和Server 2000 数据库中数据类型的转换

    问题阐述 在某些特殊的时候,可能要将MySQL 数据库转换为SQL Server 2000 数据库,这时问题也就随之而来.例如,在MySQL 数据库中,创建的字段使用varchar 类型,该类型的数据 ...

  3. MySQL中数据类型的长度问题解析

    MySQL中数据类型的长度问题总结 1):int类型,对吧,经常像保存个时间戳啊.id啊.数量啊.排序啊都会用到 提问:INT(11)是什么意思?最大保存十一位数么? 回答:不是楞个回事,听我给你摆, ...

  4. mysql中数据类型的长度

    一.varchar(n).char(n)中的n的含义 1)varchar(m),char(n)里面的m或n代表的是字符的个数. 打开mysql手册,看到这样一句话 The CHAR and VARCH ...

  5. mysql数据库BigInt数据类型和实体对象中BigInteger,Long类型的冲突

    mysql数据库BigInt数据类型和实体对象中BigInteger,Long类型的冲突 实体Bean public class Broke {/*** brokeid */BigInteger br ...

  6. Java中Long型数据类型对应MySQL数据库中哪种类型?

    Long型id数据对应MySQL数据库中 bigint 数据类型: System.out.println(1==1L); //tureSystem.out.println(1L); //1System ...

  7. mysql数据库中nchar_MySQL数据库中CHAR与VARCHAR之争

    在MySQL数据库中,用的最多的字符型数据类型就是Varchar和Char..这两种数据类型虽然都是用来存放字符型数据,但是无论从结构还是从数 据的保存方式来看,两者相差很大.而且其具体的实现方式,还 ...

  8. mysql数据库中的自增字段会不会溢出,我用的是int,万一超过这个int的表示范围会怎样

    mysql数据库中的自增字段会不会溢出,我用的是int,万一超过这个int的表示范围会怎样 描述不清违规检举侵权投诉| | 2015-04-23 11:37 princelions | 浏览 596 ...

  9. MySQL数据库的数据类型和索引

    数据库的数据库索引对程序员来说是透明的,意味着数据库建立索引之前和之后,你的SQL语句都可以正常运行,索引的运用只是数据库引擎工作时候的优化手段.但是,这不是意味着数据库索引仅仅是数据库设计和运维者的 ...

最新文章

  1. OpenCV——使用ROI进行图像切割
  2. 四图,读懂 BIO、NIO、AIO、多路复用 IO 的区别
  3. Webkit 最新 Javascript 引擎领先 Chrome
  4. ei指什么_SCI、EI、SSCI和ISTP的区别!
  5. 论如何优雅的处理回文串 - 回文自动机详解
  6. Asp.Net Core中的静态文件-12
  7. mvc如何嵌套第三方页面_长文观点丨为什么我不再使用MVC框架?
  8. 如何在工作组环境win 7远程管理Hyper-v server R2 SP1配置(三)
  9. oracle树状排序,Oracle树状结构查询
  10. 何波: 程序化交易系统构建与风险控制
  11. bootstrapinput传参数_bootstrap-fileinput组件在上传时传递额外参数
  12. c++MFC 截取字符串
  13. 计算机word制作成绩单,如何用word批量制作学生成绩单?
  14. Python2.爬虫--单词查询程序
  15. YAH2460型圆振动筛设计
  16. 如何让使用小博通蓝牙BK3432的鲁哇客智能挪车号码牌,一节钮扣电池工作一年
  17. RTK ST5113-53 3kN 220VAC
  18. 【技术干货】跨境茶话会第4期丨响应式编程的应用
  19. 深度学习推荐系统_深度推荐系统
  20. 一分钟了解“英语表示区分”

热门文章

  1. [转载] Python-Strings
  2. java的equals方法_Java Date equals()方法与示例
  3. python重载模块_Python 3.0中重载模块
  4. cisc 和 risc_RISC和CISC | 电脑组织
  5. c# datetime._C#| 带示例的DateTime.DayOfWeek属性
  6. duration java_Java Duration类| toHours()方法与示例
  7. matlab拔河比赛_拔河比赛
  8. Redis使用不当导致应用卡死
  9. 九、PyQt5 QLineEdit输入的子网字符串校验QRegExp
  10. 不同网段通过静态路由实现互通,华为S5700交换机开启SSH远程指定IP登陆配置(强烈推荐)