【数据库初阶】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)
相关推荐
shelby_loo5 分钟前
在 Alpine Linux 下通过 Docker 部署 Nginx 服务器
linux·服务器·docker
古谷彻6 分钟前
【Linux命令】su、sudo、sudo su、sudo -i、sudo -l的用法和区别
linux·运维·服务器
jjw_zyfx10 分钟前
django StreamingHttpResponse fetchEventSource实现前后端流试返回数据并接收数据的完整详细过程
数据库·django·sqlite
WGS.30 分钟前
Temporary failure resolving ‘security.ubuntu.com‘
linux·ubuntu
码思途远35 分钟前
NXP i.MX8系列平台开发讲解 - 5.3 调试篇(二) - 掌握Dynamic debug调试
linux·nxp·i.mx8·i.mx8m
轻口味36 分钟前
【每日学点鸿蒙知识】无障碍、getLastLocation、蓝牙问题、卡片大小、关系型数据库等
数据库·华为·harmonyos
tmacfrank2 小时前
Kotlin 协程基础知识总结七 —— Flow 与 Jetpack Paging3
android·开发语言·kotlin
我是阿呆同学2 小时前
Linux平台下实现的小程序-进度条
linux·小程序
Gauss松鼠会2 小时前
数据库高安全—角色权限:角色创建角色管理
数据库·人工智能·windows·安全·华为云·gaussdb
天地人-神君2 小时前
centos双网卡不能上网
linux·运维·centos