MySQL操作库

MySQL操作库

  • 一.创建数据库
    • 1. 创建数据库的方式
    • 2. 创建数据库时的编码问题
    • 3. 指定编码创建数据库
    • 4. 验证校验规则对数据库的影响
  • 二.数据库与文件系统的关系
  • 三.操纵数据库
    • 1. 查看数据库
    • 2. 删除数据库
    • 3. 修改数据库
  • 四.数据库的备份和恢复
    • 1.数据库的备份
    • 2.数据库的恢复
  • 五.查看连接情况

一.创建数据库

1. 创建数据库的方式

create database database1;

image-20230716160242203

带选项的创建

create database if not exists database1;
  • 如果不存在(if not exists)才创建数据库database1。

image-20230716162145611

2. 创建数据库时的编码问题

与数据打交道的数据库的创建一定与编码有关系。创建数据库的时候,有两个编码集:

  1. 数据库编码集:数据库未来存储数据的编码集。
  2. 数据库校验集:支持数据库,进行字段比较使用的编码,本质也是一种读取数据库中数据的采用的编码格式。

因此,数据库无论对数据做任何操作,都需要保证数据库的操作和编码必须是编码一致的。

查看系统默认支持的字符集和校验集:

show variables like 'character_set_database';

image-20230716163250563

show variables like 'collation_database';

image-20230716163406782

查看connection、database、server的校验集:

show variables like 'collation_%';

image-20230716163700707

大部分情况下,数据库的连接,数据库本身、数据库的服务器都是utf8的。在最开始的my.cnf配置中,我们把默认字符集全部配成了utf8进行统一,如果不配置,可能就会因为编码的不同导致无法正确解析数据。

查看数据库全部的字符集

show charset;

image-20230716163933162

查看对照表,数据库选择的就是其中的utf8的字符集。

查看数据库支持的字符集校验规则

show collation;

3. 指定编码创建数据库

当我们创建数据库没有指定字符集和校验规则时,系统使用默认字符集:utf8,校验规则是:utf8_general_ci。

两种方式:

create database d2 charset=utf8; #指定编码格式utf8

image-20230716200505946

create database d3 set utf8; #指定编码格式utf8

image-20230716200815758

编码集字符集同时设置:

create database d4 charset=utf8 collate utf8_general_ci; #既指明编码,又指明校验规则

根据字符集表以及校验表创建不同编码和校验规则的数据库

image-20230716201340291

4. 验证校验规则对数据库的影响

不区分大小写

创建一个数据库,校验规则使用utf8_ general_ ci[不区分大小写]

create database test1 collate utf8_general_ci;
use test1;
create table person(name varchar(20));

image-20230717204517443

由于是不区分大小写的,所以在指定查’a’的时候,utf8_ general_ ci校验规则会将’A’和’a’一并查出:

image-20230717204907443

区分大小写

创建一个数据库,校验规则使用utf8_ bin[区分大小写]

create database test2 collate utf8_bin;
use test2;
create table if not exists person(name varchar(20));

image-20230717205550620

因此,校验规则的不同,我们查出的结果也有可能不同。

校验规则的不同,排序的顺序也会不同:(从小到大)

image-20230717205936435

故忽略大小写时,大小写的排序不做区分。

二.数据库与文件系统的关系

创建数据库:create database db_name; 本质就是在/var/lib/mysql创建一个目录。

删除数据库:drop database db_name; 本质就是在/var/lib/mysql删除目录。

因此,我们可以在/var/lib/mysql上创建目录,那么数据库层面也一定会产生相应的数据库。

image-20230716161418944

同理,在mysql目录中删掉一个目录,数据库层面的对应数据库也会被删掉。

当然,绝对不应该在文件系统层面创建目录从而生成对应数据库,这样是不合理的。因此mysql8.0就禁掉了这个功能,而mysql5.6支持。

三.操纵数据库

1. 查看数据库

show databases;

image-20230716155403820

如果想要确定是在哪个数据库里,可以执行:

select database();

image-20230719130308084

2. 删除数据库

drop database db_name;

执行删除之后的结果:

  • 数据库内部看不到对应的数据库
  • 对应的数据库文件夹被删除,级联删除,里面的数据表全部被删

注意:不要随意删除数据库

3. 修改数据库

  • 对数据库的修改主要指的是修改数据库的字符集,校验规则
alter database test2 charset=gbk collate gbk_Chinese_ci;

image-20230719130801155

四.数据库的备份和恢复

1.数据库的备份

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

