当前位置: 首页 > news >正文

【MySQL】库的操作

目录

一、查看和进入数据库

1.1 查看数据库

1.2 进入数据库

1.3 查看当前正在使用的数据库 

二、创建数据库

三、字符集和校验规则

3.1 查看系统默认字符集和校验规则

3.2 查看数据库支持的字符集

3.3 查看数据库支持的校验规则

3.4 校验规则对数据库的影响

四、删除数据库

五、修改数据库

六、备份和恢复数据库

6.1 备份数据库

6.2 恢复数据库 

七、查看数据库连接情况


一、查看和进入数据库

1.1 查看数据库

查看数据库的语句:

show databases;

例如:

就能够查看当前的所有数据库

还可以显示某个数据库在被创建时的创建语句:

show create database 数据库名;

例如:

可以看到CREATE和DATABASE是大写的,因为MySQL建议将关键字大写,但并没有作语法上的强制要求。数据库名两侧的反引号用于在数据库名与关键字一致时进行区分,但一般不建议用关键字作为数据库名

1.2 进入数据库

要进入某个数据库,语法为:

use 数据库名;

 

1.3 查看当前正在使用的数据库 

若要查看自己当前正在使用的数据库,则使用如下语句:

select database();

 


二、创建数据库

创建数据库的语法:

create database [if not exists] 数据库名 [字符集、校验规则];

其中:

  • []内部的是可选项
  • if not exists 说明如果数据库不存在就创建,存在则不会创建
  • create_specification是在创建数据库时可选的字符集或校验规则

例如我们创建一个名为temp的数据库:

当我们没有指定数据库的字符集和校验规则时,默认字符集为utf8,校验规则为utf8_general_ci(不区分大小写)

我们创建的数据库都存放在配置文件的默认保存路径当中,输入vim /etc/my.cnf 即可打开配置文件

 

进入该路径,查看当前路径下的所有文件

创建数据库,本质就是在对应路径下创建一个目录,因此如果我们手动在该路径下创建一个目录,在查看数据库时也能看到它。但是绝对不要用这种方式创建数据库!


三、字符集和校验规则

字符集就像我们使用的语言,如果一段数据是用中文写的,那就无法用英文来读取

创建数据库时存在字符集和校验规则。字符集是数据库未来在存储数据时采用的编码格式,校验规则是读取数据库内容时采用的编码格式

3.1 查看系统默认字符集和校验规则

show variables like 'character_set_database';
show variables like 'collation_database';

可以看到默认字符集和校验规则就是utf8和utf8_general_ci

3.2 查看数据库支持的字符集

show charset;

3.3 查看数据库支持的校验规则

show collation;

3.4 校验规则对数据库的影响

在创建数据库时,若校验规则设置为utf8_ general_ ci则不区分大小写,设置为utf8_bin则区分大小写。此处我们以utf8_ general_ ci为例

首先创建数据库,校验规则设置为utf8_ general_ ci

create database temp collate utf8_general_ci;

进入该数据库,创建一张数据表(表操作在后续文章中会讲到)

然后向表中插入一些大小写不同的数据:

接着我们在表中进行查询:

发现虽然我们查询的是小写的a,但大写的A也包含在内。如果前面在创建数据库时设置为区分大小写的话就不会出现这种情况

除了查询,是否区分大小写也会影响到数据的排序情况,例如:

若不区分大小写,那么就按照字母的顺序排序,与大小写无关;若区分大小写,则大写字母和小写字母分别排序,排序结果为A B a b


四、删除数据库

删除数据库的语法:

drop database [if exists] 数据库名;

删除数据库后,数据库在对应路径下的文件夹被删除,内部的数据表也全部删除,MySQL内部也看不到该数据库了。所以删除数据库需谨慎


五、修改数据库

我们可以通过数据库的db.opt文件查看数据库当前的字符集和校验规则:

对数据库的修改主要指修改数据库的字符集和校验规则,语法如下:

alter dabatase 数据库名 更改后的字符集或校验规则;

例如我们将temp数据库的字符集修改为gbk,校验规则修改为gbk_bin:

观察db.opt:

可以看到字符集和校验规则已经修改成功


六、备份和恢复数据库

6.1 备份数据库

我们可以通过命令行来对数据库进行备份,语法如下:

mysqldump -P3306 -u root -p -B 数据库名 > 数据库备份文件的存储路径

例如:

若打开该文件,可以看到其内部都是我们历史上对数据库进行的操作

如果同时备份多个数据库,则带上多个数据库名即可:

mysqldump -P3306 -u root -p -B 数据库名1 数据库名2... > 数据库备份文件的存储路径

若备份数据库时只写了数据库名而没有带-B选项,则在恢复数据库时需要用户先创建对应的空数据库,进入该空数据后再进行还原

6.2 恢复数据库 

恢复数据库的语法:

source 备份文件;

将temp数据库删除后,我们将其恢复:

备份中记录的历史操作都被一个个重新执行


七、查看数据库连接情况

语法:

show processlist;

这条SQL语句会返回一个集合,包含所有连接的详细信息,如连接ID、用户、主机、数据库、状态等

通过查看数据库的连接情况就能知道当前有哪些用户连接了我们的MySQL,如果有不知名的用户存在,可能你的数据库已经被人入侵了

我们还可以通过这条SQL语句对用户进行过滤,只查看某个用户的信息:

select * from information_schema.processlist where user='用户名';

例如:

也可以在命令行中使用MySQL的命令行工具查看连接情况:

mysqladmin processlist

以后如果发现数据库运行缓慢,可以通过这些方式查看数据库的连接情况

完.


http://www.mrgr.cn/news/33518.html

相关文章:

  • ESLint 使用教程(四):ESLint 有哪些执行时机?
  • FreeSWITCH的介绍及应用
  • 基于Spring Boot与Redis的令牌主动失效机制实现
  • 车-路-站-网”信息耦合的汽车有序充电
  • C# 实现对指定句柄的窗口进行键盘输入的实现
  • 河南省测绘资质管理制度解析
  • 联合体的用法和用联合体判断大小端存储
  • 【排序算法】插入排序_直接插入排序、希尔排序
  • c# 三元表达式
  • 开源 AI 智能名片 S2B2C 商城小程序与营销工具的快速迭代
  • priority_queue 与 deque
  • 如果一个线上运行的程序,出现了死锁,应该怎么处理
  • 【记录】Excel|不允许的操作:合并或隐藏单元格出现的问题列表及解决方案
  • Elasticsearch导出导入数据
  • Flyway 基本概念
  • 【深入Java枚举类:不仅仅是常量的容器】
  • 小红书笔记采集器
  • js进阶——函数作用域和块作用域
  • Centrality
  • 【WSL迁移】将WSL2迁移到D盘
  • 《鸿蒙应用开发实战》关注公众号抽奖
  • 深入浅出:Eclipse 中配置 Maven 与 Spark 应用开发全指南
  • 计算机毕业设计之:基于深度学习的路面检测系统(源码+部署文档+讲解)
  • Apache CVE-2021-41773 漏洞攻略
  • Linux网络命令
  • 秒变 Vim 高手:必学的编辑技巧与隐藏功能大揭秘