MySQL库的操作

文章目录:

  • 创建数据库
  • 字符集和校验规则
    • 查看系统默认字符集和校验规则
    • 查看数据库支持的字符集
    • 查看数据库支持的字符集校验规则
    • 校验规则对数据库的影响
  • 操作数据库
    • 查看数据库
    • 显示创建语句
    • 修改数据库
    • 删除数据库
    • 数据库的备份和还原
    • 表的备份和还原
  • 查看连接情况

创建数据库

创建数据库的SQL语句:

CREATE DATABASE [IF NOT EXISTS] db_name [[DEFAULT] CHARSET=charset_name] [[DEFAULT] COLLATE=collation_name];

说明:

  • SQL中大写的表示关键字
  • [] 是可选项,里面的内容可以省略
  • CHARACTER SET:指定数据库采用的字符集
  • COLLATE:指定数据库字符集的校验规则

示例:

1️⃣ 创建一个名为db1 的数据库

创建数据时若不指定字符集和校验规则,则使用系统默认的:

在这里插入图片描述

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

2️⃣ : 创建一个使用 utf8 字符集的 db2 数据库

只需要在创建数据库时通过 charset 指定编码格式即可(如:charset=utf8):

在这里插入图片描述

3️⃣ :创建一个使用 utf8 字符集,并带校对规则 utf8_general_cdb3 数据库

在这里插入图片描述

字符集和校验规则

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

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

在指定的数据库下使用该 SQL,则查看的是该数据库对应的字符集。

**加粗样式**

查看数据库支持的字符集

使用 show character set; 或者 show charset; 的方式获取当前版本中支持的字符集。

show charset;

在这里插入图片描述

通过 show charset 查出来的是当前所有可用的字符集。字符集主要是控制用什么语言,比如 utf8 就可以使用中文。

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

show collation;

在这里插入图片描述

校验规则对数据库的影响

字符集编码格式和字符集校验规则之间的区别

字符集编码格式是指将字符编码为计算机可以识别和存储的二进制数据的方式。常见的字符集编码格式有:UTF-8、UTF-16、GBK等。不同的字符集编码格式使用不同的编码方式,因此它们所能表示的字符集范围和编码效率不同。

字符集校验规则是指在比较和排序字符时所使用的规则。它主要用于确定哪些字符被认为是相等的,以及如何按照字母顺序对字符进行排序。常见的字符集校验规则有:utf8mb4_general_ci、utf8mb4_bin等。不同的字符集校验规则对于相同的字符集编码格式和字符,可能会有不同的比较和排序结果。

例如:我们使用 UTF-8格式来存储数据,因此在进行数据比对时也必须使用 UTF-8 格式进行比对,保存 “存取数据” 方式的一致性。

注意:在选择字符集编码格式和字符集校验规则时,需要根据具体情况进行选择,以确保正确存储、比较和排序字符。

校验规则对数据库的影响

例子:假设我们有一个包含用户信息的数据库表,其中一个字段为 username 。若我们选择的校验规则是 utf8mb4_general_ci,那么在比对和排序 username 时,会忽略大小写和重音符号,如:‘‘Make’’ 和 ‘‘make’’ 会被认为是相同的,‘‘Café’’ 和 ‘‘Cafe’’ 也会被认为是相同的。但若我们选择的校验规则是 utf8mb4_bin ,那么在进行比对和排序 username 时,‘‘Make’’ 和 ‘‘make’’ 会被认为是不同的,‘‘Café’’ 和 ‘‘Cafe’’ 也会被认为是不同的。

接下来我们进行测试:

  • 不区分大小写和重音符号

创建一个数据库,校验规则使用 utf8mb4_general_ci【不区分大小写】

create database t1 collate utf8mb4_general_ci;
use t1;
insert into info_table values ('Make');
insert into info_table values ('make');
insert into info_table values ('Café');
insert into info_table values ('Cafe');

插入数据后的表格如下所示:

在这里插入图片描述

不区分大小写和重音符号查询后的结果如下所示:

在这里插入图片描述

  • 区分大小写和重音符号

创建一个数据库,校验规则使用 utf8mb4_bin【区分大小写和重音符号】

create database t2 collate utf8mb4_bin;
use t2;
create table info_table(name varchar(20));
insert into info_table values ('Make');
insert into info_table values ('make');
insert into info_table values ('Café');
insert into info_table values ('Cafe');

插入数据后的表格如下所示:

在这里插入图片描述

区分大小写和重音符号查询后的结果如下所示:

在这里插入图片描述

因此,在选择校验规则时,需要根据具体情况进行选择,以保证数据的准确性、正确性和存储效率。同时,在进行数据迁移时,也需要注意校验规则的一致性,以避免数据错误和不兼容的问题。

