请教mysql 字符集的问题。

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了请教mysql 字符集的问题。相关的知识,希望对你有一定的参考价值。

mysql字符集有关的有:
1. 数据库的的字符集
2. 文本字段( varchar , text ,char ) 的字符集
你指的是哪个呢?
以下例子以utf8为字符集(注意是utf8 不是 utf-8 )
建库时指定字符集: create database XXXX charset utf8
一旦在建库时指定了字符集,在建表时就可以不用指定字符集了,它会默认继承数据库的字符集。
如果建表时还想指定字符集:create table XXXX ( xxxxxxx ) type=MyISAM default charset utf8

create table XXXX ( aa varchar(8) charset utf8, bb char(4) charset utf8) type=MyISAM default charset utf8;
一旦设置了utf8为字符集,在读取时,特别是用作网页作为输出 和 从网页接受数据时,要注意:
1. 请将网页的编码设置为 utf-8 (请注意是 utf-8 不是 utf8 )
2. 在进行 数据库操作 之前请先执行一下SQL: set names utf8 , 然后再执行其它SQL语句

上面的思想是:请尽量保持所有的操作都用同一种编码。
参考技术A MySQL字符集设置
• 系统变量:
– character_set_server:默认的内部操作字符集
– character_set_client:客户端来源数据使用的字符集
– character_set_connection:连接层字符集
– character_set_results:查询结果字符集
– character_set_database:当前选中数据库的默认字符集
– character_set_system:系统元数据(字段名等)字符集
– 还有以collation_开头的同上面对应的变量,用来描述字符序。
• 用introducer指定文本字符串的字符集:
– 格式为:[_charset] ’string’ [COLLATE collation]
– 例如:
SELECT _latin1 ’string’;
SELECT _utf8 ‘你好’ COLLATE utf8_general_ci;
– 由introducer修饰的文本字符串在请求过程中不经过多余的转码,直接转换为内部字符集处理。
MySQL中的字符集转换过程
1. MySQL Server收到请求时将请求数据从character_set_client转换为character_set_connection;
2. 进行内部操作前将请求数据从character_set_connection转换为内部操作字符集,其确定方法如下:
- 使用每个数据字段的CHARACTER SET设定值;
- 若上述值不存在,则使用对应数据表的DEFAULT CHARACTER SET设定值(MySQL扩展,非SQL标准);
- 若上述值不存在,则使用对应数据库的DEFAULT CHARACTER SET设定值;
- 若上述值不存在,则使用character_set_server设定值。
参考技术B ResultSet 就是你从数据库取回来的东西都放在字符集里 可以通过rs.getInt() rs.getSting()等取得数据

请教MySQL 执行查询语句时数据库崩溃重启问题

MySQL 随着版本不停迭代,崩溃的现象越来越少,也越来越隐蔽。
一旦遇到生产环境上的 MySQL 崩溃,就需要保留现场信息,供分析用。虽然 MySQL 的 error log 中会打印部分信息,但对于比较隐蔽的崩溃,往往显得力不从心。
通过开启操作系统级别、放开用户限制、启用 MySQL 参数三个步骤,我们启用了 MySQL 的 coredump 功能,使得 MySQL 崩溃时留下了足够的线索。
对于复杂崩溃的分析,还是需要将 coredump 交给专业的研发工程师手里,或者提交给 MySQL 开发团队。
不过不管是什么场景,能提供一份 coredump,所有技术人员都会感谢你的。
参考技术A 请教MySQL 执行查询语句时数据库崩溃重启问题
应用程序需要1.连接2.命令3.接收结果,不考虑数据处理其他打开关闭什么的,就比sql语句多了2步。
如举例,你要有个朋友(有钱的情况),然后借钱,结果还不一定能接到。
而老婆,她又没有钱你知道,她不可能不给你钱而饿着你,结果是一定借到还不用还。
sql语句就像是原配的老婆,继承在数据库操作平台中,不快还得了啊。本回答被提问者采纳

以上是关于请教mysql 字符集的问题。的主要内容,如果未能解决你的问题,请参考以下文章

请教一下数据库字段是varchar,我们做排序的时候为啥999比1111大

mysql中 日期转换为字符串的函数是啥

请教C语言字符串和字符数组的比较问题

请教:JAVA中英文字符串截取的问题

mysql 数据库中 ,按照字母加数字的字符串排序

用While统计字符个数问题请教各位。