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

示例

相关推荐
先吃饱再说9 小时前
存储的进化:从 MySQL 到浏览器缓存,数据到底住在哪?
数据库
Nturmoils9 小时前
字段太多看不全,ksql 的展开模式和输出控制怎么用
数据库·后端
Databend12 小时前
Agent 轨迹分析与归因的数据工程实践
大数据·数据库·agent
这个DBA有点耶12 小时前
SQL改写进阶:标量子查询的“隐形代价”与消除实战
数据库·mysql·架构
smallyoung13 小时前
数据库乐观锁深度解析:MySQL、PostgreSQL 实战 + Spring Boot 集成指南
数据库·mysql·postgresql
parade岁月13 小时前
MySQL JOIN解析:朴实无华但食之有味
数据库·后端
用户31693538118314 小时前
MySQL服务无法启动问题解决全记录
数据库
vivo互联网技术17 小时前
从 10 分钟到 1 秒:ES 深度分页任意跳页的三轮优化实战
服务器·数据库·redis·elasticsearch·深度分页
数据技术说18 小时前
MySQL 迁移实战——如何实现真正的"零改造"平滑切换
mysql
倔强的石头_1 天前
《Kingbase护城河》——猎捕慢查询:执行计划的微观解析与索引调优实战
数据库