首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

varchar(20)和varchar(255)的区别,数据库表字段长度设计学习

学习原因 在开发当中,经常看见有些字段长度是varchar(20)或者varchar(32),但是在自己建表的时候,navicat基本上都是默认的varchar(255)的长度。...长度限制和字段选择 查阅了资料后,发现了一些关于数据库的长度限制及表设计的相关资料 相关资料: 各个数据库表名和字段长度限制 MySQL中各种数据类型的长度及在开发中如何选择 MySql数据库表字段命名及设计规范...总的来说就是数据库表名和字段长度是有一个限制的,不是越大就好,在设计创建表字段时也要考虑下字段长度问题,根据一些实际情况选择表当中的字段类型和手动设置一下字段长度,可以对数据的维护,查询带来效率和性能上的提升...额外的发现 在测试当中还有一个些的发现:表字段的类型其实是有长度限制,int类型最大为255等等。 一个表,所有字段长度加起来不能超过65535字节,是字节不是字符 。...---- 标题:varchar(20)和varchar(255)的区别,数据库表字段长度设计学习 作者:海加尔金鹰 地址:https://www.hjljy.cn/articles/2019/05

4.3K20
您找到你想要的搜索结果了吗?
是的
没有找到

mysql数据库double类型_timestamp是什么数据类型

decimal(m,d) 参数m<65 是总个数,d<30且 d 4、字符串(char,varchar,_text) MySQL数据类型 含义 char(n) 固定长度,最多255个字符 varchar...(n) 固定长度,最多65535个字符 tinytext 可变长度,最多255个字符 text 可变长度,最多65535个字符 mediumtext 可变长度,最多2的24次方-1个字符 longtext...可变长度,最多2的32次方-1个字符 char和varchar: 1.char(n) 若存入字符小于n,则以空格补于其后,查询之时再将空格去掉。...2.char(n) 固定长度,char(4)不管是存入几个字符,都将占用4个字节,varchar是存入的实际字符+1个字节(n255),所以varchar(4),存入3个字符将占用...varchar和text: 1.varchar可指定n,text不能指定,内部存储varchar是存入的实际字符+1个字节(n255),text是实际字符+2个字节。

2.5K20

MySQL 数据类型

它可以用来表示某个 字段(列) 的数据内容格式是数字(例123)还是字符(例"一二三") ,可以控制字段的字符长度和硬盘占用空间; MySQL常用数据类型:[数值]、[日期时间]和[字符串]类型。...---- 二、字符串 MySQL数据类型 含义 char(n) 固定长度最多255个字符 varchar(n) 可变长度最多65535个字符 tinytext 短文本字符串最多255个字符 text 长文本数据最多...所以char类型存储的字符串末尾空格将被删除 2. char(n) 固定长度,char(4)不管是存入几个字符,都将占用4个字节,varchar是存入的实际字符+1个字节(n255),text是实际字符+2个字节。...timestamp,其他字段内容修改的时候,这个字段里的时间数据会自动刷新为当前时间,所以这个数据类型的字段可以存放这条记录最后被修改的时间。

1.8K20

MySQL长文本字段的选取

