今天在设计系统字段的时候, 发现自己对varchar还不够了解.我设了一个字段.类型为VARCHER,然后我就往里面测试性了写了东西.发现没有多少就满了.我觉得奇怪,5.5版本以上的MYSQL不是有65535的长度吗,为什么只有这么一点点?后来才发现,原来VARCHER的默认长度还是255,如果你想它更长,就得指定.还有,你不能指定它为65535,或是65534,这样是会错的.原因如下: 1.限制规则 字段的限制在字段定义的时候有以下规则: a)                  存储限制 va…
MySQL VARCHAR字段最大长度到底是多少   varchar(n),n表示什么? MySQL5.0.3之前varchar(n)这里的n表示字节数 MySQL5.0.3之后varchar(n)这里的n表示字符数,比如varchar(200),不管是英文还是中文都可以存放200个 n最大可以是多少 MySQL行长度 MySQL要求一个行定义长度不能超过65535个字节,不包括text.blob等大字段类型,varchar长度受此长度限制,和其他非大字段加起来不能超过65535个字节. 超过以…
明明维护了一个1k的最小堆,可是输出到MySQL里却只有九百多行数据. 查log,发现这么一段内容: stderr logs com.mysql.jdbc.MysqlDataTruncation: Data truncation: Data too long for column 'reqs' at row 1 at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3595) at com.mysql.jdbc.MysqlIO.check…
在mysql中alter命令可以修改字段类型,长度,名称或一些其它的参数,下面我来给大家介绍alter函数修改字段长度与类型的两个命令,希望文章来给各位带来帮助.     mysql 修改字段长度 alter table news  modify column title varchar(130); alter table 表名 modify column 字段名 类型; 如:news 表里的title  字段 原来长度是 100个字符,现长度要改成130个字符 alter table news…
将actor表的first_name的varchar(45) ,修改为varchar(60) [root@vhost1 ~]# mysql -uroot -p -S /mysqldata/tmp/mysql33061.sock Enter password: Welcome to the MySQL monitor. Commands end with ; or \g.Your MySQL connection id is 12Server version: 5.6.37 MySQL Commu…
创建数据库,并创建一张表mytb进行测试 ************************************************************************************************************************************************************************************** 附建表语句: 备注:我使用的mysql版本是5.6…
数据库版本:5.7.22 使用DDL语句:alter table 表名 modify 字段名 字符类型(长度) 例如: alter table db2.admin modify password );…
MySQL还支持选择在该类型关键字后面的括号内指定整数值的显示宽度(例如,INT(4)). 该可选显示宽度规定用于显示宽度小于指定的列宽度的值时从左侧填满宽度.(类似使用LPAD函数效果) 在INT(M) 中, M指示最大显示宽度.最大有效显示宽度是255. 显示宽度与存储大小或类型包含的值的范围无关.如果为一个数值列指定ZEROFILL,MySQL自动为该列添加UNSIGNED属性. 显示宽度并不限制可以在列内保存的值的范围,也不限制超过列的指定宽度的值的显示. 当结合可选扩展属性ZEROFI…
一.varchar和char的区别: 区别一:定长和变长 char表示定长.长度固定,varchanr表示变长,即长度可变. 即char类型是规定多少字长则必须存储多少字长,超过的长度的字段则只能截取出对应的长度进行存储,相对于要求字长长度不够的字段则用空格补齐. 而varchar类型则是只要在规定字长之内,有多少存多少,无需补齐:超出的部分和char一样,舍去即可.(由perfix来实现) 区别二:存储容量不同 对于char类型来说,最多只能存放的字符个数为255,和编码无关. varchar…
一.问题描述 在往数据库写入数据的时候,报错: '字段名' doesn't have a default value 本来这个错误是经常见到的,无非就是字段没有设置默认值造成的.奇怪的是,我这边报错的字段,其类型是text类型.众所周知的,text类型是不能有默认值的.如此一来就有了矛盾,text类型的字段明明不能有默认值,那么为什么还会给我报错,提示缺少默认值呢? 二.问题所在 1.查看字段类型 通过phpmyadmin查看数据表的字段结构,发现text字段在创建的时候,语法为: //创建字段…
select count(*) '个数',mobile '手机号',`name` '用户名' from users group by mobile having(count(*) > 1); ================================= having的用法 having字句可以让我们筛选成组后的各种数据,where字句在聚合前先筛选记录,也就是说作用在group by和having字句前.而 having子句在聚合后对组记录进行筛选. SQL实例: 一.显示每个地区的总人口…
为了搞清楚MySQL对于可变长度字段值修改时,如何高效操作数据文件的机制.之前一直模糊不清,网上也搜不到现成的答案.经过多方资料搜集整理.写出此文供大家一起参阅.由于涉及众多非常底层的知识,我假设读者已经对操作系统和磁盘存取有一定的基础知识.文中如有疏漏,还请大佬指正. 为了探究这个问题,我们要先来回顾一下我之前的一篇文章<文件随机或顺序读写原理深入浅出>讲的文件存储的底层原理知识.如下图所示.一个文件的数据是以块为单位存储到物理磁盘的随机位置,这是由操作系统负责管理的,用户程序无权决定.所以…
关于varchar字段: 在version4之前,按字节: version5之后,按字符. 现在普遍都按字符算:无论中文英文,都算一个字符 既: varchar(10) == '123456789a' == '123456789汗'…
数据库建表  字符串字段类型的选择 char与varchar的区别: char      长度固定,char(M)类型的数据列里,每个值都占用M个字节,如果某个长度小于M,MySQL就会在它的右边用空格字符补足.(在检索操作中那些填补出来的空格字符将 被去掉) varchar  长度可变,在varchar(M)类型的数据列里,每个值只占用刚好够用的字节再加上一个用来记录其长度的字节(即总长度为L+1字节). 比如char(255)和varchar(255)存储字符串"hello world&qu…
看完这篇文章,你能搞清楚以下问题: 1.varchar(100)和varchar(10)的区别在哪里? 2.varchar能存多少汉字.数字? 3.varchar的最大长度是多少呢? 4.字符.字节.位,之间的关系? 5.mysql字段类型存储需要多少字节? 接下来请仔细看,整理不易啊. 1.varchar(100)和varchar(10)的区别在哪里? 一般初学会认为,二者占用的空间是一样的.比如说我存储5个char,二者都是实际占用了5个char了[不准确的想法:varchar在实际存储的时…
一. varchar存储规则: 4.0版本以下,varchar(20),指的是20字节,如果存放UTF8汉字时,只能存6个(每个汉字3字节) 5.0版本以上,varchar(20),指的是20字符,无论存放的是数字.字母还是UTF8汉字(每个汉字3字节),都可以存放20个,最大大小是65532字节 Mysql4中最大也不过是20个字节,但是Mysql5根据编码不同,存储大小也不同. 二. varchar和char 的区别: char是一种固定长度的类型,varchar则是一种可变长度的类型,它们…
MySQL 数据库的varchar类型在4.1以下的版本中的最大长度限制为255,其数据范围可以是0~255或1~255(根据不同版本数据库来定).在 MySQL5.0以上的版本中,varchar数据类型的长度支持到了65535,也就是说可以存放65532个字节的数据,起始位和结束位占去了3个字 节,也就是说,在4.1或以下版本中需要使用固定的TEXT或BLOB格式存放的数据可以使用可变长的varchar来存放,这样就能有效的减少数据库文 件的大小. MySQL 数据库的varchar类型在4.…
有这样一个需求,在Mysql数据库字符串字段(权限)中,有范围在 1 到 N 之间代表不同权限的值,分别被','分开,现在要取出具有某权限的所有成员列表. 创建表: 1 CREATE TABLE users(id int(6) NOT NULL AUTO_INCREMENT,PRIMARY KEY (id),name VARCHAR(20) NOT NULL,limits VARCHAR(50) NOT NULL); 添加数据: 1 INSERT INTO users(name, limits)…
本文转自Ruby china, 原文地址:https://ruby-china.org/topics/24920 一.关于UTF-8 UTF-8 Unicode Transformation Format-8bit.是用以解决国际上字符的一种多字节编码. 它对英文使用8位(即一个字节) ,中文使用24位(三个字节)来编码. UTF-8包含全世界所有国家需要用到的字符,是国际编码,通用性强. UTF-8编码的文字可以在各国支持UTF8字符集额的浏览器上显示.如果是UTF8编码,则在外国人的英文IE…
1.mysql varchar类型变化:mysql 5.0.3 之前: 0--255字节 varchar(20)中的20表示字节数,如果存放urf8编码的话只能放6个汉字. MySQL 5.0.3 之后: 0--65535字节 varchar(20)表示字符数,不管什么编码,既汉字也能放20个.但最多占65532字节(两个字节存放长度,小于255字节用1个字节存放长度) 1.存储限制: varchar 字段是将实际内容单独存储在聚簇索引之外,内容开头用1到2个字节表示实际长度(长度超过255时需…
int(11)最大长度是多少,MySQL中varchar最大长度是多少? int(11)最大长度是多少? 在SQL语句中int代表你要创建字段的类型,int代表整型,11代表字段的长度. 这个11代表显示宽度,整数列的显示宽度与mysql需要用多少个字符来显示该列数值,与该整数需要的存储空间的大小都没有关系,比如,不管设定了显示宽度是多少个字符,bigint都要占用8个字节. int是整型,(11)是指显示字符的长度,但要加参数的,最大为255,比如它是记录行数的id,插入10笔资料,它就显示0…
mysql建表长度的限制 在mysql建表时,出现以下报错信息: 错误一:行大小过大,所使用的表这种类型的最大的行大小,不算BLOB类型,是65535.(这是我翻译的)    原因是MySQL在建表的时候有个限制:MySQL要求一个行的定义长度不能超过65535.具体的原因可以看: http://dev.mysql.com/doc/refman/5.1/en/silent-column-changes.html 单个字段如果大于65535,则转换为TEXT. 单行最大限制为65535,这里不包括…
一.背景 我们的MySQL数据库有一张10个Text的字段的表,还包括几个char和varchar字段,由于业务需求,我在表中加多一个Text字段的时候,插入记录的出现了下面的错误: Row size too large. The maximum row size for the used table type, not counting BLOBs, is 8126. You have to change some columns to TEXT or BLOBs (图1:错误信息) 二.过程…
http://www.cnblogs.com/kxdblog/p/4042331.html https://wenku.baidu.com/view/97524e0f844769eae009ed80.html http://blog.csdn.net/lwei_998/article/details/7728173 char是定长的,varchar是变长的.varchar2应该是varchar的升级,似乎只有ORACLE才有,这里不作讨论. char定长存储,速度快,但是存在一定的空间浪费,适用…
一. varchar存储规则: 4.0版本以下,varchar(20),指的是20字节,如果存放UTF8汉字时,只能存6个(每个汉字3字节) 5.0版本以上,varchar(20),指的是20字符,无论存放的是数字.字母还是UTF8汉字(每个汉字3字节),都可以存放20个,最大大小是65532字节    二. varchar和char 的区别: char是一种固定长度的类型,varchar则是一种可变长度的类型,它们的区别是: char(M)类型的数据列里,每个值都占用M个字节,如果某个长度小于…
MySQL中varchar与char区别(转) MySQL中varchar最大长度是多少? 一. varchar存储规则: 4.0版本以下,varchar(20),指的是20字节,如果存放UTF8汉字时,只能存6个(每个汉字3字节) 5.0版本以上,varchar(20),指的是20字符,无论存放的是数字.字母还是UTF8汉字(每个汉字3字节),都可以存放20个,最大大小是65532字节 Mysql4中最大也不过是20个字节,但是Mysql5根据编码不同,存储大小也不同.  二. varchar…
一.关于UTF-8 UTF-8 Unicode Transformation Format-8bit.是用以解决国际上字符的一种多字节编码. 它对英文使用8位(即一个字节) ,中文使用24位(三个字节)来编码. UTF-8包含全世界所有国家需要用到的字符,是国际编码,通用性强. UTF-8编码的文字可以在各国支持UTF8字符集额的浏览器上显示.如果是UTF8编码,则在外国人的英文IE也能显示中文,他们无需下载IE的中文语言支持包. 二.关于GBK GBK 是国家标准GB2312基础上扩容后兼容G…
From: http://blog.csdn.net/longyulu/article/details/7863737 http://dinglin.iteye.com/blog/914276 http://www.cnblogs.com/fakis/archive/2011/03/07/1976532.html 如果某一项中设置的是varchar(50) 那么对英文当然是50 那么对中文呢 utf-8的中文占3个字节 那么,这个varchar(50)是不是只能存16个汉字了?   不是这样的,…
参考链接:MySQL的varchar长度问题 今天用mysql做一个demo,创建了个表: -- 借款表 CREATE TABLE jk ( id ) NOT NULL auto_increment, -- 自增ID amount int not null, -- 借款本金 remark ), -- 备注/摘要 PRIMARY KEY (`id`) ) ; ,'付张三借款'); ,'付王小五借款'); ,'付宇文小四借款'); ,'付张三12ab借款'); 由于这个表没有人的姓名做主键(暂不考虑…
mysql添加一个字段(在指定的一个字段后面) 举个栗子:alter table inquiry add error_code varchar(3) after add_time; 说明:alter table + 表名 + add + 要添加的字段 字段类型 +  after  + 要跟随的字段名 alter table t_adviser_info add hold int COMMENT '0持有,1未持有' after stockname alter table t_adviser_in…