【MySQL】库的操作

废话不多说,直接上操作:


目录

一、查看数据库

二、创建数据库

2.1 数据库的字符集及校验规则

2.1.1 查看系统默认字符集

2.1.2 查看系统默认校验规则

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

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

2.2 创建数据库时设置字符集和校验规则

2.2.1 创建数据库时设置字符集

2.2.2 创建数据库时设置校验规则

三、验证不同的校验规则对数据库的影响

四、删除数据库

五、查看自己所处数据库

六、修改数据库

七、显示创建语句

八、数据库的备份与恢复

九、查看数据库连接情况


一、查看数据库

show databases;

我们可以使用上述sql语句来查看自己的数据库中有那些库(要注意database后面有字母s): 

现在有一个问题:这些库是以什么方式存储在自己的Linux系统中的呢?

我们可以查看mysql的配置文件/etc/my.cnf

这里面我们可以看到有一个datadir,其后面就是mysql默认存储数据的目录

我们进去看看:

我们可以发现一个特点我们在mysql下查看到的库在保存数据的目录下都相对应一个目录!

那库和目录之间有什么关系呢?

我们在该数据目录下创建一个目录试试看:

创建完,我们再去mysql下查看一下库:

 

我们发现库中多了一个我们刚刚创建的目录名!

现在我们来删除这个目录:

删除完后我们发现mysql下刚刚存在相对应的库也不见了: 

 从上述过程中我们可以得出一个结论:在Linux环境下mysql所创建的库就是在存储数据的目录下创建相对应的目录

但是这样直接创建目录来创建数据库是不合理的,我们还是要使用标准的sql语句在mysql下创建:

二、创建数据库

CREATE DATABASE [IF NOT EXISTS] db_name [create_specification [, create_specification] ...]create_specification:[DEFAULT] CHARACTER SET charset_name[DEFAULT] COLLATE collation_name

对上述语法解释一下:

大写的表示关键字(在使用语句时大小写都可以,这里用大写只是为了区分)

[] 是可选项(如IF NOT EXISTS表示如果数据库不存在就创建,在使用时可以不添加)

db_name表示要创建数据库的库名

CHARACTER SET: 指定数据库采用的字符集

COLLATE: 指定数据库字符集的校验规则

我们下面来用最简单的语法来创建一个数据库:

可以看到我们成功的创建了一个名为data1的数据库

接下来我们要讲解一下创建数据库时的字符集及校验规则:

2.1 数据库的字符集及校验规则

数据库作为存储数据的工具,存储和读取数据时使用的编码格式就很显得重要。

数据库字符集可以决定所创建的数据库存储数据时使用什么样的编码格式

数据库校验规则可以决定所创建的数据库对比字段、读取数据所使用的编码格式

2.1.1 查看系统默认字符集

我们可以用下面的sql指令来查看系统默认的编码集

show variables like 'character_set_database';

由于我们在环境搭建时将配置文件中让server端的编码格式为utf8,所以系统默认使用utf8来作为默认的字符集

2.1.2 查看系统默认校验规则

我们可以用下面的sql指令来查看系统默认的校验集

show variables like 'collation_database';

由于我们在环境搭建时将配置文件中让server端的编码格式为utf8,所以系统默认使用utf8来作为默认的校验规则

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

show charset;

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

show collation;

2.2 创建数据库时设置字符集和校验规则

2.2.1 创建数据库时设置字符集

创建数据库时设置字符集在mysql中有两种语法格式:

create database db_name charset=所要设置的字符集;

创建后我们可以到所创建库的对应的目录中查看其编码说明文件db.opt:

我们可以看到其使用的字符集为utf8

还有一种设置格式为:

create database db_name character set 所要设置的字符集;

创建后查看其编码说明文件db.opt:

我们可以看到其使用的字符集为gbk

2.2.2 创建数据库时设置校验规则

create database db_name collate 想要设置的校验规则;

创建后查看其编码说明文件db.opt: 

