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

一文搞懂MySQL表字段类型长度的含义

不知道大家第一眼看标题的时候有没有理解,什么是“字段类型长度”,这里我来解释下,就比如我们在MySQL建表的时候,比如下面这个建表语句:CREATE TABLE `user` ( `id` int(10...,比如int(10)就是该字段是int类型长度为10,这下大家应该能理解什么是MySQL表字段类型长度了吧(其实在后续的讲解中会发现这个并不是长度,而是宽度)那么重点问题来了,每一种类型后面括号里的数字都有什么含义呢...,下面我们来剖析下:首先MySQL表的字段都支持哪些类型?...(3)提供了相关操作JSON类型数据的函数1.3 数据类型说明MySQL的数据类型长度是固定的,而不是由建表时指定的,unsigned表示无符号类型CREATE TABLE `table01` ( `...一个表中所有的VARCHAR字段最大长度是65535个字节,进行排序和创建临时表一类的内存操作时,会使用N的长度申请内存VARCHAR(N),如果N=256则使用两个字节来存储长度

1.2K11
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    CentOS7 安装 PerconaTookit 步骤

    背景 最近正在拓展 MySQL 数据库知识 发现很多提及 "PerconaTookit" 管理工具的建议 会方便对数据库在线状态下的结构调整 在此,先进行安装一番 … 环境 MySQL...版本: mysql 5.7.32 Linux 版本: CentOS7.9 PerconaTookit : 3.0.7 安装步骤 1)....安装第三方依赖包 首先需要安装几个第三方依赖包 yum install -y perl-DBI perl-DBD-MySQL perl-IO-Socket-SSL perl-TermReadKey perl-Digest-MD5...通常在业务时间需要修改大表(如表有500M 以上或者有上千万行数据时)结构的情况下使用, 执行过程可以看到一个进度 首先,要明确下各个参数的含义: 一个参考指令如下(用于修改数据表字段数据类型...还需要添加参数: "--nocheck-replication-filters",即不检查从库 提示 PerconaTookit 操作指令非常多,建议阅读 —— 【官方文档】 推荐文章 —— 【MySQL

    78030

    线上数据删错了,差点被老板开除

    (为了装逼,把自己也坑了,哈哈哈) 线上环境有时候需要通过命令行连接数据库,比如:mysql,你把sql语句复制过来后,在命令行界面执行,由于屏幕滚动太快,这时根本无法确定sql是否都执行成功。...如果先把程序部署好了,还没来得及删除数据库相关表字段。当有insert请求时,由于数据库中该字段是必填的,会报必填字段不能为空的异常。 如果先把数据库中相关表字段删了,程序还没来得及发。...如果把程序部署好了,还没来得及修改数据库中表字段名称。这时所有涉及该字段的增删改查,都会报字段不存在的异常。 如果先把数据库中字段名称改了,程序还没来得及发。...3.修改字段长度 字段长度建议改大,通常情况下,不建议改小。如果一定要改小,要先确认该字段可能会出现的最大长度,避免insert操作时出现字段太长的异常。...此外,建议改大也需要设置一个合理的长度,避免数据库资源浪费。 总结 本文分享了10种减少数据库误操作的方法,并非所有场景都适合你。

    83611

    盘点一下数据库的误操作有哪些后悔药?

    (为了装逼,把自己也坑了,哈哈哈) 线上环境有时候需要通过命令行连接数据库,比如:mysql,你把sql语句复制过来后,在命令行界面执行,由于屏幕滚动太快,这时根本无法确定sql是否都执行成功。...如果先把程序部署好了,还没来得及删除数据库相关表字段。当有insert请求时,由于数据库中该字段是必填的,会报必填字段不能为空的异常。 如果先把数据库中相关表字段删了,程序还没来得及发。...如果把程序部署好了,还没来得及修改数据库中表字段名称。这时所有涉及该字段的增删改查,都会报字段不存在的异常。 如果先把数据库中字段名称改了,程序还没来得及发。...3.修改字段长度 字段长度建议改大,通常情况下,不建议改小。如果一定要改小,要先确认该字段可能会出现的最大长度,避免insert操作时出现字段太长的异常。...此外,建议改大也需要设置一个合理的长度,避免数据库资源浪费。 总结 本文分享了10种减少数据库误操作的方法,并非所有场景都适合你。

    77751

    权限系统表 | 全方位认识 mysql 系统库(一)

    一文中其实已经介绍过mysql 系统库的帮助信息表了。在接下来的系列文章中,我们将全面介绍 mysql 系统库。下面,请跟随我们一起开始mysql 系统库 的学习之旅吧。...5.7版本进行整理 1、user 该表提供查询全局权限信息,该表中的帐号密码信息在认证1阶(关于认证阶段相关的内容我们会在下一期进行介绍)决定着是否允许用户连接,对于通过帐号密码认证阶段的连接,如果同时通过...-------------------------------------------------+----------------------+ 4 rows in set (0.00 sec) 表字段含义...,具体如下: Host, Proxied_host:长度限制 60个字符 User, Proxied_user:长度限制 32个字符 Password:长度限制 41个字符 Db:长度限制 64个字符...Table_name:长度限制 64个字符 Column_name:长度限制 64个字符 Routine_name:长度限制 64个字符 本期内容就介绍到这里,本期内容参考链接如下: https://dev.mysql.com

    94230

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

    所以带着疑问来学习一下数据库表字长度的设计。...长度限制和字段选择 查阅了资料后,发现了一些关于数据库的长度限制及表设计的相关资料 相关资料: 各个数据库表名和字段名长度限制 MySQL中各种数据类型的长度及在开发中如何选择 MySql数据库表字段命名及设计规范...为什么mysql的varchar字符长度会被经常性的设置成255 在仔细阅读上述的相关资料后,算是解决了很多的疑问,也学习到了不少数据库书本上难以学习到的经验。...总的来说就是数据库表名和字段长度是有一个限制的,不是越大就好,在设计创建表字段时也要考虑下字段长度问题,根据一些实际情况选择表当中的字段类型和手动设置一下字段的长度,可以对数据的维护,查询带来效率和性能上的提升...额外的发现 在测试当中还有一个些的发现:表字段的类型其实是有长度限制,int类型最大为255等等。 一个表,所有字段的长度加起来不能超过65535字节,是字节不是字符 。

    4.5K20

    MySQL到底能有多少个字段

    今天技术讨论群里 “一切随遇而安”同学看书时出现一个疑问,一个MySQL的表中到底可以有多少个字段?带着这个疑问,我们展开了探讨,也接着讨论了一个单字段长度的问题。...02 测试表字段数限制 2.1 测试innodb引擎表 因官方文档介绍了innodb表字段限制是1017,因此可以写程序进行模拟。...03 测试字段长度限制 大家都知道的一个知识是在MySQL中一行除了blob及text类的大字段之外,其余字段的长度之和不能超过65535,那么这个是确定的么,因此再次做一次测试。...3.1 测试UTF8字符集 创建一个只有一个字段的表,字段长度为65535 结果居然报错了,提示最大长度只能是21845,也就是65535/3的大小(原因你品一品) /* 测试单字段长度 上限*/...表字段限制 ? 表字长度限制 ? 在此知识给个匆忙的小结,其中原因不懂的可以查看官方文档,也是详细的测试,也可以加群一起讨论。

    1.1K20

    如何从jdbc中获取数据库建表语句信息(表字段名称表字段类型表字段注释信息表字长度等等)

    * 如何从jdbc中获取数据库建表语句信息(表字段名称/表字段类型/表字段注释信息/表字长度等等) * 1,表字段名称 * 2,表字段类型 * 3,表字段注释信息 这里介绍3种方式,如下:.../表字段类型/表字段注释信息/表字长度等等) * 1,表字段名称 * 2,表字段类型 * 3,表字段注释信息 */ @Slf4j public class How2ObtainFieldInfoFromJdbc...resultSetMetaData.getColumnTypeName(i + 1)); log.info("字段名称:{}", resultSetMetaData.getColumnName(i + 1)); log.info("字段长度...// 数据源配置 DataSourceConfig dataSourceConfig = new DataSourceConfig(); dataSourceConfig.setUrl("jdbc:mysql...serverTimezone=GMT%2b8&Unicode=true&characterEncoding=utf8"); dataSourceConfig.setDriverName("com.mysql.jdbc.Driver

    4.7K10

    MySQL SQL语句优化的10条建议

    另外字段尽可能用not null 3、当然无可避免某些字段会用到text,varchar等字符类型,最好将text艾的单独出另外一个表出来(用主键关联好) 4、 字段的类型,以及长度,是一个很考究开发者优化功力的一个方面...(在phpmyadmin里可以在查看表时,点击‘Propose table struture’来查看这些建议)如此可以让你的表字段结果趋向完善。...同理,只要一行数据时尽量使用limit 1 6、绝对不要轻易用order by rand(),很可能会导致mysql的灾难 7、每个表都应该设置一个ID主键,最好的是一个INT型,并且设置上自动增加的AUTO_INCREMENT...8、拆分大的DELETE或INSERT语句,因为这两个操作是会锁表的,表一锁住了,别的操作都进不来了,就我来说有时候我宁愿用for循环来一个个执行这些操作 9、不要用永久连接mysql_pconnet(...);除非你真的非常肯定你的程序不会发生意外,不然很可能也会导致你的mysql死掉 10、永远别用复杂的mysql语句来显示你的聪明,就我来说看到一次关联了三四个表的语句,只会让人觉得很不靠谱

    1.1K50

    MySQL导入导出数据表容量的一个问题场景

    朋友提了一个MySQL数据导出导入的问题。...问题描述:从源库(兼容MySQL协议的TDSQL,select version()=5.7,test表字符集是utf8,test是个分区表)通过如下指令,导出一份数据,SQL格式的,文件6G, mysqldump...将数据导入目标库(docker下的MySQL 8.0,test表字符集是Utf8mb), mysql -hx.x.x.x -P3306 -uroot -proot test < test.sql 源库test...通过dbeaver看到数据的长度是10G(图形界面),但是前两次导入,发现导入的目标库中test显示长度只有400MB,再导入几次,发现长度是7G,都和源库10G有些不太相同。...可直接使用) 通过show table status指令,源库就是10G,目标库就是7G,说明不是碎片导致的, show table status like 'test'; 至于客户端工具dbeaver显示的长度数据

    19920

    Oracle 与 MySQL 的差异分析(2):数据类型

    Oracle 与 MySQL 的差异分析(2):数据类型 1.1 整数 在Oracle中,一般使用 integer、 int或者 number(N),MySQL 也支持 integer 和 int,但不支持...1.3 字符串 在 Oracle 中,字符串一般用 varchar2(N) 来定义字符串类型,如果是表字段的话,它的最大长度是4000,varchar2 是变长类型,占用的空间由插入的数据决定,还可用...char 的最大长度是255,varchar 的最大长度是 65535,这一点比 Oracle 好,Oracle 表字段的长度超过4000就要用 clob 类型了。...除了 char 和 varchar,MySQL 还支持其他字符串类型: 需要注意 varchar2(N) 在 Oracle 中的 N 表示最大字节数,而 MySQL 的 varchar(N) 表示最大字符数...MySQL 还支持 year 类型表示年,可以更省空间。MySQL 的时间类型都不支持毫秒。

    2.4K31

    MySQL深入浅出(一):SQL基础、数据类型、运算符

    Definition Langnages)语句:数据定义语言,这些语句定义了不同的数据、数据库,表、列、索引等数据库对象。...[first|after col_name];//修改字段排列顺序 alter table table_name drop col_name; //删除表字段 alter table table_name...比指定长度大的值将被截短,而比指定长度小的值将会用空格作填补。 CHAR 类型的一个变体是 VARCHAR 类型。它是一种可变长度的字符串类型,并且也必须带有一个范围指示器。...CHAR 和 VARCHGAR 不同之处在于 MYSQL 数据库处理这个指示器的方式:CHAR 把这个大小视为值的大小,不长度不足的情况下就用空格补足。...而 VARCHAR 类型把它视为最大值并且只使用存储字符串实际需要的长度(增加一个额外字节来存储字符串本身的长度)来存储值。

    74130

    数据库MySQL-varchar与char类型

    记得存储的是字符为单位. 30个字符并不代表是30个字节, 需要根据具体选择的编码格式来进行确定的 列的长度小于255则只是占用一个额外字节用于记录字符串的长度 列的长度大于255则要占用两个额外字节用于纪录字符串长度...varchar最长为65535, 更长的话需要使用text类型 4.2 varchar的适用场景 字符串列的最大长度比平均长度大很多 字符串列很少被更新 使用了多字节字符集存储的字符串 备注: 在MySQL...中更改数据存储类型, 字段长度都会造成锁表....但是对于varchar来说如果是在255字节内任意更改大小不会进行锁表....类型的适用场景 char类型适合存储长度近似的值(例如MD5加密后的字符串, 固定的主键ID) char类型适合存储短字符串(例如: 性别男女) char类型适合存储经常更新的字符串列

    1.1K10
    领券