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

示例

相关推荐
怕什么真理无穷7 分钟前
mysql server 9.4 windows安装教程(sqlyog 下载)
数据库
Olrookie13 分钟前
MySQL运维常用SQL
运维·数据库·sql·mysql·dba
数据库生产实战23 分钟前
ORACLE 19C ADG环境 如何快速删除1.8TB的分区表?有哪些注意事项?
数据库·oracle
blackorbird40 分钟前
使用 Overpass Turbo 查找监控摄像头
运维·服务器·数据库·windows
IT永勇44 分钟前
SQLite数据库基本操作
数据库·sqlite·嵌入式开发·增删改查·关系型数据库
洋不写bug1 小时前
数据库的创建,查看,修改,删除,字符集编码和校验操作
android·数据库·adb
想ai抽1 小时前
吃透大数据算法-算法地图(备用)
大数据·数据库·spark
weixin_307779131 小时前
Clickhouse导出库的表、视图、用户和角色定义的SQL语句
开发语言·数据库·算法·clickhouse·自动化
流星白龙1 小时前
【Qt】7.信号和槽_connect函数用法(1)
开发语言·数据库·qt
码界奇点1 小时前
平替MongoDB金仓多模数据库在电子证照国产化中的实践与优势
数据库·mongodb·社交电子·里氏替代原则