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`表示如果数据库不存在,就创建该数据库

  • 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 备份数据库的路径;

示例

相关推荐
学编程的小程17 小时前
从“单模冲锋”到“多模共生”——2026 国产时序数据库新物种进化图谱
数据库·时序数据库
卓怡学长17 小时前
m111基于MVC的舞蹈网站的设计与实现
java·前端·数据库·spring boot·spring·mvc
存在的五月雨17 小时前
Redis的一些使用
java·数据库·redis
小冷coding1 天前
【MySQL】MySQL 插入一条数据的完整流程(InnoDB 引擎)
数据库·mysql
鲨莎分不晴1 天前
Redis 基本指令与命令详解
数据库·redis·缓存
专注echarts研发20年1 天前
工业级 Qt 业务窗体标杆实现・ResearchForm 类深度解析
数据库·qt·系统架构
周杰伦的稻香1 天前
MySQL中常见的慢查询与优化
android·数据库·mysql
冉冰学姐1 天前
SSM学生社团管理系统jcjyw(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面
数据库·ssm 框架·学生社团管理系统·多角色管理
nvd111 天前
深入分析:Pytest异步测试中的数据库会话事件循环问题
数据库·pytest
appearappear1 天前
如何安全批量更新数据库某个字段
数据库