MySQL操作库

news2024/11/26 19:34:06

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.coloradmin.cn/o/770082.html

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

相关文章

认识Vue3

✅作者简介:大家好,我是Cisyam,热爱Java后端开发者,一个想要与大家共同进步的男人😉😉 🍎个人主页:Cisyam-Shark的博客 💞当前专栏: Vue ✨特色专栏&#xff…

C#基础--反射

反射 一、为什么学习反射 因为反射真的是无处不在,ORM、MVC、IOC、AOP、Attribute等等都会使用到反射。反射是程序员的快乐 二、什么是反射 Ilspy:逆向工程,可以吧DLL/Exe文件反编译回来 DLL/EXE 文件下包含Metadata和IL,IL是对标于C#代码的代码,属于中间语言,是标准的…

虚拟云网络系列 | Antrea 应用于 VMware 方案功能简介(十一)

本篇推文继续之前讨论 Antrea 与 NSX Manager 整合的手动安装流程,接下来要讨论流程四、五、六。这几篇讨论的安装流程图如下,相关的步骤于官方文件内有正式的说明。 流程四: 修改安装配置档,输入 NSX 及凭证相关资讯 流程一内我…

面试官:为什么RPC框架历经数十年还在造轮子?同时期的EJB骨灰都快找不到了!

文章目录 再谈谈RPC的理解RPC的发展史RPC历经数十年而不衰的原因?1、分布式系统的需求2、RPC相关技术的演进3、多语言的支持 本文源自一次面试官的提问:说说你对于RPC框架的了解,你知道哪些RPC框架,以及为什么RPC历经几十年还能不断推出新的…

船舶中压配电板应用弧光保护,可解决母排故障短路问题,对于提高船舶电站的安全性、稳定性,降低经济损失具有重要意义。-安科瑞黄安南

摘要:船舶中压配电板弧光故障导致的设备损坏和停电事故,不仅会造成较大的经济损失,而且严重影响船舶电站的安全稳定运行,威胁船舶电站操作人员的安全。弧光保护是基于电力系统开关柜发生弧光故障时而设计的一套母线保护系统&#…

中国立体地图(超高清)

声明:来源网络,仅供学习!

计算机视觉---flask框架封装目标检测,应用线程提高程序运行效率

1.前言 上一篇文章flask部署 目标检测算法中讲到可以将检测算法封装到flask框架中进行web端展示,但在实际应用中发现一些问题并进行了解决,在本文中进行补充。 2.利用线程,提高flask程序运行效率 flask web端访问时,每次都会从…

RUST腐蚀基因种植

RUST腐蚀基因种植 试验地址:www.xiaocao.cloud RUST基因: RUST基因计算器,腐蚀基因计算器,前后端分离架构,前端目录/resouce/ui/rust,欢迎大佬评价,

全网最牛,接口测试mock详细总结,彻底打通接口测试...

目录:导读 前言一、Python编程入门到精通二、接口自动化项目实战三、Web自动化项目实战四、App自动化项目实战五、一线大厂简历六、测试开发DevOps体系七、常用自动化测试工具八、JMeter性能测试九、总结(尾部小惊喜) 前言 什么是mock&#…

uni-data-picker修改成自定义样式

想使用uni-data-picker,并修改成自己自定义的颜色和样式。 1:修改样式前后样式对比 图1为原本样式,图2,3为修改后的样式 2:两种使用方法 直接使用uni-data-picker组件,会先显示请选择区域的下拉框&#…

python pandas库导出数据到excel

利用pandas库导出数据到excel,代码如下 import pandas as pd# 数据格式1,字典形式 mydic {姓名: [张三, 李四, 王五],年龄: [18, 20, 22]}# 数据格式2,列表形式 mylist [{"姓名": "张三","年龄": "11&…

el-progress组件使用,样式修改,自定义文字

正常的el-progress显示是这样的 修改后 自动计算percentage&#xff0c;format自定义显示文字 <template><div><div class"content-view"><div v-for"(item, index) in progressList" class"item-view"><el-prog…

【Java项目实战-牛客社区】--idea创建springboot工程

①. 创建springboot工程&#xff0c;并勾选web开发相关依赖。 。配置Maven ②. 定义Controller类&#xff0c;添加方法 hello。 ③. 运行测试1 使用Spring Initializr方式构建Spring Boot项目 Spring Initializr是一个Web应用&#xff0c;它提供了一个基本的项目结构&#xff…

《遗留系统现代化》读书笔记(模式篇-开篇)

文章目录 遗留系统现代化的五种策略&#xff1a;重构还是重写&#xff1f;这是一个问题遗留系统现代化的五种策略EncapsulateReplatformRehostRefactor/RearchitectRebuild/Replace其他策略 你应该选择什么样的策略&#xff1f;小结 本文地址&#xff1a; 《遗留系统现代化》读…

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

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

上门家政小程序|上门家政小程序源码|上门家政系统开发

上门家政小程序的开发适合以下几个行业&#xff0c;下面将对其进行介绍并探讨其应用场景。   一、家庭保洁行业   家庭保洁是现代家庭生活中常见的需求之一&#xff0c;上门家政小程序可以为家庭保洁公司提供一个在线预约和管理平台。用户可以通过小程序方便地预约家庭保洁…

OV7670摄像头模块的使用

OV7670摄像头模块介绍 OV7670 CAMERACHIPTM 图像传感器&#xff0c;体积小、 工作电压低&#xff0c;提供单片 VGA 摄像头和影像处理器的所有功能。通过 SCCB 总线控制&#xff0c;可以输出整帧、子采样、取窗口等方式的各种分辨率 8 位影响数据。该产 品 VGA 图像最高达到 30…

基于SSM的汽车配件销售业绩管理系统设计与实现

末尾获取源码 开发语言&#xff1a;Java Java开发工具&#xff1a;JDK1.8 后端框架&#xff1a;SSM 前端&#xff1a;采用JSP技术开发 数据库&#xff1a;MySQL5.7和Navicat管理工具结合 服务器&#xff1a;Tomcat8.5 开发软件&#xff1a;IDEA / Eclipse 是否Maven项目&#x…

SpringBoot整合SpringCloudStream3.1+版本Kafka

SpringBoot整合SpringCloudStream3.1版本Kafka 下一节直通车 SpringBoot整合SpringCloudStream3.1版本的Kafka死信队列 为什么用SpringCloudStream3.1 Springcloud架构提供&#xff0c;基于spring生态能够快速切换市面上常见的MQ产品3.1后使用配置文件的形式定义channel&am…

Python接口自动化测试之详解post请求

前言 在HTTP协议中&#xff0c;与get请求把请求参数直接放在url中不同&#xff0c;post请求的请求数据需通过消息主体(request body)中传递。 且协议中并没有规定post请求的请求数据必须使用什么样的编码方式&#xff0c;所以其请求数据可以有不同的编码方式&#xff0c;服务…