我们可以看到其使用的校验规则为gbk_chinese_ci

当然我们也可以在创建数据库时字符集和校验规则一起设置:

创建后查看其编码说明文件db.opt:  

 我们可以看到其使用的字符集为utf8,校验规则为utf8_general_ci

三、验证不同的校验规则对数据库的影响

我们现在分别创建两个数据库,一个校验规则使用utf8_ general_ ci(不区分大小写),另一个校验规则使用utf8_ bin(区分大小写):

 再向两个库中插入相同的表,并且添加相同的数据(对于表的操作我们在后面会详细讲解):

 

现在我们可以看到这两个数据库都有着相同的一份表,并且表的数据都相同

下面我们分别对其进行筛选查询(在表中查找name为a的数据):

我们可以看到使用utf8_ general_ ci(不区分大小写)校验规则的库查询结果有A和a,另一个校验规则使用utf8_ bin(区分大小写)的库查询结果只有a。

在这里我们可以看到校验规则的不同对数据库的影响

四、删除数据库

删除数据库很简单:

DROP DATABASE [IF EXISTS] db_ name;

例如:

但是要注意:对应的数据库目录被删除,里面的数据表也会全部被删

所以这里不推荐对数据库进行删除操作

五、查看自己所处数据库

我们今后要对表进行操作需要进入到某个数据库中,经过一系列操作我们有可能忘了我们在那个数据库中,这时我们可以使用下面语句来查看自己所处的数据库:

select database();

 可以看到现在处于test2这个数据库中

六、修改数据库

对数据库的修改主要指的是修改数据库的字符集和校验规则

ALTER DATABASE db_name [alter_spacification [,alter_spacification]...] alter_spacification:
[DEFAULT] CHARACTER SET charset_name
[DEFAULT] COLLATE collation_name

我们现在来对test2这个数据库做影响修改,在修改前其编码集为utf8:

下面对其进行修改:

再来查看其字符集和校验规则: 

七、显示创建语句

show create database db_name;

上面该指令可以查看数据库的创建语句:

我们可以看到test2这个数据库创建时的语句为CREATE DATABASE 'test2'

数据库名字的反引号``,是为了防止使用的数据库名刚好是关键字

