【MYSQL】MYSQL操作库

1.数据库字符编码集/数据库校验集

当我们在数据库中保存数据时,需要存和取时候编码一致,比方说你用汉语保存的数据,当你读的时候为了避免乱码问题,也必须用汉语读,这就叫做数据库字符编码集一致。
当我们进行查找,比较,读取时候,使用的字段比较编码,叫做数据库的校验集
总结:数据库无论对数据做任何操作,都必须保证操作和编码是一致的(保证不会出现乱码)

2.认识系统编码

show variables like 'character_set_database';//查看系统默认的数据库字符集
在这里插入图片描述

show variables like 'collation_database';//查看系统默认的数据库校验集
在这里插入图片描述

在这里插入图片描述
大多数校验集都是utf-8编码
show charset;//查看数据库支持所有的字符编码集
在这里插入图片描述

show collation;//查看系统中所有的校验集
在这里插入图片描述

3.指定编码创建数据库

当创建了数据库,并且新建表之后,插入数据,会在对应的var/lib/mysql下对应新建数据库目录下形成.opt文件,这个文件里面保存着该数据库的默认编码字符集和默认校准集,但是由于mysql版本太新,8.0之后就不提供db.opt文件了。
create database d2 charset=utf8mb4;//创建数据库,指定字符集为utf8mb4
show create database d2;//查看对应数据库创建时的编码格式
在这里插入图片描述

create database d3 character set utf8mb4;同时这种方法也可以在创建数据库同时指定字符集
create database d4 charset=utf8mb4 collate utf8mb4_0900_ai_ci;//同时创建数据库,设置字符集为utf8mb4,校验集为utf8mb4_0900_ai_ci
当我们在创建数据库时为啥要先配置默认的编码方式呢
为了让第一次创建数据库时,如果没有设置数据库编码格式,就会使用配置时的默认编码方式,如果设置用设置的,没有用系统默认的,设置数据库的编码方式

4.不同校验编码的影响

不区分大小写
创建一个数据库,校验规则使用utf8mb4_general_ci[不区分大小写]
create database test3 charset=utf8mb4 collate utf8mb4_general_ci;//创建数据库,使用如上配置编码集
use test3//在哪个数据库下建表
create table person(name varchar(20));//建一个表,表名为person,表中放名字 占20字节
insert into person values('a'); //插入字符
insert into person values('A');
insert into person values('b');
insert into person values('B');
select * from person;//从person 表中选择全部打印出来
在这里插入图片描述
select * from person where name='a';//在表中查找a,打印处理,发现这种校验集不区分大小写
在这里插入图片描述


区分大小写
创建一个数据库,校验规则使用utf8mb4_bin[区分大小写]
create database test4 charset=utf8mb4 collate utf8mb4_bin;
use test4
create table person(name varchar(20));//建一个表,表名为person,表中放名字 占20字节
insert into person values('a'); //插入字符
insert into person values('A');
insert into person values('b');
insert into person values('B');
select * from person;//从person 表中选择全部打印出来
在这里插入图片描述

在这里插入图片描述
select * from person where name='a';//查找a在当前表中person
在这里插入图片描述

5.操作库的其他操作

创建数据库

create database if not exists d1;
上面的if not exists为可选项目,可加也可不加。
如果存在的话,就不会给你创建
在这里插入图片描述

当创建一个数据库时,对应/var/lib/mysql 目录下多一个目录d1
在这里插入图片描述

删除数据库

在这里插入图片描述
我们就删除之前创建好的d1,先show databases;
发现d1存在。
drop database d1; //删除数据库
在这里插入图片描述

修改数据库

比方说我们要修改test4数据库的字符集和校验集,修改和test3一样

修改前
在这里插入图片描述

alter database test4 charset=utf8mb4 collate utf8mb4_general_ci;//修改数据库编码集

修改后在这里插入图片描述

查看该数据库下有几个表

show tables;

在这里插入图片描述

查看自己目前在哪个数据库

select database(); 在这里插入图片描述

按照ascll码顺序查找

select * from person order by name;
在这里插入图片描述

6.数据库的备份和还原

