目录
字符集
CHRARCTER SET 与COLLATION的关联
CHRARCTER SET
定义
基础操作
查看当前MySQL Server支持的 CHARACTER SET
查看特定字符集信息(主要包含默认的COLLATION 与 MAXLEN)
COLLATION
定义
COLLATION后缀
基础操作
查看MySQL Server支持的COLLATION
MySQL Server 默认的Charset和COLLATION
utf8和utf8mb4的区别
查看MySQL Server当前的Charset和COLLATION
修改MySQL Server默认的Charset和COLLATION
修改my.cnf配置文件,一般在/etc目录下的
注意:如果出现my.cnf文件无内容解决方法
修改或添加以下内容到 [mysql] 字节中
修改或添加以下内容到 [client] 字节中
重启MySQL服务
登陆MySQL
查看当前的Charset和COLLATION
指定MySQL Server的Charset和Collation
MySQL数据库操作
查看
语法格式
功能
解析自带数据库
查看所创建的数据库
创建
语法格式
功能
案例
删除
语法格式
功能
案例
切换
语法格式
功能
案例
查看当前连接的数据库
查看数据库版本
查看当前用户
执行对应系统命令
语法格式
作用
案例
字符集
MySQL字符集包括字符集(CHARACTER)和校对规则(COLLATION)
CHRARCTER SET 与COLLATION的关联
- MySQL服务器支持多种字符集(Character Set)
- 每个字符集至少有一个Collation
- 大部分字符集都有多个Collation
- 每个字符集都有一个默认的Collation
- 两个不同的字符集不会有相同的Collation
- MySQL可以在服务器、数据库、表或字段级别指定使用的字符集
CHRARCTER SET
定义
Chrarcter set --- 一套字符及其编码,即字符集(一般也是用Charrset这一词)
基础操作
查看当前MySQL Server支持的 CHARACTER SET
mysql> show character set;
mysql> show charset;
mysql> show char set;
mysql> select * from information_schema.character_sets;
四种方法任意一种即可
查看特定字符集信息(主要包含默认的COLLATION 与 MAXLEN)
此处查找所有关于utf的字符集
mysql> show character set like 'utf%';
mysql> show charset like 'utf%';
mysql> show char set like 'utf%';
mysql> select * from information_schema.character_sets where CHARACTER_SET_NAME like 'utf%';
四种方法任意一种即可
COLLATION
定义
Collation --- 在字符集内用于比较或排序字符的一套规则,即效验规则
COLLATION后缀
SUFFIX(后缀) | MEANING(意义) |
_ai | Accent-insensitive(不区分重音,相当于不知道关键字) |
_as | Accent-sensitive(区分重音) |
_ci | Case-insensitive(不区分大小写) |
_cs | Case-sensitive(区分大小写) |
_ks | Case-sensitive(区分假名) |
_bin | Binary(二进制) |
基础操作
查看MySQL Server支持的COLLATION
mysql> SHOW COLLATION WHERE Charset = 'utf8mb4';
MySQL Server 默认的Charset和COLLATION
- <=5.7 doc MySQL Server 5.7或之前版本默认的Charset和Collation是:
latin1
和latin1_swedish_ci
- 8.x doc MySQL Server 8.x(当前版本)默认的Charset和Collation是:
utf8mb4
和utf8mb4_0900_ai_ci
utf8和utf8mb4的区别
mb4 000 就是most bytes 4的意思,专门用来兼容四字节的unicode
utf8 编码最大字符长度为 3 字节,如果遇到 4 字节的宽字符就会插入异常了,所以缺少 Emoji 表情,很多不常用的汉字,以及任何新增的 Unicode 字符
也就相当于UTF8mb4是我们正常情况下所熟知的UTF-8
查看MySQL Server当前的Charset和COLLATION
mysql> show variables like 'character_set_server';
mysql> show variables like 'collation_server';
mysql> select @@character_set_server, @@collation_server;
修改MySQL Server默认的Charset和COLLATION
修改my.cnf配置文件,一般在/etc目录下的
[root@localhost ~]# vim /etc/my.cnf
注意:如果出现my.cnf文件无内容解决方法
打开/etc/mysql/my.cnf 发现里面没有[mysql]、[mysqld]等内容 ,但却指向了其他地方的配置文件
1.查找当前所指目录
[root@localhost /]# ls /etc/my.cnf.d/
2.查看[MySQLD]字节所属地,我的在mysql-default-authentication-plugin.cnf 中
[root@localhost /]# vim /etc/my.cnf.d/mysql-server.cnf
3.查看[client]字节所属地,我的在client.cnf文件中
[root@localhost /]# vim etc/my.cnf.d/client.cnf
修改或添加以下内容到 [mysql] 字节中
default_character_set=utf8
修改或添加以下内容到 [client] 字节中
default-character-set=utf8
重启MySQL服务
[root@localhost /]# systemctl restart mysqld.service
未出现报错,则表示重启成功
登陆MySQL
[root@localhost /]# mysql -uroot -p
查看当前的Charset和COLLATION
mysql> select @@character_set_server, @@collation_server;
指定MySQL Server的Charset和Collation
创建一个指定Charset和Collation的数据库
create database 数据库名 default character set 字符集 collate collation;
mysql> CREATE DATABASE SECOND_DB DEFAULT CHARACTER SET GBK COLLATE GBK_CHINESE_CI;
修改一个指定Charset和Collation的数据库
alter database 数据库名 character set 字符集 collate collation;
mysql> ALTER DATABASE FIRST_DB CHARACTER SET GBK COLLATE GBK_CHINESSE_CI;
MySQL数据库操作
查看
语法格式
SHOW DATABASES [LIKE wild];
功能
列出在MySql服务器主机上的数据库
解析自带数据库
Information_schema --- 主要存储了系统中的一些数据库对象信息:如用户表信息、列信息、权限信
performance_schema --- 主要存储数据库服务器的性能参数
mysql --- 存储了系统的用户权限信息及帮助信息
sys ---5.7新增,之前版本需要手工导入。这个库是通过视图的形式把information_schema 和performance_schema结合起来,查询出更加令人容易理解的数据
查看所创建的数据库
SHOW CREATE DATABASE <数据库名>;
解析:
CREATE DATABASE `FIRST_DB` --- 代表数据库名字为 FIRST_DB
/*!40100 DEFAULT CHARACTER SET gbk */ --- 代表其默认的字符集为GBK
/*!80016 DEFAULT ENCRYPTION='N' */ --- 默认加密为 N
/*! 数字 代码 */ --- 可以跨行注释,但是一定要闭合,不然出错
创建
语法格式
CREATE DATABASE [IF NOT EXISTS]数据库名;
功能
用给定的名字创建一个数据库
注意:
如果数据库已经存在,发生一个错误。
案例
创建数据库 test1
mysql> CREATE DATABASE test1;
删除
语法格式
DROP DATABASE [IF EXISTS]数据库名;
功能
删除数据库中得所有表和数据库
注意:
要小心使用这个命令(慎用)
案例
删除所创建的test1
mysql> DROP DATABASE test1;
切换
语法格式
USE 数据库名;
功能
把指定数据库作为默认(当前)数据库使用,用于后续语句
案例
将当前数据库切换到SECOND_DB
mysql> USE SECOND_DB;
查看当前连接的数据库
mysql> SELECT DATABASE();
查看数据库版本
mysql> SELECT VERSION();
查看当前用户
mysql> SELECT USER();
执行对应系统命令
语法格式
SYSTEM <命令>
作用
在mysql中执行一些Linux上的操作命令
案例
mysql> system ls
mysql> system date
mysql> system cls | clear
注意:
可以使用管道符“ | ”,在mysql也生效