【MySQL】库的操作

作者:@阿亮joy.
专栏:《零基础入门MySQL》
座右铭:每个优秀的人都有一段沉默的时光,那段时光是付出了很多努力却得不到结果的日子,我们把它叫做扎根
在这里插入图片描述

目录

    • 库的操作
      • 查看数据库
      • 删除数据库
      • 创建数据库
      • 修改数据库
      • 备份和恢复数据库
      • 查看连接情况
    • 字符集和校验规则
      • 查看系统默认字符集以及校验规则
      • 校验规则对数据库的影响
    • 总结

库的操作

查看数据库

show databases;

#执行结果
+--------------------+
| Database           |
+--------------------+
| information_schema |
| 105_db             |
| my_db              |
| mysql              |
| performance_schema |
| sys                |
+--------------------+
6 rows in set (0.00 sec)

如果在/var/ib/mysql路径下创建一个目录文件,那么这个目录文件也会被当成数据库的,但是不建议这么做!

【MySQL】库的操作_第1张图片

删除数据库

drop database [if exists] db_name;

其中,db_name是要删除的数据库名称。if exists 是一个可选的关键字,如果使用它,当数据库不存在时不会抛出错误。

使用该语句将彻底删除整个数据库,包括其中的所有表、索引、视图、存储过程、触发器等对象,所以在使用之前需要非常谨慎。通常情况下,要先备份要删除的数据库,以防意外发生。

需要注意的是,只有拥有 drop 权限的用户才能执行该语句。

【MySQL】库的操作_第2张图片

创建数据库

create database [if not exists] db_name 
[create_specification [, create_specification ...]]

create_specification:
	[default] character set charset_name
	[default] collate collation_name

注:

  • [] 为可选项
  • character set 指定数据库采用的字符集
  • collate 指定数据库字符集的校验规则
  • 如果没有指定字符集和校验规则,则会使用 MySQL 默认的字符集和校验规则。

查看创建数据库的详细信息

show create database db_name;

【MySQL】库的操作_第3张图片
【MySQL】库的操作_第4张图片

注:MySQL 是大小写不敏感的,所以 SQL 语句中的关键字可以大写,也可以小写。如果要创建的数据库与关键字冲突,可以给数据库名带上反引号 `。

【MySQL】库的操作_第5张图片

修改数据库

alter database db_name
[alter_spacification [,alter_spacification]...]

alter_spacification:
[default] character set charset_name
[default] collate collation_name

注:对数据库的修改主要指的是修改数据库的字符集,校验规则,并不允许修改数据库的名字。

【MySQL】库的操作_第6张图片

备份和恢复数据库

mysqldump -P3306 -u root -p 密码 -B 数据库名 > 数据库备份存储的文件路径

示例:

mysqldump -P3306 -uroot -p -B bin_db > bin.db.sql

【MySQL】库的操作_第7张图片
【MySQL】库的操作_第8张图片

注:bin_db.sql 中的内容都是该数据库使用过的 SQL 语句(创建数据库,建表,导入数据),将这些 SQL 语句全部执行一次就恢复出原来的数据库。除了备份 SQL 语句,还可以直接备份数据库的数据。但是备份 SQL 语句更好,这样可以知道使用数据库时的上下文。

source /var/lib/mysql/bin_db.sql; #还原数据库

【MySQL】库的操作_第9张图片
【MySQL】库的操作_第10张图片

【MySQL】库的操作_第11张图片

如果备份的不是整个数据库,而是其中一张表或者多个数据库,可以采用下面的语句:

#备份多张表
mysqldump -uroot -p 数据库名 表名1 表名2 > D:/mytest.sql
#备份多个数据库
mysqldump -uroot -p -B 数据库名1 数据库名2 ... > 数据库存放路径

注:如果备份一个数据库时,没有带上 -B 选项, 在恢复数据库时,需要先创建空数据库,然后使用数据库,再使用 source 来还原。

查看连接情况

show processlist;

在这里插入图片描述
可以告诉我们当前有哪些用户连接到我们的 MySQL,如果查出某个用户不是你正常登陆的,很有可能你的数据库被人入侵了。以后大家发现自己数据库比较慢时,可以用这个指令来查看数据库连接情况。

字符集和校验规则

MySQL 的字符集是用于定义数据库中存储和操作字符数据的规则集。MySQL 支持多种字符集,如 ASCII、Latin1、UTF-8等。

每个字符集都有一套校验规则,用于定义在特定字符集中哪些字符是有效的,哪些是无效的。MySQL 的校验规则是以校验字符集的方式实现的,即当存储或操作字符数据时,MySQL 将根据所选字符集的校验规则进行验证。校验规则还定义了如何排序和比较字符数据。

注:一般字符集和校验规则是匹配的!设置数据库的字符集和校验规则本质是影响对应数据库内部的表所对应的编码和校验规则。

查看系统默认字符集以及校验规则

variables 是指系统或用户可配置的变量,它们可以在运行时控制 MySQL 的行为和性能。MySQL 中的变量可以分为全局变量和会话变量。

全局变量是在 MySQL 服务器启动时初始化的,并且在整个 MySQL 进程的生命周期中保持不变。例如,可以使用 global 前缀来设置或获取全局变量:

set globalvariable_name = value;
select @@global.variable_name;

会话变量则只与当前会话相关,会话在连接到服务器时启动并在断开连接时结束。可以使用 session 前缀来设置或获取会话变量:

set sessionn variable_name = value;
select @@session.variable_name;

可以通过 show variables 命令来查看当前 MySQL 服务器中所有可配置变量的值和状态。

show variables like 'character_set_database';
show variables like 'collation_database';
show charset; #查看MySQL支持的字符集
show collation; #查看MySQL支持的校验规则

【MySQL】库的操作_第12张图片

【MySQL】库的操作_第13张图片

【MySQL】库的操作_第14张图片

一个字符串可能有多种校验规则,Default collation 是该字符集对应的默认校验规则。

创建数据库时可以指定数据库的字符集和校验规则。如果没有指定字符集和校验规则,则会使用 MySQL 默认的字符集和校验规则;如果指定字符集和校验规则,就会使用指定的字符集和校验规则。

【MySQL】库的操作_第15张图片

校验规则对数据库的影响

  • 创建一个数据库,校验规则使用不区分大小写的 utf8_ general_ci

【MySQL】库的操作_第16张图片
【MySQL】库的操作_第17张图片

【MySQL】库的操作_第18张图片

【MySQL】库的操作_第19张图片

  • 创建一个数据库,校验规则使用 区分大小写的 utf8_bin

【MySQL】库的操作_第20张图片
【MySQL】库的操作_第21张图片
【MySQL】库的操作_第22张图片

总结

本篇博客主要讲解了数据库的查看、删除、创建、修改、备份和恢复、查看数据库连接情况以及字符集和校验规则等等。以上就是本篇博客的全部内容了,如果大家觉得有收获的话,可以点个三连支持一下!谢谢大家啦!❣️

你可能感兴趣的:(零基础入门MySQL,数据库,MySQL,字符集和校验规则,SQL)