在windows下,mysql版本:5.6.7rc以下是表和字段的信息:
====================================
Field: vc
Type: varchar(4)
Null: YES
Key:
Default: NULLENGINE=InnoDB DEFAULT CHARSET=utf8
=====================================执行命令:insert into typetest
set vc='一一一一';执行后能成功存储四个汉字“一”;请教各位,既然定义的是4个字节,为何还能输入4个汉字呢?
====================================
Field: vc
Type: varchar(4)
Null: YES
Key:
Default: NULLENGINE=InnoDB DEFAULT CHARSET=utf8
=====================================执行命令:insert into typetest
set vc='一一一一';执行后能成功存储四个汉字“一”;请教各位,既然定义的是4个字节,为何还能输入4个汉字呢?
解决方案 »
- 关于MySql5 不同网段连接速度慢的问题解决
- 加个引号和不加引号我发现区别很多 不明白
- sql有点复杂,而且数据量很大大概1000w不知道怎么能写出效率比较高的sql呢?
- 请问什么MYSQL语句能 搜索所有字段?
- 问一句关于mysql Date 的 sql 语句
- vc.net2003如何连接PostgreSQL
- Mysql存储过程中动态创建表的问题,求助???
- 有人做过充值卡系统吗?用户名和卡的值金额要建几张表,都应该有什么字段?
- 如何只备份数据库中的一个表?谢谢,绝对给分!
- 谁有MYSQL设计命名规范?(比如:数据库名,表名等等)
- mysql分表 hash算法问题
- 求解无限分类分类统计的难题。
设置了一个字段:ti tinyint(1);
但为何能插入:set ti=111
且select显示结果为:ti: 111那么tinyint(1)这个括号里的1代表什么意义呢?
tinyint 范围是 -128~127.
tingint(1)是显示一位。
同求大神解释清楚...
MySQL还支持选择在该类型关键字后面的括号内指定整数值的显示宽度(例如,INT(4))。该可选显示宽度规定用于显示宽度小于指定的列宽度的值时从左侧填满宽度。显示宽度并不限制可以在列内保存的值的范围,也不限制超过列的指定宽度的值的显示。当结合可选扩展属性ZEROFILL使用时, 默认补充的空格用零代替。例如,对于声明为INT(5) ZEROFILL的列,值4检索为00004。请注意如果在整数列保存超过显示宽度的一个值,当MySQL为复杂联接生成临时表时会遇到问题,因为在这些情况下MySQL相信数据适合原列宽度。
一些有关mysql的总结:http://blog.csdn.net/tianyazaiheruan/article/category/1154354
希望可以帮助你
那么“显示宽度”是否是指:select查询结果显示出的内容呢?