【云贝学院】云贝学院TDSQL TCP认证课程已上线,学院有不定期公开课 需要进讨论群的同学可以加老师微信:19941464235

作者:潘峰

--显示数据库支持的字符集

show char set;

1.针对每一种声明支持的字符集(支持的字符集应当包含utf8),创建一张表,并测试:

--根据show char set 执行的结果 选如下字符集创建表

CREATE TABLE `test` (`id`    int auto_increment  primary key,`name` binary(16),`gbk` varchar(2) CHARACTER SET gbk DEFAULT NULL,`utf8` varchar(2) CHARACTER SET utf8 DEFAULT NULL,`latin_utf8` varchar(6) DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=latin1;

a)测试增删改查操作;

insert into test (name,gbk,utf8,latin_utf8) values ('liudehua','ab','cd','df');
insert into test (name,gbk,utf8,latin_utf8) values ('liudehua','ab','cd','df');
insert into test (name,gbk,utf8,latin_utf8) values ('zhangxueyou','ef','c1','ji');
​
​
delete from test where latin_utf8='ji';
select * from  test;
+----+------------------+------+------+------------+
| id | name             | gbk  | utf8 | latin_utf8 |
+----+------------------+------+------+------------+
|  1 | liudehua         | ab   | cd   | df         |
|  2 | liudehua         | ab   | cd   | df         |
+----+------------------+------+------+------------+
​update test set utf8='中国' where id = 2 and utf8='cd';
select * from  test;
+----+------------------+------+--------+------------+
| id | name             | gbk  | utf8   | latin_utf8 |
+----+------------------+------+--------+------------+
|  1 | liudehua         | ab   | cd     | df         |
|  2 | liudehua         | ab   | 中国   | df         |
+----+------------------+------+--------+------------+

b)对于支持utf8、gbk等含中文的情况,测试汉字“中国”增删改查操作;

insert into test (name,gbk,utf8,latin_utf8) values ('中国','中国','中国',_latin1'中国');
insert into test (name,gbk,utf8,latin_utf8) values ('中国','中国','中国',_latin1'中国');
delete from test where utf8='中国' and id =4;
update test set utf8='日本',gbk='日本' where gbk='中国' and utf8='中国';
select * from  test;
+----+------------------+--------+--------+---------------+
| id | name             | gbk    | utf8   | latin_utf8                   |
+----+------------------+--------+--------+---------------+
|  1 | liudehua         | 日本   | 日本   | df                        |
|  5 | 中国                | 日本   | 日本   | 中国                |
+----+------------------+--------+--------+---------------+

c)对于支持查询二进制值的情况,测试查询汉字“中国”的编码值,确定以正确的字符集存储;

select hex(name),hex(gbk),hex(utf8),hex(latin_utf8) from test;
+----------------------------------+----------+--------------+-----------------+
| hex(name)                        | hex(gbk) | hex(utf8)    | hex(latin_utf8) |
+----------------------------------+----------+--------------+-----------------+
| 6C697564656875610000000000000000   | C8D5B1BE | E697A5E69CAC  | 6466                    |
| E4B8ADE59BBD00000000000000000000 | C8D5B1BE | E697A5E69CAC  | E4B8ADE59BBD    |
| E4B8ADE59BBD00000000000000000000 | D6D0B9FA | E4B8ADE59BBD | E4B8ADE59BBD    |
+----------------------------------+----------+--------------+-----------------+

2.针对声明支持两种或更多字符集的情况,测试:

a)如果声明支持存储字符集转换,在支持的范围内测试存储字符集转换;

set names latin1;
show variables like 'character_set%';
+--------------------------+---------+
| Variable_name                 | Value   |
+--------------------------+---------+
| character_set_client          | latin1   |
| character_set_connection | latin1   |
| character_set_database    | utf8      |
| character_set_filesystem   | binary  |
| character_set_results        | latin1   |
| character_set_server         | utf8mb4 |
| character_set_system        | utf8     |
+--------------------------+---------+
select * from test;
+----+------------------+------+------+------------+
| id    | name                 | gbk    | utf8  | latin_utf8   |
+----+------------------+------+------+------------+
|  1    | liudehua            | ??       | ??     | df              |
|  5    | 中国                   | ??       | ??     | 中国           |
|  6    | 中国                   | ??       | ??     | 中国           |
+----+------------------+------+------+------------+

