MySQL中整型和字符串类型指定长度的含义

引入:

  int(5)和char(5)或者varchar(5)中的数字指的是什么意思?是字节数,还是字符长度?为什么在整型中指定了int(5)却可以输入123456?

  答案是后者,不管是整型还是字符串类型,后面跟的数字都是字符长度,即字符的个数,而且需要强调说明的是:在整型后面指定的数字指的是最小显示长度,即要显示的value值的最小字符个数,若实际的value值的字符个数少于之前字段后面设置的个数,则会用0在value前面进行填充(同时要为字段加上约束条件 zerofill,使用select才能查看到真正的结果);若value值的字符个数大于字段后面设置的个数,则也会正常显示,因为指定的数值是显示长度,不是存储长度,整型类型的默认存储长度为11个字符,满足绝大多数环境下的使用,因此int后面不需要指定数值,即使指定了也没有意义。

  用一句话说明int类型的使用,指定的长度只是显示长度,不是存储长度,存储长度默认为11个字符,因此无需指定int类型的长度。

  对于字符串类型后面的数字指的是字符的存储长度,即存储字符的个数不能超过这个限制,否则无法插入。

时间: 2024-12-09 21:22:47

MySQL中整型和字符串类型指定长度的含义的相关文章

MySQL中整各种int类型的范围和存储大小

MySQL中中的整数类型int主要有如下几种: tinyint 的范围是-128~127: int的范围是-2^31 (-2,147,483,648) 到 2^31 – 1 (2,147,483,647) 的整型数据(所有数字),存储大小为4个字节: bigint的范围是 -2^63 (-9223372036854775808) 到 2^63-1 (9223372036854775807) 的整型数据(所有数字).存储大小为 8 个字节: smallint unsigned的范围是 –2^15(

java中基本类型和字符串类型的转换

基本类型转换为字符串有三种方法: 1.使用包装类的toString()方法 2.使用String类的valueOf()方法 3.用一个空字符串加上基本类型,得到的就是基本类型数据对应的字符串 int c=10; String str1=Integer.toString(c);  //方法一 String str1=String.valueOf(c);   //方法二 String Str=c + " " ;   //方法三 字符串转换成基本类型有两种方法: 1.调用包装类的parase

整型和字符串相互转换

我们写程序的时候经常会遇到整型和字符串相互转换的问题,这里要用到几个函数,itoa(),atoi(),sprintf()下面来介绍下这几个函数的具体用法! itoa 功 能:把一整数转换为字符串 用 法:char *itoa(int value, char *string, int radix); 详细解释:itoa是英文integer to array(将int整型数转化为一个字符串,并将值保存在数组string中)的缩写. 参数: value: 待转化的整数. radix: 是基数的意思,即

着重基础之—MySql Blob类型和Text类型

着重基础之—MySql Blob类型和Text类型—二进制存储 在经历了几个Java项目后,遇到了一些问题,在解决问题中体会到基础需要不断的回顾与巩固. 最近做的项目中,提供给接口调用方数据同步接口,传输的数据格式是Json串.由于json串的结构层级较多,数据量也不少.在设计数据库的时候,选择了Blob类型做为字段类型.一切的一切就打这开始,同步服务正常运作,但是问题慢慢的暴露了出来,客户端在暂时我所提供的数据的时候,中文总是显示乱码,乱码,乱码,一直乱码. 问题的分析路径 1.查看了数据库连

MySQL中日期和时间类型

1 日期类型 MySql中关于日期的类型有Date/Datetime/Timestamp三种类型. 日期赋值时,允许"不严格"语法:任何标点符都可以用做日期部分或时间部分之间的间割符.例如,'98-12-31 11:30:45'.'98.12.31 11+30+45'.'98/12/31 11*30*45'和'[email protected]@31 11^30^45'是等价的,对于不合法的将会转换为:0000-00-00 00:00:00 1.1 Date格式 此类型的字段,存储数据

Java 中基本类型和字符串之间的转换

Java 中基本类型和字符串之间的转换 在程序开发中,我们经常需要在基本数据类型和字符串之间进行转换. 其中,基本类型转换为字符串有三种方法: 1. 使用包装类的 toString() 方法 2. 使用String类的 valueOf() 方法 3. 用一个空字符串加上基本类型,得到的就是基本类型数据对应的字符串 再来看,将字符串转换成基本类型有两种方法: 1. 调用包装类的 parseXxx 静态方法 2. 调用包装类的 valueOf() 方法转换为基本类型的包装类,会自动拆箱 PS:其他基

mysql中timestamp,datetime,int类型的区别与优劣

mysql中timestamp,datetime,int类型的区别与优劣 int 1. 占用4个字节 2. 建立索引之后,查询速度快 3. 条件范围搜索可以使用使用between 4. 不能使用mysql提供的时间函数 结论:适合需要进行大量时间范围查询的数据表 datetime 1. 占用8个字节 2. 允许为空值,可以自定义值,系统不会自动修改其值. 3. 实际格式储存(Just stores what you have stored and retrieves the same thing

js如何截取字符串右边指定长度的字符

js如何截取字符串右边指定长度的字符:通常情况下都从字符串的左边开始截取字符串,下面介绍一下如何从字符串的右边截取字符串.代码如下: String.prototype.right=function(length_) { var _from=this.length-length_; if(_from<0) _from=0; return this.substring(this.length - length_,this.length); } var str="antzone"; c

MYSQL中日期与字符串间的相互转换

一.字符串转日期 下面将讲述如何在MySQL中把一个字符串转换成日期: 背景:rq字段信息为:20100901 1.无需转换的: SELECT * FROM tairlist_day WHERE rq>'2010-07-31' AND rq<'2010-09-01' 2.使用:DATE_FORMAT SELECT * FROM tairlist_day WHERE DATE_FORMAT( rq, '%Y-%m-%d')>'2010-08-01' AND DATE_FORMAT( rq,