操作数据库

查看数据库

使用 show databases; 可以查看系统下属于该用户的所有数据库。

show databases;

在这里插入图片描述

显示创建语句

使用下列语句可以查看某一个数据库的创建语句。

show create database 数据库名称;

在这里插入图片描述

说明:

  • MySQL 建议关键字使用大写,但是不是必须这样做。
  • 如果表名或列名包含特殊字符,例如:空格、括号、划线等,需要使用反引号 (`) 将其括起来。数据库名字的反引号,是为了防止使用的数据库名刚好是关键字。
  • /!40100 DEFAULT…/ 不是注释,表示当前MySQL的版本大于 4.01 版本,就执行这句话。

修改数据库

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

修改数据库的 SQL 语句如下:

ALTER DATABASE 数据库名称 [[DEFAULT] CHARSET=charset_name] [[DEFAULT] COLLATE=collation_name];

例如:将数据库 t1 的字符集改为 gbk,将校验规则改为 gbk_bin ,如下所示:

在这里插入图片描述

删除数据库

要删除 MySQL 数据库,可以使用以下语句:

DROP DATABASE database_name; // database_name表示要删除数据库的名称

示例:删除数据库t1,执行删除之后,数据库内部看不到对应的数据库,对应的数据库文件夹被删除,级联删除,里面的数据表全部被删除。

在这里插入图片描述

注意:不要随意删除数据库。若确实要删除数据库,在执行此操作之前,请确保你已经备份了该数据库的数据,因为一旦删除,该数据库中的所有数据都将丢失。

说明:

  • 只有具有 DROP 权限的 MySQL 用户才可以删除数据库。
  • 确认要删除的数据库是正确的,以免意外删除其它数据库。删除数据库后,无法撤销此操作。
  • 在删除数据库之前,请确保没有任何应用程序正在使用该数据库,若要删除的数据库正在被使用,可能会导致应用程序奔溃或出现其它问题。

数据库的备份和还原

数据库备份

要备份 MySQL 数据库,可以使用以下语句:

mysqldump -P 端口号 -u username -p 密码 -B 数据库名1 数据库名2 ... > backup_file.sql 
// backup_file.sql是备份文件的名称和路径

在执行此命令后,MySQL 将生成一个名为 backup_file.sql 的文件,其中包含数据库的所有内容,包括表结构和数据。

接下来,我们使用 t1 数据库进行演示,t1 数据库中有一个名为 info_table 的表,如下所示:

在这里插入图片描述

执行备份 SQL 语句,开始备份:

在这里插入图片描述

此时,打开 t2_backup_file.sql 文件查看内容,实际上是将整个创建数据库,建表,导入数据的语句都装载在这个文件中。

在这里插入图片描述

此外,还可以指定其它选项来自定义备份过程:

  • --single-transaction:以事务方式备份,确保备份期间不会中断正在进行的事务。
  • --routines:备份存储过程和函数。
  • --events:备份事件。

例如,以下命令使用压缩算法并备份存储过程和事件:

mysqldump -P3306 -u username -p --compress --routines --events database_name > backup_fie.sql

数据库还原

MySQL 数据库还原语句如下:

source 数据库备份存储的文件路径    // 在登录数据库之后可使用该语句
mysql -u username -p database_name < 数据库备份存储的文件路径   // 未登录mysql直接备份

示例,我们使用 source 来对数据库进行还原,首先将原有的数据库删除:

在这里插入图片描述

让 MySQL 执行还原命令对数据库进行还原,数据库的还原实际上就是执行备份文件中的 SQL 语句:

在这里插入图片描述

查看数据库是否还原成功:

在这里插入图片描述

表的备份和还原

数据库备份

备份 MySQL 数据库中的表的语法如下:

mysqldump -P 端口号 -u username -p 密码 database_name table_name > 表备份存储的文件路径

示例,将数据库 t2 中的表 info_table 进行备份:

在这里插入图片描述

使用数据库表的备份语句备份 t2 中的 info_table

在这里插入图片描述

查看备份的表的文件,可以看出存储的是关于表的 SQL 语句。

在这里插入图片描述

数据库还原

在还原数据库表之前,需要先选择目标数据库,并指定要将表还原到哪个数据库中。为例避免还原出来的表与目标数据库中已有的表重名,一般在还原时会选择先创建一个空的数据库,再将表恢复到该数据库中。

MySQL 中使用以下命令对数据库表进行还原:

source 表备份存储的文件路径

示例:为了便于测试,先将数据库中的 t2 数据库删除:

在这里插入图片描述

创建一个空的数据库,用于对表进行还原:

在这里插入图片描述

选择数据库,执行 MySQL 还原表的指令对表进行还原:

在这里插入图片描述

查看数据库表是否还原:

在这里插入图片描述

总结:为了成功还原表并避免命名冲突,建议先创建一个空的数据库,并将表还原到该数据库中。

查看连接情况

要查看当前 MySQL 数据库中的连接情况,可以使用以下 SQL 语句:

SHOW PROCESSLIST;

执行该语句后,将返回当前 MySQL 数据库中的所有连接信息,这些信息包括连接ID、连接状态、连接所使用的用户、连接所使用的主机、连接操作的数据库、SQL语句等。

在这里插入图片描述

需要注意,如果 MySQL 数据库中存在大量连接,执行 show processlist;select * from information_schema.processlist; 可能会导致性能下降,因此实际中许哟啊谨慎使用这些语句,以避免对数据库性能产生不良影响。

MySQL 数据库连接可以告诉我们当前哪些用户连接到了我们的 MySQL,若查出某个用户不是你正常登录的,那么你的数据库有可能被入侵了。以后当发现自己的数据库比较慢时,可以使用该指令来查看数据库的连接情况。

总之,查看 MySQL 数据库连接可以帮助管理员或开发人员了解数据库的运行情况,及时发现问题并采取相应的措施,从而保障数据库的正常运行和数据的安全性。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

数据库基础

文章目录前言一、什么是数据库二、主流数据库三、基本使用1.连接服务器2.服务器,数据库,表关系3.使用案例4.数据逻辑存储四、MySQL架构五、SQL分类六、存储引擎1.存储引擎2.查看存储引擎3.存储引擎对比总结前言 正文开始!!! 一、什么是数据库 存储数据用文件就可以了,为什么还…

【并发编程】AQS源码

ReentrantLock 互斥锁,可重入 AQS是可以支持互斥锁和共享锁的&#xff0c;这里只分析互斥锁的源码 加锁 公平锁和非公平锁 公平锁 final void lock() {acquire(1); //抢占1把锁.}// AQS里面的方法public final void acquire(int arg) { if (!tryAcquire(arg) &&acq…

IP协议(网络层重点协议)

目录 一、IP协议报头格式 二、地址选择 1、IP地址 &#xff08;1&#xff09;格式 &#xff08;2&#xff09;组成 &#xff08;3&#xff09;分类 &#xff08;4&#xff09;子网掩码 三、路由选择 IP协议是网络层的协议&#xff0c;它主要完成两个方面的任务&#xf…

redis基础(6.0)数据结构、事务、常用组件等

1 概述 1.1 redis介绍 Redis 是互联网技术领域使用最为广泛的存储中间件&#xff0c;它是「Remote Dictionary Service」的首字母缩写&#xff0c;也就是「远程字典服务」。Redis 以其超高的性能、完美的文档、 简洁易懂的源码和丰富的客户端库支持在开源中间件领域广受好评。…

车载网络 - Autosar网络管理 - 常用缩写

为了方便大家日常工作中的使用和交流&#xff0c;每块专业规范或者文章中&#xff0c;都会有或多或少的缩写使用&#xff0c;然而如果一段时间没使用&#xff0c;经常会忘记这些缩写到底代表的是什么意思&#xff0c;为了方便后续内容的介绍&#xff0c;也为了我自己后面忘记后…

做自动化测试时所谓的“难点”

这篇关于自动化测试的文章&#xff0c;可能和你看到的大多数自动化的文章有所不同。我不是一位专职的自动化测试工程师&#xff0c;没有开发过自动化的工具或者框架&#xff0c;用的自动化的工具也不多&#xff0c;也没有做过开发&#xff0c;所以我讲不出那些现在很多人很看重…

JavaScript【一】JavaScript变量与数据类型

文章目录&#x1f31f;前言&#x1f31f;变量&#x1f31f; 变量是什么&#xff1f;&#x1f31f; 变量提升&#x1f31f; 声明变量&#x1f31f; JavaScript有三种声明方式&#x1f31f; 命名规范&#x1f31f; 注意&#x1f31f;数据类型以及运算&#x1f31f; 检测变量数据类…

数据智能服务商奇点云完成近亿元C2轮融资

奇点云集团宣布已于2022年底完成近亿元C2轮融资&#xff0c;余杭国投领投&#xff0c;中银渤海基金跟投。 截至目前&#xff0c;奇点云共获近3亿元C轮融资。C轮领投方包括泰康人寿&#xff08;旗下泰康资产执行&#xff09;、余杭国投&#xff0c;跟投方包括字节跳动、德同资本…

app抓包实战

文章目录一、抓包原理二、常用应用场景三、过滤四、重发五、修改请求六、断点&#xff08;BreakPoint&#xff09;一、抓包原理 二、常用应用场景 解决移动端接口测试 解决接口测试过程中检查传参错误问题 mock测试&#xff08;虚拟的对象代替正常的数据、后端接口没有开发完成…

QML控件--DialogButtonBox

文章目录一、控件基本信息二、控件使用三、属性成员四、附加属性成员五、成员函数六、信号一、控件基本信息 Import Statement&#xff1a;import QtQuick.Controls 2.14 Since&#xff1a;Qt 5.8 Inherits&#xff1a;Container 二、控件使用 DialogButtonBox&#xff1a;是…

攻防世界-web-easyupload

题目描述&#xff1a;一名合格的黑客眼中&#xff0c;所有的上传点都是开发者留下的后门 很简单的一个上传图片的界面。 我们先正常上传一个图片&#xff0c;从提示信息中可以看出我们是上传到了uploads目录下 然后通过bupsuite抓包修改请求&#xff0c;将文件名修改为1.php&a…

Java垃圾回收机制GC完全指南,让你彻底理解JVM运行原理

1、GC过程 1&#xff09;先判断对象是否存活(是否是垃圾) 可以通过引用计数算法和可达性分析算法来判断&#xff0c;由于引用计数算法无法解决循环引用的问题&#xff0c;所以目前使用的都是可达性分析算法 2&#xff09;再遍历并回收对象(回收垃圾) 可以通过垃圾收集器&…

三、Locust任务(task)详解

当一个负载测试开始时&#xff0c;将为每个模拟用户创建一个用户类的实例&#xff0c;他们将在自己的绿色线程中开始运行。当这些用户运行时&#xff0c;他们会选择执行的任务&#xff0c;睡眠一段时间&#xff0c;然后选择一个新的任务&#xff0c;如此循环。 这些任务是正常…

什么是自动化测试?自动化测试现状怎么样?

什么是自动化测试&#xff1a;其实自动化测试&#xff0c;就是让我们写一段程序去测试另一段程序是否正常的过程&#xff0c;自动化测试可以更加省力的替代一部分的手动操作。 现在自动化测试的现状&#xff0c;也是所有学习者关心的&#xff0c;但现在国内公司主要是以功能测…

Flash Linux to eMMC

实验目的&#xff1a;从eMMC启动Linux系统 Step1:确定eMMC被挂在哪个设备 哪个设备含有boot0分区和boot1分区&#xff0c;就是eMMC。实验中是位于mmcblk1上。 rootam64xx-evm:~# ls -l /dev/mmcblk* brw-rw---- 1 root disk 179, 0 Feb 27 13:25 /dev/mmcblk0 brw-rw---- …

10 kafka生产者发送消息的原理

1.发送原理&#xff1a; 在消息发送的过程中&#xff0c;涉及到了两个线程——main 线程和 Sender 线程。在 main 线程 中创建了一个双端队列 RecordAccumulator。main 线程将消息发送给 RecordAccumulator&#xff0c; Sender 线程不断从 RecordAccumulator 中拉取消息发送到…

【机器学习】P10 从头到尾实现一个线性回归案例

这里写自定义目录标题&#xff08;1&#xff09;导入数据&#xff08;2&#xff09;画出城市人口与利润图&#xff08;3&#xff09;计算损失值&#xff08;4&#xff09;计算梯度下降&#xff08;5&#xff09;开始训练&#xff08;6&#xff09;画出训练好的模型&#xff08;…

离散数学_第二章:基本结构:集合、函数、序列、求和和矩阵(1)

集合与函数2.1 集合 2.1.1 集合的基本概念 2.1.2 集合的表示方法 2.1.3 文氏图 2.1.4 证明集合相等 2.1.5 集合的大小 ——基 2.1.6 幂集 2.1.7 集族、指标集 2.1.8 笛卡尔积 2.1.9 容斥原理2.1 集合 2.1.1 集合的基本概念 定义1&#xff1a;集合 是不同对象的一个无序的聚…

【SpringCloud系列】开发环境下重写Loadbalancer实现自定义负载均衡

前言 spring-cloud-starter-netflix-ribbon已经不再更新了&#xff0c;最新版本是2.2.10.RELEASE&#xff0c;最后更新时间是2021年11月18日&#xff0c;详细信息可以看maven官方仓库&#xff1a;https://search.maven.org/artifact/org.springframework.cloud/spring-cloud-st…

Windows环境下实现设计模式——职责链模式(JAVA版)

我是荔园微风&#xff0c;作为一名在IT界整整25年的老兵&#xff0c;今天总结一下Windows环境下如何编程实现职责链模式&#xff08;设计模式&#xff09;。 不知道大家有没有这样的感觉&#xff0c;看了一大堆编程和设计模式的书&#xff0c;却还是很难理解设计模式&#xff…