b)如果声明支持连接字符集和存储字符集不一致,测试连接字符集与存储字符集不相同时,数据增、删、改、查操作是否合理处理,连接字符集与存储字符集都支持的汉字在增、删、改、查时是否正确转换;

MySQL [test]> set session character_set_connection=latin1;
​
MySQL [test]> select * From test;
+----+------------------+--------+--------+---------------+
| id | name             | gbk    | utf8   | latin_utf8    |
+----+------------------+--------+--------+---------------+
|  1 | liudehua         | 日本   | 日本   | df            |
|  5 | 中国                | ??      | 日本   | 中国        |
|  6 | 中国                | 中国   | 中国   | 中国        |
+----+------------------+--------+--------+---------------+
​
update test set gbk='美国' WHERE id=6;
​
MySQL [test]> select * from test;
+----+------------------+--------+--------+---------------+
| id | name             | gbk    | utf8   | latin_utf8    |
+----+------------------+--------+--------+---------------+
|  1 | liudehua         | 日本   | 日本   | df               |
|  5 | 中国                | ??      | 日本   | 中国        |
|  6 | 中国                | ??      | 中国   | 中国        |
+----+------------------+--------+--------+---------------+

3.如果声明支持二进制字符串,测试插入和查询出的二进制字符串的二进制数值是否完全一致。

insert into test (name,gbk,utf8,latin_utf8) values (UNHEX('4D7953514C'),'中国','中国',_latin1'中国');
select * from test;
​
+----+------------------+--------+--------+---------------+
| id | name             | gbk    | utf8   | latin_utf8    |
+----+------------------+--------+--------+---------------+
|  1 | liudehua         | 日本   | 日本   | df            |
|  5 | 中国             | ??     | 日本   | 中国        |
|  6 | 中国             | ??     | 中国   | 中国        |
|  7 | MySQL            | 中国   | 中国   | 中国        |
+----+------------------+--------+--------+---------------+select hex(name) from test where id = 7;
+----------------------------------+
| hex(name)                        |
+----------------------------------+
| 4D7953514C0000000000000000000000 |
+----------------------------------+

【云贝学院】云贝学院腾讯云TDSQL TCP认证课程已上线,学院有不定期公开课 需要的同学可以加老师微信:19941464235

