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

示例

相关推荐
一行玩python11 分钟前
SQLAlchemy,ORM的Python标杆!
开发语言·数据库·python·oracle
MXsoft61831 分钟前
华为服务器(iBMC)硬件监控指标解读
大数据·运维·数据库
TheITSea42 分钟前
云服务器宝塔安装静态网页 WordPress、VuePress流程记录
java·服务器·数据库
王ASC2 小时前
ORA-01461: 仅能绑定要插入 LONG 列的 LONG 值。ojdbc8版本23.2.0.0驱动BUG【已解决】
数据库·sql·oracle
Dlwyz2 小时前
问题: redis-高并发场景下如何保证缓存数据与数据库的最终一致性
数据库·redis·缓存
如意机反光镜裸2 小时前
如何快速将Excel数据导入到SQL Server数据库
数据库
Stara05113 小时前
Git推送+拉去+uwsgi+Nginx服务器部署项目
git·python·mysql·nginx·gitee·github·uwsgi
不爱学习的啊Biao3 小时前
初识mysql数据库
数据库·mysql·oracle
宛唐羁客4 小时前
ODBC连接PostgreSQL数据库后,网卡DOWN后,客户端进程阻塞问题解决方法
网络·数据库
吴半杯4 小时前
Redis-monitor安装与配置
数据库·redis·缓存