MySQL 库的操作

创建数据库
sql 复制代码
create database [if not exits] 数据库名 [create_specification] [
create_specification] ...
create_specification:
[DEFAULT] character set charset_name / charset charset_name
[DEFAULT] collate collation_name 

说明:

  • [ ] 中的内容是可选项 , if not exists表示如果数据库不存在,就创建该数据库
  • character set / charset: 指定数据库采用的字符集
  • collate: 指定数据库字符集的校验规则

字符集是一组字符的集合,每个字符都有一个唯一的编码。在数据库中,字符集决定了如何存储和检索字符数据。例如,UTF-8是一种广泛使用的字符集,它可以表示世界上几乎所有的字符,包括英文字母、数字、标点符号以及各种特殊字符。

校验集是用来比较和排序字符数据的规则。它定义了如何比较两个字符的大小,以及如何对字符数据进行排序。例如,utf8_general_ci是一种校验集,它不区分大小写,适用于大多数欧洲语言。

字符集决定了如何存储和检索字符数据,即存储数据,而校验集决定了如何比较和排序字符数据,即读取数据。

查看系统支持的字符集:

sql 复制代码
show character set;
show charset;

查看系统支持的校验集:

sql 复制代码
show collation;

例如:

而当我们创建数据库没有指定字符集和校验规则时,系统使用默认字符集 utf8mb3 ,校验规则是utf8mb3_ general_ci。实际上utf8是utf8mb3的别名,二者无区别。
查看系统默认的字符集

sql 复制代码
show variables like 'character_set_database';

查看系统默认的校验集

sql 复制代码
show variables like 'collation_database';
查看所有数据库
sql 复制代码
show databases;

如上例创建了test1数据库,可以通过show databases查看。

实际上,一个数据库对操作系统而言,本质是一个目录,在Linux系统中,/var/lib/mysql是MySQL的数据目录,它包含了MySQL数据库的所有文件,包括数据文件、配置文件和日志文件等。

我们可以查看 /var/lib/mysql 目录下的文件,发现也多出了一个 test1 数据库。

进入数据库
sql 复制代码
use 数据库名;
查看当前位于哪一个数据库
cpp 复制代码
select database();

如上例进入了test数据库,并通过select database()查看当前位置。

查看哪些用户连接MySQL
sql 复制代码
show processlist;
删除数据库
sql 复制代码
drop database [if exists] 数据库名;


执行删除之后的结果 :

  • 数据库内部看不到对应的数据库
  • 对应的数据库文件夹被删除,级联删除,里面的数据表全部被删
修改数据库

修改数据库主要是指修改数据库使用的字符集和校验集。

sql 复制代码
alter database 数据库名
[alter_spacification [,alter_spacification]...]
alter_spacification:
[DEFAULT] character set charset_name / charset charset_name
[DEFAULT] collate collation_name

实例: 将 test1 数据库字符集改成 gbk,校验集改成 gbk_chinese_ci 。

拷贝数据库
bash 复制代码
mysqldump [-P 端口名 -u 用户名 -p 密码] -B 数据库名 > 备份文件路径

注意:该指令要退出mysql连接在bash中执行,而不是数据库中。
例如,如果想备份名为 test1 的数据库到 ~/mysqltest 路径下,您可以使用以下命令:

bash 复制代码
mysqldump -B test1 > ~/mysqltest/test1.sql

该命令就会在 ~/mysqltest 路径下创建 test1.sql 文件并将 test1 数据库拷贝到 ~/mysqltest/test1.sql 文件下,.sql后缀表明该文件是备份数据库,实际上可加也可不加,主要是方便表示文件类型,我们可以通过 vim ~/mysqltest/test1.sql 来查看 test1.sql 文件有什么内容。


可以发现 test1.sql 文件除了拷贝数据库,还保留了整个数据库的SQL语句。
如果我们在 mysql 中将 test1 数据库删除了,就可以通过以下命令还原,注意的是该命令在 mysql 中执行。

sql 复制代码
source 备份数据库的路径;

示例

相关推荐
希忘auto9 分钟前
详解MySQL安装
java·mysql
运维佬17 分钟前
在 MySQL 8.0 中,SSL 解密失败,在使用 SSL 加密连接时出现了问题
mysql·adb·ssl
Leo.yuan22 分钟前
数据量大Excel卡顿严重?选对报表工具提高10倍效率
数据库·数据分析·数据可视化·powerbi
Runing_WoNiu30 分钟前
MySQL与Oracle对比及区别
数据库·mysql·oracle
天道有情战天下1 小时前
mysql锁机制详解
数据库·mysql
看山还是山,看水还是。1 小时前
Redis 配置
运维·数据库·redis·安全·缓存·测试覆盖率
谷新龙0011 小时前
Redis运行时的10大重要指标
数据库·redis·缓存
CodingBrother1 小时前
MySQL 中单列索引与联合索引分析
数据库·mysql
精进攻城狮@1 小时前
Redis缓存雪崩、缓存击穿、缓存穿透
数据库·redis·缓存
小酋仍在学习1 小时前
光驱验证 MD5 校验和
数据库·postgresql