以下内容就为探究这个问题: .先将content字段设为varchar(255),则此字段只能最多存储255个字符 package main import "fmt" func main(...将生成的255位的str,写入content字段,成功保存....(变长字段额外使用1或2个字节来记录实际数据长度、以及是否为NULL标识位,如果数据表只有一个varchar字段且该字段DEFAULT NULL,那么该varchar字段的最大长度为65532个字节,...即65535-2-1=65532 byte) 字符集为utf-8时,则最多存 65532/3=21844 个字符, 尝试将content自动改为varchar(21844),报错如下: ERROR...>在在utf-8下, 且只有这一个字段,可成功设置为varchar(21844)情况下,经实际亲测,可以容纳21844个字符,超出部分将会被舍弃. ---- 即一般情况下,如果长度小于2万,可用varchar

25660

mysql char与varchar类型的区别

,再加上一个用来记录其长度的字节,当长度小于255时,长度记录位占一个字节,大于时,占用两个字节 最大长度是多少?...char 的最大长度255 个字符(注意 不是字节) varchar 的最大长度是 65535 个字节(注意 不是字符) 定义字段时,char(n) 或 varchar(n) 中的 n 是指字符...当使用utf8编码时,一个字符占3个字节 因为char是定义字符,所以可以定义 char(255),而不能定义 varchar(65535),因为varchar的最大长度是65535个字节,那么最大长度不能超过...21845个字符,mysql utf8编码下 varchar的最大长度实测为21589 适用场景 char 不需计算,占空间 varchar 需计算,省空间 char 适应于长度短、长度相对固定的字段,...例如邮编、UUID,还有频繁改变内容的列,因为省去了char不需要频繁计算内容长度

1.8K50

varchar有最大长度限制吗

如果大于 10,在严格模式(strict sql mode)下就会报错,在非严格模式下就会对内容做自动截取操作。...另外 char 也是有最大长度限制的,最大长度255, 即 char 类型最多只能保存 255 个字符,char(256) 这都是错误的写法,可以看下面的例子。...##创建一个表,同时声明address字段长度为256会报错,最大为255 mysql> create table test2 ( address char(256) ); ERROR 1074 (42000...最后再看一个综合例子,我们创建一个表,采用 UTF8 字符集,添加两个非空字段,分别为 char 和 varchar 类型,char 类型长度给定为 255。...那么 varchar 类型字段的最大字节数应该就是, 65535 (行最大字节数) - 255*3 (一个字符最多占 3 个字节) = 64770, 然后再减去 2 个长度前缀字节, 64770 -

13.4K21

小白学习MySQL - 变通创建索引的案例一则

我们知道,MySQL和Oracle在索引上最大的一个区别,就是索引存在长度的限制。如果是超长键值,可以支持创建前缀的索引,顾名思义,这个字段的前多少个字符/字节作为索引的键值。 P.S. ...《小白学习MySQL - 索引键长度限制的问题》 之所以可以定义一个字段前缀作为键值,存储效率是考虑的一个因素,如果列名的前10个字符通常都是不同的,检索这10个字符创建的索引应该会比检索整个列作为索引的效率更高...如果用的是MyISAM,前缀上限是1000字节,这正是上述创建索引错误提示的内容, https://dev.mysql.com/doc/refman/5.7/en/create-index.html...InnoDB,如果需要建索引,就不能超过767bytes,utf8编码,255*3=765 bytes,是能建索引情况下的最大值,utf8mb4编码,默认字符长度则应该是767除以4向下整,就是191...我们可以测下MyISAM,utf8mb4编码表test1,250长度字段c1,251长度字段c2, CREATE TABLE test1 ( c1 varchar(250), c2 varchar

47520

Mysql 数据类型

字符串(char,varchar,_text) MySQL数据类型 含义 char(n) 固定长度,最多255个字符 varchar(n) 固定长度,最多65535个字符 tinytext...可变长度,最多255个字符 text 可变长度,最多65535个字符 mediumtext 可变长度,最多2的24次方-1个字符 longtext 可变长度,最多2的32次方-1个字符 char和varchar...2.char(n) 固定长度,char(4)不管是存入几个字符,都将占用4个字节,varchar是存入的实际字符+1个字节(n255),所以varchar(4),存入3个字符将占用...varchar和text: 1.varchar可指定n,text不能指定,内部存储varchar是存入的实际字符+1个字节(n255),text是实际字符+2个字节。...timestamp,这个字段里的时间数据会随其他字段修改的时候自动刷新,所以这个数据类型的字段可以存放这条记录最后被修改的时间。

1.5K20

mysql前缀索引 默认长度_如何确定前缀索引的长度

所以我们经常会见到把字段设置成varchar(255)长度的,在utf8字符集下这个是最大不超过767bytes的长度了,但是并不是一定要设置成varchar(255),还是要根据业务设置每个字段长度...解决办法 可以直接去改字段长度,或者说,把索引的字段取消掉一些,但是这样改对表本身是不友好的。 通过限定字段的前n个字符为索引,可以通过衡量实际的业务中数据中的长度具体的值。...UNIQUE KEY `uniq_code` (`nick_name`(20),`account`(20),`city`(20)) 复制代码 表示三个字段前20字符作为唯一索引,这样的话就是长度就不会超出...,这个就是我们说的前缀索引 修改单个索引的最大长度 修改索引限制长度需要在my.ini配置文件中添加以下内容,并重启: #修改单列索引字节长度为767的限制,单列索引的长度变为3072 innodb_large_prefix...上面我们说到可以通过前缀索引来解决索引长度超出限制的问题,但是我们改如何确定索引字段多长的前缀才合适呢?

3.5K20

MySQL的varchar水真的太深了——InnoDB记录存储结构

有人说,允许存储的最大字节数M × W <= 255,即允许存储的最大字符 <= ⌊255 / 4⌋ = 63个时,varchar占用的真实字节数L仅分配1个字节就能表示。这个结论正确吗?  ...InnoDB在读记录的变长字段长度列表时先查看表结构,如果某个变长字段允许存储的最大字节数不大于255时,只用1个字节来表示真实数据占用的字节。   ...第一条记录的变长字段长度列表部分占用3字节空间,因为有c1、c2、c4列,且内容都很少,每列真实占用字节数用1个字节可以表示,加起来就是3个字节,第二条记录变长字段长度列表部分占用2字节。   ...所以,如果有n个字段可以为NULL,那么NULL值列表就需要n位,即⌈n/8⌉字节(向上整)。...如果字段的最大可能长度不超过255字节,那么这个长度值会占用1个字节;如果字段的最大可能长度超过255字节,那么长度值可能会占用1个字节(如果实际长度不超过127字节)或2个字节(如果实际长度超过127

1.5K40

mysql成绩用什么类型_数据库里面的数据类型都有哪些

2、浮点型(float和double) 设一个字段定义为float(5,3),如果插入一个123.45678,实际数据库里存的是123.457,但总个数还以实际为准,即6位。...2.char(n) 固定长度,char(4)不管是存入几个字符,都将占用4个字节,varchar是存入的实际字符+1个字节(n255),所以varchar(4),存入3个字符将占用...varchar和text: 1.varchar可指定n,text不能指定,内部存储varchar是存入的实际字符+1个字节(n255),text是实际字符+2个字节。...6.日期时间类型 若定义一个字段为timestamp,这个字段里的时间数据会随其他字段修改的时候自动刷新,所以这个数据类型的字段可以存放这条记录最后被修改的时间。...如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

2.4K20

Mysql资料 数据类型(上)

int(m)里的m是表示SELECT查询结果集中的显示宽度 浮点型 设一个字段定义为float(6,3),如果插入一个123.45678,实际数据库里存的是123.457,但总个数还以实际为准,即6...2.char(n) 固定长度,char(4)不管是存入几个字符,都将占用4个字节,varchar是存入的实际字符+1个字节(n255),所以varchar(4),存入3个字符将占用...varchar和text: varchar可指定n,text不能指定,内部存储varchar是存入的实际字符+1个字节(n255),text是实际字符+2个字节。...3.varchar可直接创建索引,text创建索引要指定前多少个字符。varchar查询速度快于text,在都创建索引的情况下,text的索引似乎不起作用。 二进制数据 1....时间日期类型 若定义一个字段为timestamp,这个字段里的时间数据会随其他字段修改的时候自动刷新,所以这个数据类型的字段可以存放这条记录最后被修改的时间。 二.长度和范围

1.2K20

【Mysql】varchar类型

1.varchar类型 (1)varchar (N):中的N指的是字符的长度,即:该字段最多能存储多少个字符(characters),不是字节数。...65535 = 所有字段长度 + 变长字符的长度标识 + NULL标识位 变长字符的长度标识:用1到2个字节表示实际长度长度 >255 时,需要2个字节; <255 时,需要1个字节) NULL标识位...一张表中存在N个varchar字段,那么需要(N+7)/8 (整)bytes存储所有的NULL标识位。...详情见例子 2.varchar 长度的编编限制: 字符类型若为gbk,每个字符最多占2个字节,最大长度不能超过32766; 字符类型若为utf8,每个字符最多占3个字节,最大长度不能超过21845。...字符类型若为utf8mb4,每个字符最多占4个字节,最大长度不能超过16283。 若定义的时候超过上述限制,则varchar字段会被强行转为text类型,并产生warning。

2K30

MySQL数据库中的5种数据类型简介

MySQL数据库中的5种数据类型是:字符型,文本型,数值型,逻辑型与日期型,以下就是文章的详细内容介绍,希望在你今后的学习中会有所帮助。...他们都是用来储存字符串长度小于255的字符。 假如你向一个长度为四十个字符的VARCHAR型字段中输入数据Bill Gates。...当你以后从这个字段中取出此数据时,你取出的数据其长度为十个字符——字符串Bill Gates的长度。...现在假如你把字符串输入一个长度为四十个字符的CHAR型字段中,那么当你取出数据时,所取出的数据长度将是四十个字符。字符串的后面会被附加多余的空格。...一个NUMERIC型字段可以存储从-1038到1038范围内的。NUMERIC型数据还使你能表示有小数部分的。例如,你可以在NUMERIC型字段中存储小数3.14。

1.7K20

MySQL基础数据类型

char类型:定长,简单粗暴,浪费空间,存取速度快 字符长度范围:0-255(一个中文是一个字符,是utf8编码的3个字节) 存储: 存储char类型的值时,会往右填充空格来满足长度...例如:指定长度为10,存>10个字符则报错(严格模式下),存<10个字符则用空格填充直到凑够10个字符存储 检索: 在检索或者说查询时,查出的结果会自动删除尾部的空格...:     length(字段):查看该字段数据的字节长度     char_length(字段):查看该字段数据的字符长度 创建一个t1表,包含一个char类型的字段 create table t1(...,5个5个的存,三个人名就会类似这种存储:sb ssb1 ssbb2,中间是空格补全,数据的时候5个5个的,简单粗暴速度快       缺点:貌似浪费空间,并且我们将来存储的数据的长度可能会参差不齐...当存储的字符串长度小 于 255 字节时,其需要 1 字节的空间,当大于 255 字节时,需要 2 字节的空间。

5K10

Java进阶笔记——MySql中的varchar类型

都可以存放20个,最大大小是65532字节 ;varchar(20)在Mysql4中最大也不过是20个字节,但是Mysql5根据编码不同,存储大小也不同,具体有以下规则: a) 存储限制 varchar 字段是将实际内容单独存储在聚簇索引之外...,内容开头用1到2个字节表示实际长度长度超过255时需要2个字节),因此最大长度不能超过65535。...b) 编码长度限制 字符类型若为gbk,每个字符最多占2个字节,最大长度不能超过32766; 字符类型若为utf8,每个字符最多占3个字节,最大长度不能超过21845。...VARCHAR值保存时只保存需要的字符,另加一个字节来记录长度(如果列声明的长度超过255,则使用两个字节)。VARCHAR值保存时不进行填充。当值保存和检索时尾部的空格仍保留,符合标准SQL。...如果一个字段可能的值是不固定长度的,我们只知道它不可能超过10个字符,把它定义为 VARCHAR(10)是最合算的。VARCHAR类型的实际长度是它的值的实际长度+1。为什么"+1"呢?

2.2K30

扫码

添加站长 进交流群

领取专属 10元无门槛券

手把手带您无忧上云

扫码加入开发者社群

相关资讯

热门标签

活动推荐

    运营活动

    活动名称
    广告关闭
    领券