转载地址:http://www.2cto.com/database/201212/175541.html
MySQL的字符集支持(Character Set Support)有两个方面:字符集(Character set)和排序方式(Collation)。 www.2cto.com
对于字符集的支持细化到四个层次:服务器(server),
数据库(database),数据表(table)和连接(connection)。
一、MySQL默认字符集
MySQL对于字符集的指定可以细化到一个数据库,一张表,一列,应该用什么字符集。
但是,传统的程序在创建数据库和数据表时并没有使用那么复杂的配置,它们用的是默认的配置,那么,默认的配置从何而来呢?
(1)编译MySQL 时,指定了一个默认的字符集,这个字符集是 latin1;
(2)安装MySQL 时,可以在配置文件 (my.ini) 中指定一个默认的的字符集,如果没指定,这个值继承自编译时指定的;
(3)启动
mysqld 时,可以在命令行参数中指定一个默认的的字符集,如果没指定,这个值继承自配置文件中的配置,此时 character_set_server 被设定为这个默认的字符集;
(4)当创建一个新的数据库时,除非明确指定,这个数据库的字符集被缺省设定为character_set_server;
(5)当选定了一个数据库时,character_set_database 被设定为这个数据库默认的字符集;
(6)在这个数据库里创建一张表时,表默认的字符集被设定为 character_set_database,也就是这个数据库默认的字符集;
(7)当在表内设置一栏时,除非明确指定,否则此栏缺省的字符集就是表默认的字符集; www.2cto.com
简单的总结一下,如果什么地方都不修改,那么所有的数据库的所有表的所有栏位的都用latin1存储,不过我们如果安装 MySQL,一般都会选择多语言支持,也就是说,安装程序会自动在配置文件中把default_character_set 设置为 UTF-8,这保证了缺省情况下,所有的数据库的所有表的所有栏位的都用 UTF-8 存储。
二、查看字符集
1、查看MySQL数据库服务器和数据库字符集
mysql> show variables like '%char%';
+--------------------------+------------------------------------------+
| Variable_name | Value |
+--------------------------+------------------------------------------+
| character_set_client | latin1 |-- 客户端字符集
| character_set_connection | latin1 |
| character_set_database | latin1 |-- 数据库字符集
| character_set_filesystem | binary |
| character_set_results | latin1 |
| character_set_server | latin1 |-- 服务器字符集
| character_set_system | utf8 |
| character_sets_dir | D:\APMServ5.2.6\MySQL5.1\share\charsets\ |
+--------------------------+------------------------------------------+
2、查看MySQL数据表(table)的字符集
mysql> show table status from test like '%test%';
+---------------+--------+---------+------------+ +-------------------+
| Name | Engine | Version | Row_format | | Collation |
+---------------+--------+---------+------------+ +-------------------+
| test_char | MyISAM | 10 | Fixed | | hebrew_general_ci |
| test_inn | InnoDB | 10 | Compact | | latin1_swedish_ci |
| test_inn2 | InnoDB | 10 | Compact | | utf8_general_ci |
| test_priority | MyISAM | 10 | Dynamic | | latin1_swedish_ci |
| test_trans | InnoDB | 10 | Compact | | latin1_swedish_ci |
| test_view | NULL | NULL | NULL | | NULL |
+---------------+--------+---------+------------+ +-------------------+ www.2cto.com
3、查看MySQL数据列(column)的字符集
mysql> show full columns from v9_picture;
+-------------+-----------------------+----------------+
| Field | Type | Collation |
+-------------+-----------------------+----------------+
| id | mediumint(8) unsigned | NULL |
| catid | smallint(5) unsigned | NULL |
| typeid | smallint(5) unsigned | NULL |
| title | char(80) | gbk_chinese_ci |
| style | char(24) | gbk_chinese_ci |
| thumb | char(100) | gbk_chinese_ci |
| keywords | char(40) | gbk_chinese_ci |
| description | char(255) | gbk_chinese_ci |
| posids | tinyint(1) unsigned | NULL |
| url | char(100) | gbk_chinese_ci |
| listorder | tinyint(3) unsigned | NULL |
| status | tinyint(2) unsigned | NULL |
| sysadd | tinyint(1) unsigned | NULL |
| islink | tinyint(1) unsigned | NULL |
| username | char(20) | gbk_chinese_ci |
| inputtime | int(10) unsigned | NULL |
| updatetime | int(10) unsigned | NULL |
+-------------+-----------------------+----------------+
三、设置及修改字符集
1、创建数据库指定数据库的字符集
mysql> create database mydb character set gb2312;
mysql> use mydb
mysql> show variables like 'character_set_database';
+------------------------+--------+
| Variable_name | Value |
+------------------------+--------+
| character_set_database | gb2312 |
+------------------------+--------+
2、修改数据库的字符集
(1)、通过SQL修改
mysql> alter database mydb character set utf8;
mysql> show variables like 'character_set_database';
+------------------------+-------+
| Variable_name | Value |
+------------------------+-------+
| character_set_database | utf8 |
+------------------------+-------+
(2)、通过配置文件修改
修改文件$MYSQL_HOME\data\mydb\db.opt的内容
default-character-set=utf8
default-collation=utf8_general_ci
为
default-character-set=latin1
default-collation=latin1_swedish_ci
重启MYSQL后生效
3、通过SQL修改字符集
mysql> set character_set_client=utf8;
mysql> set character_set_connection=utf8;
mysql> set character_set_database=utf8;
mysql> set character_set_results=utf8;
mysql> set character_set_server=utf8;
mysql> set character_set_system=utf8;
mysql> set collation_connection=utf8;
mysql> set collation_database=utf8;
mysql> set collation_server=utf8;
- 【数据库】4.0 MySQL入门学习(四)——linux系统环境下MySQL安装
1.0 我的操作系统是CentOS Linux release 7.6.1810 (Core) 系统详细信息如下: Linux version 3.10.0-957.1.3.el7.x86_64 ( ...
- 【数据库】3.0 MySQL入门学习(三)——Windows系统环境下MySQL安装
1.0 我的操作系统是window10 专业版 64位.,不过至少windows7以上系统都是一样的. 关于MySQL如何下载,请参考博文: [数据库]2.0 如何获得MySQL以及MySQL安装 h ...
- 【数据库】9.0 MySQL入门学习(九)——获得数据库和表的信息、日期计算、查询、选择特殊列
1.0 SELECT语句用来从数据表中检索信息. SELECT what_to_select FROM which_table WHERE conditions_to_satisfy; what_to ...
- 【数据库】7.0 MySQL入门学习(七)——MySQL基本指令:帮助、清除输入、查询等
1.0 help == ? 帮助指令,查询某个指令的解释.用法.说明等.详情参考博文: [数据库]6.0 MySQL入门学习(六)——MySQL启动与停止.官方手册.文档查询 https://www. ...
- MySQl Study学习之--MySQl二进制日志管理
MySQl Study学习之--MySQl二进制日志管理 MySQL二进制日志(Binary Log) a.它包括的内容及作用例如以下: 包括了全部更新了数据或者已经潜在更新了数据(比方没 ...
- 【转】MYSQL入门学习之二:使用正则表达式搜索
转载地址:http://www.2cto.com/database/201212/173869.html 一.正则表达式介绍 www.2cto.com 正则表达式是用来匹配文本的特殊的串(字符 ...
- 【数据库】1.0 MySQL入门学习(一)——常识性知识
1.0 什么是MySQL(官方发音 My Ess Que Ell)? 是一个快速.多线程.多用户和强壮的SQL数据库服务器,SQL是世界上最流行的标准化数据库语言. 名字来源:共同创办人Monty W ...
- 【转】MYSQL入门学习之七:MYSQL常用函数
转载地址:http://www.2cto.com/database/201212/175864.html 一.数学函数 www.2cto.com ABS(x) ...
- 【数据库】2.0 MySQL入门学习(二)——如何获得MySQL以及MySQL安装
1.0 如何获得MySQL: www.oracle.com https://dev.mysql.com/downloads/ 2.0 例如进入Oracle官网,找到MySQL: 进入页面后,切换到“资 ...
随机推荐
- ios-消息弹框之UIAlertView, UIActionSheet以及UIAlertController小结
首先storyboard中创建对应按钮并拖线,来演示不同的效果 首先点击了actionSheet按钮效果如图 实现弹框需要遵守设置代理,遵守协议. 效果就是从底部向上弹起来的框框. 通过对按钮的点击输 ...
- javascript 内部函数的定义及调用
内部函数:定义在另一个函数中的函数 例如: <script> function outer(){ function inner(){ } } </script> inner() ...
- php:PHPExcel导出excel表格
一.动态生成的内容如何能当成文件来下载呢? 方法:1.将Content-Type设置成application/octet-stream就可以了,即[header('Content-Type: appl ...
- ubuntu14.04安装eclipse
1.安装jdk7.x,参考上篇<Linux14.04安装JDK> 2下载eclipse.tar 3.sudo tar -zxvf eclipse-x-x-.tar.gz mv eclips ...
- 文件操作 & 重定向
实例:输入一些整数,求出它们的最小值.最大值和平均值(保留3位小数).输入保证这些数都是不超过1000的整数. 分析:需要注意的几点:数据个数不确定:数据大小不确定.简单分析后编程如下: #inclu ...
- PostgreSQL表空间
postgres=# \h create tablespace Command: CREATE TABLESPACEDescription: define a new tablespaceSyntax ...
- G面经prepare: set difference
给你A{1,2,3,4,4,5}, B{2,4},求A-B={1,3,4,5},很简单. visit 1 只用一个HashMap package TwoSets; import java.util.* ...
- Lintcode: O(1) Check Power of 2
Using O(1) time to check whether an integer n is a power of 2. Example For n=4, return true For n=5, ...
- Python学习笔记总结1:字符串表示str与repr的用法比较
参考博文地址:http://blog.csdn.net/yyt8yyt8/article/details/7030416 值转化为字符串常用以下三种方法: 1. str函数 str函数转化为合理形式的 ...
- ZOJ 3545 Rescue the Rabbit(AC自动机+状压DP)(The 2011 ACM-ICPC Asia Dalian Regional Contest)
Dr. X is a biologist, who likes rabbits very much and can do everything for them. 2012 is coming, an ...