mysql数据库中数据类型的长度
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数据库中数据类型的长度相关推荐
- mysql 数据库中varchar的存储单位是什么
一.先了解字节与字符 字节(Byte)是计量单位,表示数据量多少,是计算机信息技术用于计量存储容量的一种计量单位,通常情况下一字节等于八位. 字符(Character)计算机中使用的字母.数字.字和符 ...
- mysql数据库的数据类型转换_MySQL 和Server 2000 数据库中数据类型的转换
问题阐述 在某些特殊的时候,可能要将MySQL 数据库转换为SQL Server 2000 数据库,这时问题也就随之而来.例如,在MySQL 数据库中,创建的字段使用varchar 类型,该类型的数据 ...
- MySQL中数据类型的长度问题解析
MySQL中数据类型的长度问题总结 1):int类型,对吧,经常像保存个时间戳啊.id啊.数量啊.排序啊都会用到 提问:INT(11)是什么意思?最大保存十一位数么? 回答:不是楞个回事,听我给你摆, ...
- mysql中数据类型的长度
一.varchar(n).char(n)中的n的含义 1)varchar(m),char(n)里面的m或n代表的是字符的个数. 打开mysql手册,看到这样一句话 The CHAR and VARCH ...
- mysql数据库BigInt数据类型和实体对象中BigInteger,Long类型的冲突
mysql数据库BigInt数据类型和实体对象中BigInteger,Long类型的冲突 实体Bean public class Broke {/*** brokeid */BigInteger br ...
- Java中Long型数据类型对应MySQL数据库中哪种类型?
Long型id数据对应MySQL数据库中 bigint 数据类型: System.out.println(1==1L); //tureSystem.out.println(1L); //1System ...
- mysql数据库中nchar_MySQL数据库中CHAR与VARCHAR之争
在MySQL数据库中,用的最多的字符型数据类型就是Varchar和Char..这两种数据类型虽然都是用来存放字符型数据,但是无论从结构还是从数 据的保存方式来看,两者相差很大.而且其具体的实现方式,还 ...
- mysql数据库中的自增字段会不会溢出,我用的是int,万一超过这个int的表示范围会怎样
mysql数据库中的自增字段会不会溢出,我用的是int,万一超过这个int的表示范围会怎样 描述不清违规检举侵权投诉| | 2015-04-23 11:37 princelions | 浏览 596 ...
- MySQL数据库的数据类型和索引
数据库的数据库索引对程序员来说是透明的,意味着数据库建立索引之前和之后,你的SQL语句都可以正常运行,索引的运用只是数据库引擎工作时候的优化手段.但是,这不是意味着数据库索引仅仅是数据库设计和运维者的 ...
最新文章
- OpenCV——使用ROI进行图像切割
- 四图,读懂 BIO、NIO、AIO、多路复用 IO 的区别
- Webkit 最新 Javascript 引擎领先 Chrome
- ei指什么_SCI、EI、SSCI和ISTP的区别!
- 论如何优雅的处理回文串 - 回文自动机详解
- Asp.Net Core中的静态文件-12
- mvc如何嵌套第三方页面_长文观点丨为什么我不再使用MVC框架?
- 如何在工作组环境win 7远程管理Hyper-v server R2 SP1配置(三)
- oracle树状排序,Oracle树状结构查询
- 何波: 程序化交易系统构建与风险控制
- bootstrapinput传参数_bootstrap-fileinput组件在上传时传递额外参数
- c++MFC 截取字符串
- 计算机word制作成绩单,如何用word批量制作学生成绩单?
- Python2.爬虫--单词查询程序
- YAH2460型圆振动筛设计
- 如何让使用小博通蓝牙BK3432的鲁哇客智能挪车号码牌,一节钮扣电池工作一年
- RTK ST5113-53 3kN 220VAC
- 【技术干货】跨境茶话会第4期丨响应式编程的应用
- 深度学习推荐系统_深度推荐系统
- 一分钟了解“英语表示区分”
热门文章
- [转载] Python-Strings
- java的equals方法_Java Date equals()方法与示例
- python重载模块_Python 3.0中重载模块
- cisc 和 risc_RISC和CISC | 电脑组织
- c# datetime._C#| 带示例的DateTime.DayOfWeek属性
- duration java_Java Duration类| toHours()方法与示例
- matlab拔河比赛_拔河比赛
- Redis使用不当导致应用卡死
- 九、PyQt5 QLineEdit输入的子网字符串校验QRegExp
- 不同网段通过静态路由实现互通,华为S5700交换机开启SSH远程指定IP登陆配置(强烈推荐)