数据库备份
mysqldump -P3306 -uroot -B test3 >./test3.sql//把test3数据库重定向到当前目录下的test3.sql文件中去
在这里插入图片描述
vim test3.sql//vim打开test3.sql
在这里插入图片描述
这个里面都是对test3数据库的操作


然后删除test3数据库
在这里插入图片描述


数据库的还原

source /root/test3.sql;//source +备份文件的路径
在这里插入图片描述

在这里插入图片描述
如果备份的不是整个数据库,而是其中的一张表
mysqldump -u root -p 数据库名 表名1 表名2 > D:/mytest.sql

同时备份多个数据库
mysqldump -u root -p -B 数据库名1 数据库名2 ... > 数据库存放路径

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

为什么呢?
在这里插入图片描述
在这里插入图片描述
我们发现少了一个创建数据库的默认字符集和校验集,所以我们在恢复的时候,先创建一个空数据库,在use这个数据库,保证使用了默认的字符集和校验集
在这里插入图片描述
相当于备份了test3数据库,但是没有备份创建数据库的字符集和校验集,在恢复的时候就没有默认的字符集和校验集,我们如果在创建一个空的数据库,然后use这个数据库,然后还原的话,就是这个新的数据库就是还原的.

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

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

相关文章

C语言的结构体与联合体

引言 C语言提供了结构体和联合体两种聚合数据类型,使得程序员可以创建包括多个数据类型的复杂数据结构。结构体用于将不同类型的数据组合成一个单元,而联合体用于在同一存储空间中存储不同类型的数据。本篇文章将详细介绍C语言中的结构体和联合体&#x…

快消品经销商如何进行有效的团队激励?

很多经销商会面临员工工作不积极、吃大锅饭的现象,导致企业人力成本浪费严重,工作效率也得不到提升,因此经销商老板们必须进行一些绩效考核,然后开展一些有效的激励政策,这样通过提成激励来提高员工的积极性。 1、梳理…

探地雷达正演模拟,基于时域有限差分方法,四

突然发现第三章后半部分已经讲了使用接收记录成像的问题,所以这一章只讲解简单的数据分析。 (均以宽角法数据为例子,剖面法数据处理方式都是相同的)假设,我们现在已经获得了一个GPR记录,可以是常用的.sgy格…

有关排序的算法

目录 选择法排序 冒泡法排序 qsort排序(快速排序) qsort排序整型 qsort排序结构体类型 排序是我们日常生活中比较常见的问题,这里我们来说叨几个排序的算法。 比如有一个一维数组 arr[8] {2,5,3,1,7,6,4,8},我们想要把它排成升序&#…

StarNet实战:使用StarNet实现图像分类任务(一)

文章目录 摘要安装包安装timm 数据增强Cutout和MixupEMA项目结构计算mean和std生成数据集 摘要 https://arxiv.org/pdf/2403.19967 论文主要集中在介绍和分析一种新兴的学习范式——星操作(Star Operation),这是一种通过元素级乘法融合不同子…

排序-快速排序

快速排序(Quick Sort)是一种高效的排序算法,由英国计算机科学家霍尔(C. A. R. Hoare)在1960年提出。它的基本思想是:通过一趟排序将待排记录分隔成独立的两部分,其中一部分记录的关键字均比另一…

探究Spring Boot自动配置的底层原理

在当今的软件开发领域,Spring Boot已经成为了构建Java应用程序的首选框架之一。它以其简单易用的特性和强大的功能而闻名,其中最引人注目的特性之一就是自动配置(Auto-Configuration)。Spring Boot的自动配置能够极大地简化开发人…

VS2022 使用C++访问 mariadb 数据库

首先,下载 MariaDB Connector/C++ 库 MariaDB Products & Tools Downloads | MariaDB 第二步,安装后 第三步,写代码 #include <iostream> #include <cstring> #include <memory> #include <windows.h>#include <mariadb/conncpp.hpp>…

使用 Python 进行测试(6)Fake it...

总结 如果我有: # my_life_work.py def transform(param):return param * 2def check(param):return "bad" not in paramdef calculate(param):return len(param)def main(param, option):if option:param transform(param)if not check(param):raise ValueError(…

js中有哪些函数?