后面加了/* 的语句不是注释,表示当前mysql版本大于4.01版本,就执行这句话(也就是字符集使用gbk编码)

八、数据库的备份与恢复

如果我们想要备份一个数据库,我们可以对其所在的目录直接继续拷贝。但是这样是不推荐的,这样拷贝下来的目录可能在不同的版本的mysql下不能识别。

最好的方式是使用mysqldump工具(在我们安装mysql时已经下载好了)来进行备份:

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

我们来实操一下:

下面我们来备份一下test2这个数据库:

我们现在已经备份一份test2数据库到test2.sql这个文件中,我们来看看这个文件里存了些什么:

我们可以看到这个文件里不仅仅留有库中表的数据,还有创建库和表的指令

现在我们将test2这个数据库删了,试试看能不能从备份文件中恢复:

恢复时会使用source语句:

source 备份文件的路径;

我们可以看到test2这个数据库又回来了,我们查看一下该数据库中的数据:

完璧归赵~

注意了:

如果备份的不是整个数据库,而是其中的几张表,我们可以这样子:

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

同时备份多个数据库可以这样子:

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

下面解释一下:-B选项是在备份时加上数据库的创建指令,以便在恢复时直接指向该这里创建和原数据库一样的库。所以如果备份数据库时没有带上-B参数, 在恢复数据库时,需要先创建空数据库,再在该数据库下使用source来还原。

九、查看数据库连接情况

show processlist;

上面语句可以让我们看到谁在连接我们的数据库,以及连接人在干什么:

如果查出某个用户不是你正常登陆的,很有可能你的数据库被人入侵了。以后大家发现自己数据库比较慢时,可以用这个指令来查看。


本期博客到这里就结束了,下期再见~

更多MySQL技能请看:http://t.csdn.cn/W9dQl

博主努力更新中~

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/14079.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【二叉树进阶】搜索二叉树(递归+非递归两种版本详解)

文章目录 前言1. 二叉搜索树的概念2. 二叉搜索树的结构2.1 结点结构2.2 树结构 3. 插入操作(非递归)3.1 思路分析3.2 代码实现3.3 中序遍历(测试用) 4. 查找操作(非递归)4.1 思路分析4.2 代码实现 5. 删除操…

【设计模式】观察者设计模式解析

目录 一、观察者模式定义 二、观察者模式角色 三、观察者模式类图 四、观察者模式实例 五、观察者模式优缺点 5.1、优点 5.2、缺点 六、观察者模式应用 6.1、Spring 中观察者模式的四个角色 6.2、coding~~~~~~ 一、观察者模式定义 观察者模式(Observer Pattern)&#…

【如何训练一个中英翻译模型】LSTM机器翻译模型训练与保存(二)

系列文章 【如何训练一个中英翻译模型】LSTM机器翻译seq2seq字符编码(一) 【如何训练一个中英翻译模型】LSTM机器翻译模型训练与保存(二) 【如何训练一个中英翻译模型】LSTM机器翻译模型部署(三) 【如何训…

【框架篇】Spring Boot 日志

Spring Boot 日志 一,日志用途 尽管一个项目在没有日志记录的情况下可能能够正常运行,但是日志记录对于我们来说却是至关重要的,它存在以下功能: 1,故障排查和调试:当项目出现异常或者故障时,…

idea连接远程服务器上传war包文件

idea连接远程服务器&上传war包 文章目录 idea连接远程服务器&上传war包1. 连接服务器2.上传war包 1. 连接服务器 选择Tools -> Start SSH Session 添加配置 连接成功 2.上传war包 Tools -> Deployment -> Browse Remote Host 点击右侧标签,点击&…

gin框架内容(三)--中间件

gin框架内容(三)--中间件 Gin框架允许开发者在处理请求的过程中,加入用户自己的函数。这个函数就叫中间件,中间件适合处理一些公共的业务逻辑,比如登录认证、权限校验、数据分页、记录日志、耗时统计等 即比如&#x…

使用分布式HTTP代理爬虫实现数据抓取与分析的案例研究

在当今信息爆炸的时代,数据已经成为企业决策和发展的核心资源。然而,要获取大规模的数据并进行有效的分析是一项艰巨的任务。为了解决这一难题,我们进行了一项案例研究,通过使用分布式HTTP代理爬虫,实现数据抓取与分析…

华为eNSP:isis的配置

一、拓扑图 二、路由器的配置 配置接口IP AR1&#xff1a; <Huawei>system-view [Huawei]int g0/0/0 [Huawei-GigabitEthernet0/0/0]ip add 1.1.1.1 24 [Huawei-GigabitEthernet0/0/0]qu AR2: <Huawei>system-view [Huawei]int g0/0/0 [Huawei-GigabitEthe…

【用IDEA基于Scala2.12.18开发Spark 3.4.1 项目】

目录 使用IDEA创建Spark项目设置sbt依赖创建Spark 项目结构新建Scala代码 使用IDEA创建Spark项目 打开IDEA后选址新建项目 选址sbt选项 配置JDK debug 解决方案 相关的依赖下载出问题多的话&#xff0c;可以关闭idea&#xff0c;重启再等等即可。 设置sbt依赖 将sbt…

QTday4(鼠标事件和键盘事件/QT实现连接TCP协议)

笔记 #ifndef WIDGET_H #define WIDGET_H#include <QWidget> #include <QDebug> #include <QTcpServer>//服务器类 #include <QTcpSocket>//客户端类 #include <QMessageBox> #include <QList>//链表容器QT_BEGIN_NAMESPACE namespace Ui …

单链表详解

&#x1f493;博主个人主页:不是笨小孩&#x1f440; ⏩专栏分类:数据结构与算法&#x1f440; &#x1f69a;代码仓库:笨小孩的代码库&#x1f440; ⏩社区&#xff1a;不是笨小孩&#x1f440; &#x1f339;欢迎大家三连关注&#xff0c;一起学习&#xff0c;一起进步&#…

Mac 安装启动RabbitMq

使用HomeBrew安装 未安装的请参照我的这篇Mac安装HomeBrew文章 安装 执行命令 brew install rabbitmq启动方式 brew services start rabbitmq端口说明 端口用处5672RabbitMQ通讯端口&#xff0c;也就是连接使用的端口15672RabbbitMQ管理界面端口&#xff0c;需要开启Manage…

web自动化测试-PageObject 设计模式

为 UI 页面写测试用例时&#xff08;比如 web 页面&#xff0c;移动端页面&#xff09;&#xff0c;测试用例会存在大量元素和操作细节。当 UI 变化时&#xff0c;测试用例也要跟着变化&#xff0c; PageObject 很好的解决了这个问题。 使用 UI 自动化测试工具时&#xff08;包…

Zebec Card 将在亚洲、拉美等地区推出,生态全球化加速

随着以Visa、特斯拉、BNY Mellon、BlackRock、Mastercard、Gucci等为代表的传统商业机构巨头&#xff0c;以及萨尔瓦多、中非共和国等为代表的国家不断的向加密货币领域布局&#xff0c;越来越多的投资者开始以新的眼光来看待加密货币&#xff0c;仅在2022年&#xff0c;加密货…

如何学好Java并调整学习过程中的心态:学习之路的秘诀

文章目录 第一步&#xff1a;建立坚实的基础实例分析&#xff1a;选择合适的学习路径 第二步&#xff1a;选择合适的学习资源实例分析&#xff1a;参与编程社区 第三步&#xff1a;动手实践实例分析&#xff1a;开发个人项目 调整学习过程中的心态1. 不怕失败2. 持续学习3. 寻求…

Unity自定义后处理——Tonemapping色调映射

大家好&#xff0c;我是阿赵。   继续介绍屏幕后处理&#xff0c;这一期介绍一下Tonemapping色调映射 一、Tone Mapping的介绍 Tone Mapping色调映射&#xff0c;是一种颜色的映射关系处理&#xff0c;简单一点说&#xff0c;一般是从原始色调&#xff08;通常是高动态范围&…

SpringBoot 如何进行 统一异常处理

在Spring Boot中&#xff0c;可以通过自定义异常处理器来实现统一异常处理。异常处理器能够捕获应用程序中抛出的各种异常&#xff0c;并提供相应的错误处理和响应。 Spring Boot提供了ControllerAdvice注解&#xff0c;它可以将一个类标记为全局异常处理器。全局异常处理器能…

【动态规划】子数组系列

文章目录 动态规划&#xff08;子数组系列&#xff09;1. 最大子数组和2. 环形子数组的最大和3. 乘积最大子数组4. 乘积为正的最长子数组的长度5. 等差数列划分6. 最长湍流子数组7. 单词拆分8. 环形字符串中的唯一的子字符串 动态规划&#xff08;子数组系列&#xff09; 1. 最…

算法与数据结构(四)--排序算法

一.冒泡排序 原理图&#xff1a; 实现代码&#xff1a; /* 冒泡排序或者是沉底排序 *//* int arr[]: 排序目标数组,这里元素类型以整型为例; int len: 元素个数 */ void bubbleSort (elemType arr[], int len) {//为什么外循环小于len-1次&#xff1f;//考虑临界情况&#xf…

Neo4j 集群和负载均衡

Neo4j 集群和负载均衡 Neo4j是当前最流行的开源图DB。刚好读到了Neo4j的集群和负载均衡策略&#xff0c;记录一下。 1 集群 Neo4j 集群使用主从复制实现高可用性和水平读扩展。 1.1 复制 集群的写入都通过主节点协调完成的&#xff0c;数据先写入主机&#xff0c;再同步到…