mysql中的字符集与校对集
直接po代码
#mysql中的字符集与校对集
#查看字符集
SHOW VARIABLES LIKE '%charact%';
#查看系统字符集设置,包括所有的字符集设置
SHOW VARIABLES LIKE '%char%';
#查看数据库支持的所有字符集
show character set;
show char set;
#列出表的列信息
SHOW FULL COLUMNS FROM book;
#查看当前数据库的校对规则
SHOW VARIABLES LIKE 'collation%';
#获取表信息
SHOW TABLE STATUS;
#列出数据库的表信息,比较详细
SHOW TABLE STATUS FROM myemployees;
#列出MySQL Server上的数据库
SHOW DATABASES;
#列出数据库中的表
SHOW TABLES;
SHOW TABLES FROM myemployees;
#列出表的列信息
SHOW COLUMNS FROM book;
SHOW COLUMNS FROM book FROM myemployees;
#列出表的列信息
SHOW FIELDS FROM book;
SHOW FIELDS FROM book FROM myemployees;
#列出表的列信息
DESCRIBE book;
DESC book;
DESCRIBE book bName;
DESCRIBE book price;
DESC book bName;
DESC book price;
#列出表的列信息
SHOW FULL COLUMNS FROM book FROM myemployees;
SHOW FULL COLUMNS FROM book;
SHOW FULL FIELDS FROM book FROM myemployees;
SHOW FULL FIELDS FROM book;
#列出表的索引信息
SHOW INDEX FROM book FROM myemployees;
SHOW INDEX FROM book;
#列出Server的状态信息
SHOW STATUS;
#列出MySQL系統参数值
SHOW VARIABLES;
#查看当前mysql查询进程
SHOW PROCESSLIST;
SELECT user,host,PASSWORD FROM mysql.user;
#列出用户的授权命令
SHOW GRANTS FOR root;
SHOW GRANTS FOR linghuchong;
SHOW GRANTS FOR tom;
#查看建表语句
SHOW CREATE TABLE book;
/*
注意:character set可以简写为char set和charset
CREATE TABLE 表名(
列名 数据类型
)CHARSET=utf8;
*/
/*
注意:为表指定字符集可以使用以下几种方式:
default charset=utf8;
charset=utf8;
default character set=utf8;
character set=utf8;
default char set=utf8;
char set=utf8;
*/
/*
注意:创建数据库分配字符集可以采用以下几种子句:
charset=utf8;
default charset=utf8;
charset utf8;
default charset utf8;
char set=utf8;
default char set=utf8;
char set utf8;
default char set utf8;
character set=utf8;
default character set=utf8;
character set utf8;
default character set utf8;
*/
#
/*
character_set_client
character_set_connection
character_set_results
*/
#查看建库语句
SHOW CREATE DATABASE myemployees;
#
show variables like '%time_zone%';
#
show variables like '%partition%';
/*
mysql的字符集设置非常灵活
可以设置服务器默认字符集
数据库默认字符集
表默认字符集
列字符集
如果某一个级别没有指定字符集,则继承上一级
以表声明为utf8为例
存储的数据在表中,最终是utf8
*/
#mysql数据库中有字符集转换器
#查看字符集
SHOW VARIABLES LIKE '%charact%';
/*
1.告诉服务器我给你发送的数据是什么编码的?character_set_client
2.告诉转换器,转换成什么编码?character_set_connection
3.查询的结果用什么编码?character_set_results
如果以上3者都为字符集N,则可以简写为set names N;
*/
#
SHOW CHARACTER SET LIKE '%latin%';
/*
什么时候将会乱码?
character_set_client声明与实事不符
character_set_results与客户端页面不符的时候
什么时候将会丢失数据?
character_set_connection和服务器的字符集
比character_set_client小的时候
*/
#排序必须按某种规则排,这个规则就是校对集
/*
校对集:指字符集的排序规则
一种字符集下可以有一个或多个校对集(即一种字符集可以有一个或多个排序规则)
以utf8为例,我们默认使用utf8_general_ci规则,也可
以按二进制来排,utf8_bin
怎样声明校对集
CREATE TABLE 表名(列名 数据类型)charset utf8 COLLATE utf8_general_ci;
注意:声明的校对集必须是字符集合法的校对集
*/
#查看校对集
SHOW COLLATION;
SHOW COLLATION LIKE '%utf8%';
#查看数据库支持的所有字符集
show char set;
show character set;
#
SHOW CHARACTER SET;
SHOW CHARACTER SET LIKE '%utf8%';
#校对集案例
#
CREATE TABLE test66(
name VARCHAR(10)
)charset utf8;
INSERT INTO test66 VALUES('a'),('B'),('c'),('D');
SELECT * FROM test66;
SELECT * FROM test66 ORDER BY name asc;
#utf8_bin校对集
CREATE TABLE test67(
name VARCHAR(10)
)charset utf8 COLLATE utf8_bin;
INSERT INTO test67 VALUES('a'),('B'),('c'),('D');
SELECT * FROM test67;
SELECT * FROM test67 ORDER BY name asc;
#utf8_general_ci校对集
CREATE TABLE test68(
name VARCHAR(10)
)charset utf8 COLLATE utf8_general_ci;
INSERT INTO test68 VALUES('a'),('B'),('c'),('D');
SELECT * FROM test68;
SELECT * FROM test68 ORDER BY name asc;