技术头条 - 一个快速在微博传播文章的方式     搜索本站
您现在的位置首页 --> MySQL --> 字符与字节

字符与字节

浏览:1915次  出处信息

字符与字节的问题
1、表t1
mysql> show create table t1\G
*************************** 1. row ***************************
Table: t1
Create Table: CREATE TABLE `t1` (
`a` char(1) DEFAULT NULL,
`b` binary(1) DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=gbk

1)插入数据:
mysql> insert into t1 values(’w',’w'),(’中’,'中’);

mysql> select * from t1;
+――+――+
| a | b |
+――+――+
| w | w |
| 中 | ? |
+――+――+

2)插入数据被截断:
mysql> insert into t1 values(’xy’,'xy’),(’中国’,'中国’);
Query OK, 2 rows affected, 4 warnings (0.00 sec)
Records: 2 Duplicates: 0 Warnings: 4

mysql> select * from t1;
+――+――+
| a | b |
+――+――+
| w | w |
| 中 | ? |
| x | x |
| 中 | ? |
+――+――+

2、表t2
mysql> show create table t2\G
*************************** 1. row ***************************
Table: t2
Create Table: CREATE TABLE `t2` (
`a` char(2) DEFAULT NULL,
`b` binary(2) DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=gbk

1)插入数据:
mysql> insert into t2 values(’w',’w'),(’中’,'中’);
Query OK, 2 rows affected (0.00 sec)
Records: 2 Duplicates: 0 Warnings: 0

mysql> select * from t2;
+――+――+
| a | b |
+――+――+
| w | w |
| 中 | 中 |
+――+――+
2 rows in set (0.01 sec)

mysql> insert into t2 values(’xy’,'xy’),(’中国’,'中国’);
Query OK, 2 rows affected, 1 warning (0.00 sec)
Records: 2 Duplicates: 0 Warnings: 1

mysql> select * from t2;
+――+――+
| a | b |
+――+――+
| w | w |
| 中 | 中 |
| xy | xy |
| 中国 | 中 |
+――+――+

总结: char以字符来计算,一个中文一个英文都是占1个字符;
Binary以字节来计算,一个英文占1个字节,一个中文占2个字节。

建议继续学习:

  1. 字符引用和空白字符    (阅读:3635)
  2. 正则表达式傻瓜书 第二章:元字符    (阅读:3080)
  3. 前端开发中HTML与javascript的常用字符编码    (阅读:2715)
  4. sql 语句查换行隐形字符    (阅读:2549)
  5. HTML特殊字符大全    (阅读:2538)
  6. 字符与字节    (阅读:2376)
  7. C#网络通信中中文字符的传送以及SQL数据库存取中文的解决方法    (阅读:2196)
  8. Oracle中如何用SQL检测字段是否包括中文字符    (阅读:2157)
  9. java中文乱码解决之道(二)—–字符编码详解:基础知识 + ASCII + GB**    (阅读:1730)
  10. Oracle字符类型存数字及查询数字时使用单引号走不走索引的问题    (阅读:1338)
QQ技术交流群:445447336,欢迎加入!
扫一扫订阅我的微信号:IT技术博客大学习
© 2009 - 2024 by blogread.cn 微博:@IT技术博客大学习

京ICP备15002552号-1