【数据库初阶】Linux中库的基础操作


🎉博主首页: 有趣的中国人

🎉专栏首页: 数据库初阶

🎉其它专栏: C++初阶 | C++进阶 | 初阶数据结构

亲爱的小伙伴们,大家好!在这篇文章中,我们将深入浅出地为大家讲解 Linux中库的基础操作 帮助您轻松入门,快速掌握核心概念。

如果文章对您有所启发或帮助,请别忘了 点赞 👍、收藏 🌟、留言 📝 支持!您的每一份鼓励,都是我持续创作的源动力。让我们携手前行,共同进步!

### 文章目录

  • [@[toc]](#文章目录 @[toc] 1. 创建数据库 ==🎧1.1 创建语法🎧== ==🎧1.2 字符集和校验集🎧== 查看字符集和校验集的对应关系 查看不同校验集对数据库的影响 2. 数据库的删改查 ==🎧2.1 删除数据库🎧== ==🎧2.2 查询数据库🎧== ==🎧2.3 修改数据库🎧== 3. 数据库的备份和恢复 ==🎧3.1 数据库的备份🎧== ==🎧3.2 还原数据库🎧== 注意事项 查看链接情况)
  • [1. 创建数据库](#文章目录 @[toc] 1. 创建数据库 ==🎧1.1 创建语法🎧== ==🎧1.2 字符集和校验集🎧== 查看字符集和校验集的对应关系 查看不同校验集对数据库的影响 2. 数据库的删改查 ==🎧2.1 删除数据库🎧== ==🎧2.2 查询数据库🎧== ==🎧2.3 修改数据库🎧== 3. 数据库的备份和恢复 ==🎧3.1 数据库的备份🎧== ==🎧3.2 还原数据库🎧== 注意事项 查看链接情况)
  • [==<font color = blue>🎧1.1 创建语法🎧==](#文章目录 @[toc] 1. 创建数据库 ==🎧1.1 创建语法🎧== ==🎧1.2 字符集和校验集🎧== 查看字符集和校验集的对应关系 查看不同校验集对数据库的影响 2. 数据库的删改查 ==🎧2.1 删除数据库🎧== ==🎧2.2 查询数据库🎧== ==🎧2.3 修改数据库🎧== 3. 数据库的备份和恢复 ==🎧3.1 数据库的备份🎧== ==🎧3.2 还原数据库🎧== 注意事项 查看链接情况)
  • [==<font color = blue>🎧1.2 字符集和校验集🎧==](#文章目录 @[toc] 1. 创建数据库 ==🎧1.1 创建语法🎧== ==🎧1.2 字符集和校验集🎧== 查看字符集和校验集的对应关系 查看不同校验集对数据库的影响 2. 数据库的删改查 ==🎧2.1 删除数据库🎧== ==🎧2.2 查询数据库🎧== ==🎧2.3 修改数据库🎧== 3. 数据库的备份和恢复 ==🎧3.1 数据库的备份🎧== ==🎧3.2 还原数据库🎧== 注意事项 查看链接情况)
  • [<font color = red>查看字符集和校验集的对应关系](#文章目录 @[toc] 1. 创建数据库 ==🎧1.1 创建语法🎧== ==🎧1.2 字符集和校验集🎧== 查看字符集和校验集的对应关系 查看不同校验集对数据库的影响 2. 数据库的删改查 ==🎧2.1 删除数据库🎧== ==🎧2.2 查询数据库🎧== ==🎧2.3 修改数据库🎧== 3. 数据库的备份和恢复 ==🎧3.1 数据库的备份🎧== ==🎧3.2 还原数据库🎧== 注意事项 查看链接情况)
  • [<font color = red> 查看不同校验集对数据库的影响](#文章目录 @[toc] 1. 创建数据库 ==🎧1.1 创建语法🎧== ==🎧1.2 字符集和校验集🎧== 查看字符集和校验集的对应关系 查看不同校验集对数据库的影响 2. 数据库的删改查 ==🎧2.1 删除数据库🎧== ==🎧2.2 查询数据库🎧== ==🎧2.3 修改数据库🎧== 3. 数据库的备份和恢复 ==🎧3.1 数据库的备份🎧== ==🎧3.2 还原数据库🎧== 注意事项 查看链接情况)
  • [2. 数据库的删改查](#文章目录 @[toc] 1. 创建数据库 ==🎧1.1 创建语法🎧== ==🎧1.2 字符集和校验集🎧== 查看字符集和校验集的对应关系 查看不同校验集对数据库的影响 2. 数据库的删改查 ==🎧2.1 删除数据库🎧== ==🎧2.2 查询数据库🎧== ==🎧2.3 修改数据库🎧== 3. 数据库的备份和恢复 ==🎧3.1 数据库的备份🎧== ==🎧3.2 还原数据库🎧== 注意事项 查看链接情况)
  • [==<font color = blue>🎧2.1 删除数据库🎧==](#文章目录 @[toc] 1. 创建数据库 ==🎧1.1 创建语法🎧== ==🎧1.2 字符集和校验集🎧== 查看字符集和校验集的对应关系 查看不同校验集对数据库的影响 2. 数据库的删改查 ==🎧2.1 删除数据库🎧== ==🎧2.2 查询数据库🎧== ==🎧2.3 修改数据库🎧== 3. 数据库的备份和恢复 ==🎧3.1 数据库的备份🎧== ==🎧3.2 还原数据库🎧== 注意事项 查看链接情况)
  • [==<font color = blue>🎧2.2 查询数据库🎧==](#文章目录 @[toc] 1. 创建数据库 ==🎧1.1 创建语法🎧== ==🎧1.2 字符集和校验集🎧== 查看字符集和校验集的对应关系 查看不同校验集对数据库的影响 2. 数据库的删改查 ==🎧2.1 删除数据库🎧== ==🎧2.2 查询数据库🎧== ==🎧2.3 修改数据库🎧== 3. 数据库的备份和恢复 ==🎧3.1 数据库的备份🎧== ==🎧3.2 还原数据库🎧== 注意事项 查看链接情况)
  • [==<font color = blue>🎧2.3 修改数据库🎧==](#文章目录 @[toc] 1. 创建数据库 ==🎧1.1 创建语法🎧== ==🎧1.2 字符集和校验集🎧== 查看字符集和校验集的对应关系 查看不同校验集对数据库的影响 2. 数据库的删改查 ==🎧2.1 删除数据库🎧== ==🎧2.2 查询数据库🎧== ==🎧2.3 修改数据库🎧== 3. 数据库的备份和恢复 ==🎧3.1 数据库的备份🎧== ==🎧3.2 还原数据库🎧== 注意事项 查看链接情况)
  • [3. 数据库的备份和恢复](#文章目录 @[toc] 1. 创建数据库 ==🎧1.1 创建语法🎧== ==🎧1.2 字符集和校验集🎧== 查看字符集和校验集的对应关系 查看不同校验集对数据库的影响 2. 数据库的删改查 ==🎧2.1 删除数据库🎧== ==🎧2.2 查询数据库🎧== ==🎧2.3 修改数据库🎧== 3. 数据库的备份和恢复 ==🎧3.1 数据库的备份🎧== ==🎧3.2 还原数据库🎧== 注意事项 查看链接情况)
  • [==<font color = blue>🎧3.1 数据库的备份🎧==](#文章目录 @[toc] 1. 创建数据库 ==🎧1.1 创建语法🎧== ==🎧1.2 字符集和校验集🎧== 查看字符集和校验集的对应关系 查看不同校验集对数据库的影响 2. 数据库的删改查 ==🎧2.1 删除数据库🎧== ==🎧2.2 查询数据库🎧== ==🎧2.3 修改数据库🎧== 3. 数据库的备份和恢复 ==🎧3.1 数据库的备份🎧== ==🎧3.2 还原数据库🎧== 注意事项 查看链接情况)
  • [==<font color = blue>🎧3.2 还原数据库🎧==](#文章目录 @[toc] 1. 创建数据库 ==🎧1.1 创建语法🎧== ==🎧1.2 字符集和校验集🎧== 查看字符集和校验集的对应关系 查看不同校验集对数据库的影响 2. 数据库的删改查 ==🎧2.1 删除数据库🎧== ==🎧2.2 查询数据库🎧== ==🎧2.3 修改数据库🎧== 3. 数据库的备份和恢复 ==🎧3.1 数据库的备份🎧== ==🎧3.2 还原数据库🎧== 注意事项 查看链接情况)
  • [<font color = red> 注意事项](#文章目录 @[toc] 1. 创建数据库 ==🎧1.1 创建语法🎧== ==🎧1.2 字符集和校验集🎧== 查看字符集和校验集的对应关系 查看不同校验集对数据库的影响 2. 数据库的删改查 ==🎧2.1 删除数据库🎧== ==🎧2.2 查询数据库🎧== ==🎧2.3 修改数据库🎧== 3. 数据库的备份和恢复 ==🎧3.1 数据库的备份🎧== ==🎧3.2 还原数据库🎧== 注意事项 查看链接情况)
  • [<font color = red> 查看链接情况](#文章目录 @[toc] 1. 创建数据库 ==🎧1.1 创建语法🎧== ==🎧1.2 字符集和校验集🎧== 查看字符集和校验集的对应关系 查看不同校验集对数据库的影响 2. 数据库的删改查 ==🎧2.1 删除数据库🎧== ==🎧2.2 查询数据库🎧== ==🎧2.3 修改数据库🎧== 3. 数据库的备份和恢复 ==🎧3.1 数据库的备份🎧== ==🎧3.2 还原数据库🎧== 注意事项 查看链接情况)

上一篇文章中,博主介绍了 :

  • 数据库基础知识;
  • Linux系统中如何理解数据库;

建议将上一篇文章看完之后再来看这篇文章,链接如下:

【数据库初阶】数据库基础知识

那么接下来正文开始:

1. 创建数据库

🎧1.1 创建语法🎧

  • 数据库的创建方法很简单,首先输入 mysql -uroot -p, 然后输入密码进入到数据库;
  • 然后输入:CREATE DATABASE [IF NOT EXISTS] db_name [create_specification [, create_specification] ...] 就可以创建数据库;
    • 其中中括号的内容是可以省略的, IF NOT EXISTS 表示的是如果不存在就创建;
    • db_name 表示的是你要创建的数据库的名称;
    • create_specification 表示的是字符集和校验集,什么是字符集和校验集呢,待会再说。
  • 上篇文章讲到,在Linux中创建数据库本质上就是在/var/lib/mysql这个路径中创建一个目录,因此在create的时候我们可以查看一下。

🎧1.2 字符集和校验集🎧

  • 我们使用数据库大体分为两个操作,一个是向数据库中写入 ,另一个是读取数据库中的内容
  • 其中写入 操作所用到的叫字符集读取 操作所用到的就是校验集
  • 这里要注意的是,在 /etc/my.cnf 这个配置文件中有一个默认字符集,如果我们在创建数据库的时候不做特殊说明,字符集就是继承配置文件中的字符集

查看字符集和校验集的对应关系

  • 在MySQL中字符集和校验集是有对应关系的;
  • 可以先输入 show variables like 'character_set_database';查看系统默认字符集:
  • 在输入 show variables like 'collation_database'; 查看系统默认校验集:
  • 输入 show charset; 查看系统所有字符集:
  • 类似的,输入 show collation; 查看所有校验集:

查看不同校验集对数据库的影响

  • 先创建两个数据库,其中一个叫test1,另一个叫test2
  • 他们的字符集都是utf8mb4,让test1的校验集是默认的(不区分大小写 ),让test2的校验集是utf8mb4_bin(区分大小写)。
  • 下面关于表的操作我们先暂时看一下,下篇文章会细讲。
  1. 创建 test1 数据库:
sql 复制代码
CREATE DATABASE IF NOT EXISTS test1; 
  1. 创建 test2 数据库:
sql 复制代码
CREATE DATABASE IF NOT EXISTS test2 COLLATE utf8mb4_bin;
  1. test1数据库中创建一个person表,向表中插入元素a A b B
sql 复制代码
use test1;
create table person(name varchar(20));
insert into person values('a');
insert into person values('A');
insert into person values('b');
insert into person values('B');
  1. 类似地,在test2数据库中创建一个person表,向表中插入元素a A b B
sql 复制代码
use test2;
create table person(name varchar(20));
insert into person values('a');
insert into person values('A');
insert into person values('b');
insert into person values('B');
  1. test1test2分别进行排序
sql 复制代码
select * from perosn order by name;
use test2;
select * from person order by name;

2. 数据库的删改查

🎧2.1 删除数据库🎧

  • 删除数据库的语法 : DROP DATABASE [IF EXISTS] db_ name;

执行删除后的结果:

  • 数据库内部看不到对应的数据库;
  • 对应的数据库文件夹被删除,里面的数据表全部被删;
  • 因此不要轻易删除数据库!!!

🎧2.2 查询数据库🎧

  • 查看数据库的语法:show databases;

  • 查看当前我在哪个数据库中:select database();,这个database()相当于是函数,功能类似于pwd

  • 查看创建数据库细节的语法:show create database 数据库名,例如:

    • MySQL 建议我们关键字使用大写,但是不是必须的;
    • 数据库名字的反引号``,是为了防止使用的数据库名刚好是关键字;
    • /*!40100 default.... */ 这个不是注释,表示当前mysql版本大于4.01版本,就执行这句话。

🎧2.3 修改数据库🎧

  • 语法:ALTER DATABASE db_name [alter_spacification [,alter_spacification]...]
  • 一般改的就是字符集和校验集,例如:
    • alter database test3 charset=gbk;
    • 再输入show create database test3; 查看一下创建细节:

3. 数据库的备份和恢复

🎧3.1 数据库的备份🎧

  • 一般情况下,不要轻易删除数据库,如果真要删除,请务必要进行备份!
  • 但是不要把/var/lib/mysql路径下的数据库进行拷贝,这样做不太好;
  • 最好用数据库本身自带的备份语法,且这行命令要在shell中输入,不是在MySQL中输入mysqldump -P3306 -u root -p 密码 -B 数据库名 > 数据库备份存储的文件路径,例如:mysqldump -P3306 -uroot -p -B test1 > /home/dsj/mysql/backup_test2.sql
  • 查看一下备份文件:
  • 可以发现这个备份文件存储了我们对这个数据库的所有操作
  • 而不是单纯的将这个数据库的目录拷贝过来。

🎧3.2 还原数据库🎧

  • 还原的语法:mysql> source PATH;
    • 这个PATH就是刚才备份的路径。
  • 需要注意的是,还原要进入数据库操作而不是在shell中操作
  • 例如:mysql> source /home/dsj/mysql/backup_test2.sql;
  • 值得注意的是,还原也不是直接把文件给拖过来,而是重新执行一遍对此数据库的所有操作。

注意事项

  • 如果备份的不是整个数据库,而是其中的一张表,怎么做?
    • mysqldump -u root -p 数据库名 表名1 表名2 > PATH,例如:
    • mysqldump -uroot -p -P3306 test1 person > /home/dsj/mysql/backup_table_person.sql
  • 如何同时备份多个数据库呢?

    • mysqldump -u root -p 数据库名 表名1 表名2 > PATH
  • 如果备份一个数据库时,没有带上-B参数, 在恢复数据库时,需要先创建空数据库 ,然后使用数据库,再使用source来还原

    • 因为实际上没有带 -B 参数,在备份文件中是不存在create database 的语句的,其他并没有什么不同,可以来看一下:

查看链接情况

  • 语法:show processlist
  • 例如:
sql 复制代码
mysql> show processlist;
+----+-----------------+-----------+-------+---------+---------+------------------------+------------------+
| Id | User            | Host      | db    | Command | Time    | State                  | Info             |
+----+-----------------+-----------+-------+---------+---------+------------------------+------------------+
|  5 | event_scheduler | localhost | NULL  | Daemon  | 6664860 | Waiting on empty queue | NULL             |
| 74 | root            | localhost | test2 | Query   |       0 | init                   | show processlist |
+----+-----------------+-----------+-------+---------+---------+------------------------+------------------+
2 rows in set, 1 warning (0.00 sec)
相关推荐
ruleslol4 小时前
MySQL的段、区、页、行 详解
数据库·mysql
天若有情6734 小时前
校园二手交易系统实战开发全记录(vue+SpringBoot+MySQL)
vue.js·spring boot·mysql
正在学习前端的---小方同学4 小时前
Harbor部署教程
linux·运维
while(1){yan}5 小时前
MyBatis Generator
数据库·spring boot·java-ee·mybatis
alexhilton5 小时前
Jetpack Compose内部的不同节点类型
android·kotlin·android jetpack
それども5 小时前
MySQL affectedRows 计算逻辑
数据库·mysql
是小章啊5 小时前
MySQL 之SQL 执行规则及索引详解
数据库·sql·mysql
富士康质检员张全蛋5 小时前
JDBC 连接池
数据库
yangminlei5 小时前
集成Camunda到Spring Boot项目
数据库·oracle
Sean X6 小时前
Ubuntu24.04安装向日葵
linux·ubuntu