IT技术博客大学习 共学习 共进步

字符与字节

DBA@Taobao 2009-10-13 15:13:35 浏览 3,041 次

     字符与字节的问题

    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. 字符引用和空白字符 (阅读 4,623)
  2. 正则表达式傻瓜书 第二章:元字符 (阅读 4,100)
  3. sql 语句查换行隐形字符 (阅读 3,460)
  4. 前端开发中HTML与javascript的常用字符编码 (阅读 3,421)
  5. HTML特殊字符大全 (阅读 3,301)
  6. C#网络通信中中文字符的传送以及SQL数据库存取中文的解决方法 (阅读 3,201)
  7. Oracle中如何用SQL检测字段是否包括中文字符 (阅读 2,940)
  8. java中文乱码解决之道(二)—–字符编码详解:基础知识 + ASCII + GB** (阅读 2,881)
  9. 字符与字节 (阅读 2,581)
  10. Oracle字符类型存数字及查询数字时使用单引号走不走索引的问题 (阅读 2,521)