命名函数&#xff1a;通过function声明的函数&#xff1b; 匿名函数&#xff1a;通过函数表达式定义的函数&#xff1b; 自执行函数&#xff1a;自动执行的函数&#xff0c;不可以被调用&#xff0c;也称为一次性函数&#xff1b; 闭包函数&#xff1a;内部可以访问外部&…

winform 应用程序 添加 wpf控件后影响窗体DPI改变

第一步&#xff1a;添加 应用程序清单文件 app.manifest 第二步&#xff1a;把这段配置 注释放开&#xff0c;第一个配置true 改成false

Java——只保留一位小数

使用return Math.random(); 要将 Math.random() 的结果保留一位小数&#xff0c;您可以使用以下代码&#xff1a; double randomNumber Math.random(); double roundedNumber Math.round(randomNumber * 10.0) / 10.0; return roundedNumber; 这里的关键是将随机数乘以 …

Wifi通信协议:WEP,WPA,WPA2,WPA3,WPS

前言 无线安全性是保护互联网安全的重要因素。连接到安全性低的无线网络可能会带来安全风险&#xff0c;包括数据泄露、账号被盗以及恶意软件的安装。因此&#xff0c;利用合适的Wi-Fi安全措施是非常重要的&#xff0c;了解WEP、WPA、WPA2和WPA3等各种无线加密标准的区别也是至…

实战 | 基于YOLOv10的车辆追踪与测速实战【附源码+步骤详解】

《博主简介》 小伙伴们好&#xff0c;我是阿旭。专注于人工智能、AIGC、python、计算机视觉相关分享研究。 ✌更多学习资源&#xff0c;可关注公-仲-hao:【阿旭算法与机器学习】&#xff0c;共同学习交流~ &#x1f44d;感谢小伙伴们点赞、关注&#xff01; 《------往期经典推…

go 基础笔记

文章目录 go 基础笔记Go项目依赖关系ORM&#xff08;对象关系映射&#xff09;库mysql 建库 go 基础笔记 _ "github.com/go-sql-driver/mysql"该行代码是Go语言中的导入语句&#xff0c;但带有下划线&#xff08;_&#xff09;前缀表示该包被导入但其内容不会被直接…

【单片机毕业设计选题24008】-基于单片机的寝室系统设计

系统功能: 1. 采用STM32最小系统板控制&#xff0c;将采集到温湿度光照等传感器数据显示在OLED上 2. 通过离线语音模块开关灯&#xff0c;风扇&#xff0c;门。 3. 监测到MQ2烟雾后触发报警。 4. 语音&手动&定时控制窗帘。 5. 按键开启布防模式&#xff0c;布防后…

上位机图像处理和嵌入式模块部署(h750 mcu和usb虚拟串口)

【 声明&#xff1a;版权所有&#xff0c;欢迎转载&#xff0c;请勿用于商业用途。 联系信箱&#xff1a;feixiaoxing 163.com】 对于mcu usb而言&#xff0c;大部分情况下&#xff0c;它和上位机之间的关系都是device的关系。一般usb&#xff0c;可以分成host和device。如果mc…

自动化测试git的使用

git是一款分布式的配置管理工具。本文主要讲git如何在自动化测试中安装&#xff0c;上传及拉取下载代码。 1 、git 介绍 每天早上到公司&#xff0c;从公司的git服务器上下载最新的代码&#xff0c;白天在最新的代码基础上&#xff0c;编写新的代码&#xff0c;下班时把“代码…

SSID简介

一、 SSID 概念定义 SSID&#xff08;Service Set Identifier&#xff09;即服务集标识符。它是无线网络中的一个重要标识&#xff0c;用于区分不同的无线网络。 相当于无线网络的名称&#xff0c;用于区分不同的无线网络。用户在众多可用网络中识别和选择特定网络的依据。通…

消息队列-消息队列保证消息可靠性的一些建议

如何检测到消息丢失&#xff1f; 美团消息队列文章中提到了对消息队列的监控手段&#xff0c;我理解消息丢失&#xff0c;根据不同节点来查看监控&#xff1a; 生产者生产丢失&#xff1a;监控中生产者生产量异常消费者消费丢失&#xff1a;查看消费者消息延迟监控、消费者 o…