🎉博主首页:
有趣的中国人
🎉专栏首页:
数据库初阶
🎉其它专栏:
C++初阶 |
C++进阶 |
初阶数据结构
亲爱的小伙伴们,大家好!在这篇文章中,我们将深入浅出地为大家讲解 Linux中库的基础操作 帮助您轻松入门,快速掌握核心概念。
如果文章对您有所启发或帮助,请别忘了 点赞 👍、收藏 🌟、留言 📝 支持!您的每一份鼓励,都是我持续创作的源动力。让我们携手前行,共同进步!
文章目录
- @[toc]
- 1. 创建数据库
- ==<font color = blue>🎧1.1 创建语法🎧==
- ==<font color = blue>🎧1.2 字符集和校验集🎧==
- <font color = red>查看字符集和校验集的对应关系
- <font color = red> 查看不同校验集对数据库的影响
- 2. 数据库的删改查
- ==<font color = blue>🎧2.1 删除数据库🎧==
- ==<font color = blue>🎧2.2 查询数据库🎧==
- ==<font color = blue>🎧2.3 修改数据库🎧==
- 3. 数据库的备份和恢复
- ==<font color = blue>🎧3.1 数据库的备份🎧==
- ==<font color = blue>🎧3.2 还原数据库🎧==
- <font color = red> 注意事项
- <font color = red> 查看链接情况
文章目录
- @[toc]
- 1. 创建数据库
- ==<font color = blue>🎧1.1 创建语法🎧==
- ==<font color = blue>🎧1.2 字符集和校验集🎧==
- <font color = red>查看字符集和校验集的对应关系
- <font color = red> 查看不同校验集对数据库的影响
- 2. 数据库的删改查
- ==<font color = blue>🎧2.1 删除数据库🎧==
- ==<font color = blue>🎧2.2 查询数据库🎧==
- ==<font color = blue>🎧2.3 修改数据库🎧==
- 3. 数据库的备份和恢复
- ==<font color = blue>🎧3.1 数据库的备份🎧==
- ==<font color = blue>🎧3.2 还原数据库🎧==
- <font color = red> 注意事项
- <font color = red> 查看链接情况
上一篇文章中,博主介绍了 :
- 数据库基础知识;
- 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
(区分大小写)。 - 下面关于表的操作我们先暂时看一下,下篇文章会细讲。
- 创建
test1
数据库:
CREATE DATABASE IF NOT EXISTS test1;
- 创建
test2
数据库:
CREATE DATABASE IF NOT EXISTS test2 COLLATE utf8mb4_bin;
- 在
test1
数据库中创建一个person
表,向表中插入元素a A b B
:
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');
- 类似地,在
test2
数据库中创建一个person
表,向表中插入元素a A b B
:
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');
- 对
test1
和test2
分别进行排序:
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
- 例如:
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)