【云贝学院】腾讯云TDSQL-数据库字符集相关推荐

  1. 【云贝学院】腾讯云TDSQL独立部署最佳实践

    [云贝学院]云贝学院TDSQL TCP认证课程已上线,学院有不定期公开课 需要的同学可以加老师微信:19941464235 作者:崔鹏 创建四台云主机或者本地四台Centos7.6的VM虚拟机 (四台 ...

  2. 【云贝学院】揭秘TDSQL分布式实例扩容的逻辑流程

    [云贝学院]云贝学院TDSQL TCP认证课程已上线,学院有不定期公开课 需要进讨论群的同学可以加老师微信:19941464235 作者:潘峰 [前言] 大家众所周知TDSQL for mysql 是 ...

  3. 【云贝学院】大师操刀倾心打造:数据之颠Oracle 12c OCM认证课程

    [云贝学院]云贝学院Oracle 12c OCM认证课程已上线,学院有不定期公开课~ 想加入讨论群的同学,加老师微信:19941464235进群 01.Oracle 12c OCM课程概述 Oracl ...

  4. python操作微信小程序云端数据库_微信小程序·云开发云数据库的基本使用-微信小程序云开发实例-腾讯云微信小程序...

    微信小程序·云开发云数据库的基本使用-微信小程序云开发实例-腾讯云微信小程序 浏览量:1120 时间:2020-04-06

  5. 饥荒联机云服务器_GAMETECH腾讯云游戏行业技术沙龙成都站圆满落幕

    11月13日,由腾讯云主办.游戏茶馆协办的2020年首场GAME-TECH腾讯云游戏行业技术沙龙在成都圆满落幕. 在一款游戏的运维过程中,游戏开发者们很有可能会遇到游戏服务器过载.游戏数据存储与游戏数 ...

  6. 阿里云服务器和腾讯云服务器哪个更好?多维度对比得出了结论

    阿里云服务器称作ECS,腾讯云服务器称作CVM,都能提供安全可靠的弹性计算服务.阿里云和腾讯云哪个更好?是很多初次购买云服务器产品的用户很纠结的问题,我们从不同的维度对比阿里云和腾讯云. 对比价格和使 ...

  7. 腾讯云是什么?腾讯云TCA和腾讯云TCP是什么?

    现在有很多人为了提高自身的竞争力,找到理想的工作,都在疯狂的考取各种证书,以让自己变得越来越强大的,因此大家都在准备去考腾讯云认证考试,大家都认为这个领域有良好的发展前景,那么腾讯云题难吗?零基础可以 ...

  8. 深度数据对比分析:阿里云服务器和腾讯云服务器那家好?

    服务器具有维护成本低,安全稳定,高可扩展性和 7 X 24 小时的售后支持的优势,因此云服务器成为中小企业建站的首要选择.国内的云服务器竞争也进入了跑马圈地的时代,以阿里云.腾讯云.百度云三大BAT为 ...

  9. 如何购买腾讯云服务器?腾讯云服务器购买教程文档

    ​由于需要帮公司客户(开发Web业务系统)选购腾讯云并做相关报价方案,所以业余时间写了这份文档来帮助客户如何选择腾讯云相关服务器配置-腾讯云服务器购买指南 国内的云服务器上知名的就那么几家,腾讯云是排 ...

最新文章

  1. UESTC_秋实大哥与快餐店 2015 UESTC Training for Data StructuresProblem C
  2. OSPF 邻接关系建立
  3. 面试又栽在JVM上了!
  4. VPC-阿里云专有网络 Virtual Private Cloud
  5. 自学Java的人,如何系统全面的学习?
  6. 路径规划算法:Dijkstra算法 - 附代码
  7. 极光java sdk_极光使用服务端使用java sdk 出现异常 日志如下
  8. ApacheCN 活动汇总 2019.7.27
  9. pycharm 配置虚拟环境 安装虚拟环境
  10. Android实用视图动画及工具系列之六:通用表情栏,仿QQ微信聊天弹出表情选框
  11. 面向对象之多态【向上转型与向下转型】
  12. android 图片底部波浪线,如何添加文字下面的红色波浪线在Android的TextView的
  13. 备战sp23春招 day8 | 344.反转字符串 541. 反转字符串II 剑指 05.替换空格 151.翻转字符串里的单词 剑指58-II.左旋转字符串
  14. 深度学习自学第四周:近几年的经典神经网络结构
  15. 2022-2028年全球管道监测系统收入年复合增长率CAGR为 3.8%
  16. DCT变换(JAVA)
  17. apicloud学习笔记
  18. 百分点认知智能实验室:智能校对的技术原理和实践
  19. go nacos服务发现
  20. 软件项目计划管理:三级计划管理体系

热门文章

  1. Redis实现的布隆过滤器如何快速有效删除数据
  2. oracle查看历史oracle database数据库版本并下载
  3. 课程设计--电子地图
  4. python写api接口实战
  5. librosa安装常见错误
  6. ios用 shell 自动打包静态库(里面包含真机和模拟器)
  7. 漫画 | 悲催的中国式软件开发
  8. Windows系统安装虚拟机以及Linux系统
  9. Windows 生物统计框架结构简介(WBF) (指纹识别技术)
  10. 旷视研究院获 IROS 2021 The HILTI SLAM 挑战赛冠军