-B:代表选择数据库的选项。

image-20230719135036092

test1.sql中存储的不仅仅是test1数据库中的数据,还有历史上创建过的命令:

image-20230719135143891

至此就完成了对数据库test1的备份操作。

2.数据库的恢复

现在,将test1数据库删掉:

image-20230719135825570

这样,在/var/lib/mysql的路径下,一定也不存在test1目录。

通过pwd命令,我们知道test1.sql所在的路径:

image-20230719140336913

然后,通过以下恢复命令:

mysql> source /root/MySQL/test1.sql;

image-20230719140542138

此时,就可以查看到对应test1的数据库及其内容:

image-20230719141029717

注意事项

如果备份的不是整个数据库,而是其中的一张表,怎么做?

mysqldump -u root -p 数据库名 表名1 表名2 > 路径/mytest.sql

同时备份多个数据库

mysqldump -u root -p -B 数据库名1 数据库名2 ... > 数据库存放路径

如果备份一个数据库时,没有带上-B参数, 在恢复数据库时,需要先创建空数据库,然后使用数据库,再使用source来还原。

五.查看连接情况

如果在使用数据库时,出现卡顿,那么有可能访问数据库的不止你一个,所以,通过如下命令,我们可以看到User的数量及名称Id。

show processlist;

image-20230719143408395

这可以告诉我们当前有哪些用户连接到我们的MySQL,如果查出某个用户不是你正常登陆的,很有可能你的数据库被人入侵了。

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

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

相关文章

C++基础算法排序篇

📟作者主页:慢热的陕西人 🌴专栏链接:C算法 📣欢迎各位大佬👍点赞🔥关注🚓收藏,🍉留言 主要讲解C算法中所涉及到的两个排序算法,快排和归并。 文章…

【JavaEE】HTTP请求的构造

目录 1、通过form表单构造HTTP请求 2、通过JS的ajax构造HTTP请求 3、Postman的安装和简单使用 常见的构造HTTP请求的方式有一下几种: 直接通过浏览器的地址栏,输入一个URL,就可以构造一个GET请求HTML中的一些特殊标签,也会触发…

IT技术岗的面试技巧分享

我们在找工作时,需要结合自己的现状,针对意向企业做好充分准备。作为程序员,你有哪些面试IT技术岗的技巧?你可以从一下几个方向谈谈你的想法和观点。 方向一:分享你面试IT公司的小技巧 1、事先和邀约人了解公司的基本情况,比如公司的行业,规模,研发人员占比等 2、事先和…

超声医疗高压功率放大器ATA-4315技术参数

超声波检查或超声诊断,是一种非侵入性的医学检查方法,它利用了声波的高频振动来观察和评估人体内部的器官和组织。它基于不同密度和组织结构中传播的原理。通过将ultrasound(超声波)传递到身体的特定区域,并记录反射回来的声波,我…

牛顿修正法在二阶近似方法中的应用

使用optimtool的牛顿修正法来应用学习 pip install optimtool --upgrade pip install optimtool>2.4.2optimtool包所依据的理论支撑中,还没有为二阶微分方法作邻近算子的近似与修正,所以二阶近似方法是研究无不可微项的可微函数的算子。 牛顿修正法…

Element-UI 实现动态增加多个不同类型的输入框并校验(双重v-for表单验证)

文章目录 前言定义表单格式表单渲染和验证扩展 前言 在做复杂的动态表单,实现业务动态变动,比如有一条需要动态添加的el-form-item中包含了多个输入框,并实现表单验证,但在element-ui组件库中给出的表单校验中没有这样的格式&…

软件测试工程师最常用的web测试-浏览器兼容性测试

