数据库之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(意义)
_aiAccent-insensitive(不区分重音,相当于不知道关键字
_asAccent-sensitive(区分重音)
_ciCase-insensitive(不区分大小写)
_csCase-sensitive(区分大小写)
_ksCase-sensitive(区分假名)
_binBinary(二进制)

基础操作

查看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;

在这里插入图片描述

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 VERSION();

在这里插入图片描述

查看当前用户

mysql> SELECT USER();

在这里插入图片描述

执行对应系统命令

语法格式

SYSTEM <命令>

作用:在mysql中执行一些Linux上的操作命令

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值