【mysql】1.库的操作

目录

一、创建数据库

[1. 基本创建与查看](#1. 基本创建与查看)

[2. 编码与校验集](#2. 编码与校验集)

[3. 指定字符集创建数据库](#3. 指定字符集创建数据库)

[4. 不同校验集的对比](#4. 不同校验集的对比)

二、其他数据库操作

[1. 切换与查看当前数据库](#1. 切换与查看当前数据库)

[2. 删除数据库](#2. 删除数据库)

[3. 修改数据库字符集](#3. 修改数据库字符集)

[4. 查看数据库的创建信息](#4. 查看数据库的创建信息)

[5. 查看连接状态](#5. 查看连接状态)

三、数据库备份与恢复

[1. 备份数据库](#1. 备份数据库)

[2. 恢复数据库](#2. 恢复数据库)


数据库文件默认存储在 /var/lib/mysql 目录下。可以使用 sudo ls -la 查看该目录下的文件。

一、创建数据库

1. 基本创建与查看

复制代码
-- 创建数据库
CREATE DATABASE database1;

-- 查看所有数据库
SHOW DATABASES;

避免重复创建

复制代码
CREATE DATABASE database1 IF NOT EXISTS;

如果数据库已存在,不会报错,只会显示警告。

注意 :数据库本质上就是文件系统中的目录,在 /var/lib/mysql 下可以看到对应的文件夹。虽然可以通过直接操作文件系统来创建或删除数据库,但严重不建议这样做,可能导致数据不一致。

2. 编码与校验集

数据库有两个重要的编码设置:

  • 编码集(charset):数据库存储数据时使用的编码

  • 校验集(collation):读取数据时用于比较的编码规则

重要:数据库操作时,应保证编码集和校验集相互匹配。

复制代码
-- 查看支持的编码集
SHOW CHARSET;

-- 查看支持的校验集
SHOW COLLATION;

在旧版本 MySQL 中,可以通过 ls -la /var/lib/mysql/数据库名/ 查看数据库的字符集设置(新版本可能不支持)。

3. 指定字符集创建数据库

复制代码
CREATE DATABASE d2 CHARSET=utf8 COLLATE=utf8_general_ci;

4. 不同校验集的对比

创建两个使用不同校验集的数据库:

复制代码
-- test1 使用 utf8_general_ci(不区分大小写)
CREATE DATABASE test1 COLLATE=utf8_general_ci;

-- test2 使用 utf8_bin(区分大小写)
CREATE DATABASE test2 COLLATE=utf8_bin;

在 test1 中操作

复制代码
USE test1;
CREATE TABLE person(name VARCHAR(20));
INSERT INTO person(name) VALUES('A');
INSERT INTO person(name) VALUES('a');
SELECT * FROM person WHERE name = 'a';

结果会同时查出 aA(因为 utf8_general_ci 不区分大小写)。

在 test2 中操作

复制代码
USE test2;
CREATE TABLE person(name VARCHAR(20));
INSERT INTO person(name) VALUES('A');
INSERT INTO person(name) VALUES('a');
SELECT * FROM person WHERE name = 'a';

结果只查出 a(因为 utf8_bin 区分大小写)。

结论:校验集的选择会影响查询结果的匹配规则。

二、其他数据库操作

1. 切换与查看当前数据库

复制代码
-- 切换到指定数据库
USE test2;

-- 查看当前所在的数据库
SELECT DATABASE();

2. 删除数据库

复制代码
DROP DATABASE d1;

3. 修改数据库字符集

复制代码
ALTER DATABASE d2 CHARSET=gbk COLLATE=gbk_chinese_ci;

4. 查看数据库的创建信息

复制代码
SHOW CREATE DATABASE test1;

输出示例:

复制代码
+----------+------------------------------------------------------------------------------------------+
| Database | Create Database                                                                          |
+----------+------------------------------------------------------------------------------------------+
| test1    | CREATE DATABASE `test1` /*!40100 DEFAULT CHARACTER SET utf8mb3 */ /*!80016 DEFAULT ENCRYPTION='N' */ |
+----------+------------------------------------------------------------------------------------------+

说明/*! ... */ 类似于条件编译,表示在指定版本号以上才执行其中的指令。

5. 查看连接状态

复制代码
SHOW PROCESSLIST;

三、数据库备份与恢复

1. 备份数据库

shell 命令行中执行(不是在 MySQL 客户端内):

复制代码
mysqldump -uroot -p -B test1 > /home/xc/code/mysql/2操作/back.sql
  • -B:指定要备份的数据库名

  • >:将备份内容重定向到指定文件

2. 恢复数据库

MySQL 客户端中执行:

复制代码
SOURCE /home/xc/code/mysql/2操作/back.sql;

原理 :数据库备份时存储的是历史操作指令(如 CREATE DATABASECREATE TABLEINSERT 等)。恢复时,就是将这些指令重新执行一遍。

相关推荐
笨蛋不要掉眼泪5 小时前
Mysql架构揭秘:update语句的执行流程
数据库·mysql·架构
万邦科技Lafite5 小时前
京东item_get接口实战案例:实时商品价格监控全流程解析
java·开发语言·数据库·python·开放api·淘宝开放平台
秋95 小时前
ruoyi项目更换为mysql9.7.0数据库
数据库
Andya_net6 小时前
MySQL | MySQL 8.0 权限管理实践-精确赋予库、表只读等权限
android·数据库·mysql
筑梦之路7 小时前
harbor数据库报错权限异常如何处理——筑梦之路
数据库·harbor
czlczl200209257 小时前
理解 MySQL 行锁:两阶段锁协议与热点更新优化
数据库·mysql
AllData公司负责人8 小时前
通过Postgresql同步到Doris,全视角演示AllData数据中台核心功能效果,涵盖:数据入湖仓,数据同步,数据处理,数据服务,BI可视化驾驶舱
java·大数据·数据库·数据仓库·人工智能·python·postgresql
哆啦A梦15888 小时前
20, Springboot3+vue3实现前台轮播图和详情页的设计
javascript·数据库·spring boot·mybatis·vue3
渣渣盟9 小时前
Mysql入门到精通全集(SQL99)包含关系运算,软考数据库工程师复习首选
数据库·mysql·oracle
dishugj9 小时前
HANA 数据库的核心进程架构
数据库