如今,市面上的浏览器种类越来越多(尤其是在平板和移动设备上),这就意味着你所测试的站点需要在这些你声称支持浏览器上都能很好的工作。 同时,主流浏览器(IE,Firefox,Chrome&#x…

腾讯、飞书等在线表格自动化编辑--python

编辑在线表格 一 目的二 实现效果三 实现过程简介1、本地操作表格之后进入导入在线文档2、直接操作在线文档 四 实现步骤讲解1、实现方法的选择2、导入类库3、设置浏览器代理直接操作已打开浏览器4、在线文档登录5、在线文档表格数据操作6、行数不够自动添加行数 五 代码实现小…

双电源并用问题与解决方案

双电源并用问题 曾经有客户在电源模块应用过程中出现过这样的应用场景,如下图1所示。客户使用两路电源给后端电路进行供电,要求在不断电的情况下切换输入电源,此过程中发现后端电路会出现损坏。对各个节点波形进行分析后发现,在给…

Kafka 入门到起飞 - 生产者发送消息流程解析

生产者通过send()方法发送消息消息会经过拦截器->序列化器->分区器 进行加工然后将消息存在缓冲区当缓冲区中消息达到条件会按批次发送到broker对应分区上broker将接收到的消息进行刷盘持久化消息处理broker会返回给producer响应落盘成功返回元数据…

数据库应用:MySQL数据库SQL高级语句与操作

目录 一、理论 1.克隆表与清空表 2.SQL高级语句 3.SQL函数 4.SQL高级操作 5.MySQL中6种常见的约束 二、实验 1.克隆表与清空表 2.SQL高级语句 3.SQL函数 4.SQL高级操作 5.主键表和外键表 三、总结 一、理论 1.克隆表与清空表 克隆表:将数据表的数据记录…

socket编程代码示例

1. TCP server client模拟聊天对话框 server.c /* server.c */ #include <stdio.h> #include <stdlib.h> #include <string.h> #include <strings.h> #include <errno.h> #include <unistd.h> #include <sys/types.h> #include &l…

Docker

Docker 一、Docker 简介1.1 Docker 概述1.2 Docker1.3 Docker 受欢迎的原因1.4 Docker 与 openstack&#xff08;虚拟机&#xff09; 的区别1.5 Docker核心概念 二、安装 Docker三、Docker 命令四、Docker 镜像操作五、Docker 容器操作 一、Docker 简介 1.1 Docker 概述 Dock…

SpringBoot + Docker 实现一次构建到处运行

一、容器化部署的好处 Docker 作为一种新兴的虚拟化方式&#xff0c;它可以更高效的利用系统资源&#xff0c;不需要进行硬件虚拟以及运行完整操作系统等额外开销。 传统的虚拟机技术启动应用服务往往需要数分钟&#xff0c;而 Docker 容器应用&#xff0c;由于直接运行宿主内…

AI绘画创意文字全流程揭秘,你的终极文字艺术实操宝典

本教程收集于&#xff1a;AIGC从入门到精通教程汇总 AIGC技术不断更新迭代&#xff0c;国内出现了越来越多的新玩法&#xff0c;比如最近大家都在热议的AI绘画创意文字。 过去的一周&#xff0c;我把这些新玩法都研究了一遍&#xff0c;并总结了一套完整的制作流程。 主流的…

python+allure+jenkins

目录 前言 在 python 中使用 allure 1. 安装 pytest 2. 安装 pytest-allure-adaptor 3. 使用 pytest 执行测试用例并生成 allure 中间报告&#xff08;此步骤可以省略&#xff0c;因为在 jenkins job 中会配置执行类似的命令&#xff09; 4. Jenkins 中安装Allure Jenkin…

SpringCloud学习路线(3)—— Eureka注册中心

一、导引 服务调用出现的问题 服务调用采取的请求地址是静态的&#xff0c;当我们使用服务集群时&#xff0c;很容易造成只能调用固定的微服务上的接口。多个提供者&#xff0c;消费者的使用对象无法确定消费者无法得知提供者的状态 二、Eureka注册中心 &#xff08;一&…

【C#】并行编程实战:使用并发集合

在上一章的并行编程实现里&#xff0c;为了保护资源&#xff0c;我们对共享资源加锁&#xff08;各种同步原语&#xff09;来进行保护&#xff0c;避免多线程同时访问&#xff08;主要是写入&#xff09;。但一般来说&#xff0c;共享资源是一个可以由多个线程读写的集合&#…

JVM系列(8)——对象的内存布局

1、对象的创建过程 加载-验证-准备-解析-初始化-申请内存-成员变量赋初始值-加载构造方法。 前半段是JVM系列&#xff08;5&#xff09;——类加载过程&#xff0c;申请内存可参考&#xff1a;JVM系列&#xff08;3&#xff09;——内存分配与回收策略。 2、对象在内存中的存…

华为申请注册盘古大模型商标;京东推出言犀大模型,率先布局产业应用

7月14日科技新闻早知道&#xff0c;一分钟速览。 1.华为申请注册盘古大模型商标&#xff1a; 据天眼查 App 显示&#xff0c;7 月 7 日&#xff0c;华为技术有限公司申请注册“华为云盘古”、“Huawei Cloud Pangu Models”文字及图形商标&#xff0c;国际分类为网站服务、社…