mysql中的字符集与校对集

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;

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值