【MySQL】数据库的增删查改+备份与恢复

news2024/9/20 7:17:09

文章目录

  • 一、创建数据库create
  • 二、数据库所使用的编码
    • 2.1 查询字符集和校验集
    • 2.2 指定编码创建数据库
    • 2.3 不同的校验集对比
  • 三、删除数据库drop
  • 四、查看数据库show
  • 五、修改数据库alter
  • 六、数据库的备份与恢复
    • 6.1 备份 mysqldump
    • 6.2 恢复source
    • 6.3 仅备份几张表或备份多个数据库
  • 七、查看数据库的连接情况

一、创建数据库create

create database database1;

在这里插入图片描述
创建库本质是在/var/lib/mysql中创建一个目录

二、数据库所使用的编码

数据库编码创建数据库的时候,有两个编码集:

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

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

2.1 查询字符集和校验集

  • 查询当前MySQL的编码集
show variables like 'character_set_database';

在这里插入图片描述

  • 查询当前MySQL的校验集
show variables like 'collation_database';

在这里插入图片描述

2.2 指定编码创建数据库

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

  • 创建一个使用utf8字符集的 d1 数据库
create database d1 charset=utf8;
  • 创建一个使用utf8字符集,并带校对规则的 d2 数据库。
create database d2 charset=utf8 collate utf8_general_ci;

2.3 不同的校验集对比

创建两个数据库,编码都是utf8,但是校验集不同,一个是使用utf8_ general_ ci(不区分大小写),另一个是使用utf8_ bin(区分大小写)

在这里插入图片描述

  • test1

建表+插入数据:

use test1;
create table person(name varchar(10));
insert into person values('a');
insert into person values('A');

进行查询:

select * from person where name='a';

在这里插入图片描述

  • test2

建表+插入数据:

use test2
create table person(name varchar(20));
insert into person values('a');
insert into person values('A');

进行查询:

select * from person where name='a';

在这里插入图片描述

三、删除数据库drop

删除数据库本质是在/var/lib/mysql中删除一个目录

drop database database1;

删除数据库后:

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

四、查看数据库show

确认当前所在数据库:

select database();

在这里插入图片描述

  • 查看数据库
show databases;

在这里插入图片描述

  • 查看当前数据库中的所有表
show tables;

在这里插入图片描述

  • 查看创建表时的详细信息
show create database test;

在这里插入图片描述

1️⃣ MySQL 建议我们关键字使用大写,但是不是必须的。
2️⃣ 数据库名字的反引号``,是为了防止使用的数据库名刚好是关键字
3️⃣ /*!40100 default… */ 这个不是注释,表示当前mysql版本大于4.01版本,就执行这句话。

五、修改数据库alter

在项目实际开发中,经常修改某个表的结构,比如字段名字,字段大小,字段类型,表的字符集类型,表的存储引擎等等。我们还有需求,添加字段,删除字段等等。这时我们就需要修改表。

  • 修改字符集和校验和
alter database test charset=gbk collate gbk_chinese_ci;

在这里插入图片描述

六、数据库的备份与恢复

6.1 备份 mysqldump

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

在这里插入图片描述
此时vim打开test.sql,我们会发现,备份的不仅仅只是数据,还有把历史上所有有效的操作都备份起来了。
也就是说 test.sql 文件里的内容,其实把我们整个创建数据库,建表,导入数据的语句都装载这个文件中。

6.2 恢复source

source /home/yyh/MySQL/test.sql;

在这里插入图片描述

备份不是只备份了数据,操作也备份了:
在这里插入图片描述

6.3 仅备份几张表或备份多个数据库

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

备份是在shell命令行进行的,而非MySQL客户端。如果备份一个数据库时,没有带上-B参数, 在恢复数据库时,需要先创建空数据库,然后使用数据库,再使用source来还原。
-B的意思:在备份文件test.sql中是有创建create database的语句:

七、查看数据库的连接情况

查看当前有什么人在使用数据库,也就是查看连接情况:

show processlist;

在这里插入图片描述

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

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

相关文章

互联网宠物医院开发:宠物健康护航的新选择

随着人们对宠物的关注度逐渐提高,宠物医疗服务也得到了更多的关注和需求。而互联网宠物医院作为一种新兴的医疗服务形式,正以其独特的优势和便捷性受到越来越多宠物主人的青睐。   首先,互联网宠物医院的最大优势在于提供了便捷的服务。宠物…

寻找峰值——力扣162

文章目录 题目描述法一 寻找最大值法二 二分法 题目描述 法一 寻找最大值 int findPeakElement(vector<int>& nums){return max_element(nums.begin(), nums.end()) - nums.begin();}法二 二分法 int findPeakElement(vector<int>& nums) {int l 0, r n…

onnx模型的保存与使用

1 onnx模型的保存 在网络训练结束之后&#xff0c;通常会将模型的权重参数保存到.pth或.pt文件中&#xff0c;如果部署环境中有pytorch&#xff0c;那么直接新建一个模型类对象&#xff0c;然后导入权重参数即可&#xff0c;但如果部署环境中只有OpenCV&#xff0c;没有pytorc…

融合大数据、物联网和人工智能的智慧校园云平台源码 智慧学校源码

电子班牌系统用以展示各个班级的考勤信息、授课信息、精品课程、德育宣传、班级荣誉、校园电视台、考场信息、校园通知、班级风采&#xff0c;是智慧校园和智慧教室的对外呈现窗口&#xff0c;也是学校校园文化宣传和各种信息展示的重要载体。将大数据、物联网和人工智能等新兴…

27岁到来之际,我在阿里实现了年薪30W+的小目标

毕业快 5 年了&#xff0c;每当和人聊起自己的职场飞升之路&#xff0c;都不由得感激当初果断逃离舒适圈的自己。出身一所非 211、985 院校&#xff0c;毕业后入职了一家小型互联网公司&#xff0c;当着普普通通的初级测试工程师&#xff0c;工作期间虽然也时常遇到挑战&#x…

性能优化点

Arts and Sciences - Computer Science | myUSF 索引3层&#xff08;高度为3&#xff09;一般对于数据库地址千万级别的表 大于2000万的数据进行分库分表存储 JVM整体结构及内存模型 JVM调优&#xff1a;主要为减少FULL GC的执行次数或者减少FULL GC执行时间 Spring Boot程序…

在线文档管理工具都有什么值得推荐的?

在线文档管理工具是现代企业和个人必备的工具之一&#xff0c;它们可以帮助用户方便地创建、编辑、共享和管理文档。 几个值得推荐的在线文档管理工具&#xff1a; Google 文档&#xff1a;Google 文档是一款免费的在线文档工具&#xff0c;它提供了和 Microsoft Word 类似的…

微信公众号开发学习

申请测试号 地址 通过F12抓取体验接口权限表的HTML 解析HTML 引入pom <dependency><groupId>org.projectlombok</groupId><artifactId>lombok</artifactId><optional>true</optional></dependency><dependency><…

物联网|可变参数的使用技巧|不一样的点灯实验|访问外设的寄存器|操作寄存器实现点灯|硬件编程的基本流程-学习笔记(11)

文章目录 可变参数的使用技巧第三阶段-初级实验Lesson5:不一样的点灯实验---学习I/O的输出 ☆点灯的电路图分析1 一起看看点灯的电路图Tip1:另一种点灯的电路Tip1:如何访问外设的寄存器2 STM32F407中操作GPIO的方法 通过直接操作寄存器实现点灯实验Tip1:硬件编程的基本流程 2代…

数据可视化(4)散点图及面积图

1.简单散点图 #散点图 #scatter(x,y) x数据&#xff0c;y数据 x[i for i in range(10)] y[random.randint(1,10) for i in range(10)] plt.scatter(x,y) plt.show()2.散点图分析 #分析广告支出与销售收入相关性 dfcarpd.read_excel(广告支出.xlsx) dfdatapd.read_excel(销售…

VS开发Qt程序,无法打印QDebug调试信息,VS进行Qt开发时Qt Designer无法使用“转到槽”选项

VS开发Qt程序&#xff0c;无法打印QDebug调试信息&#xff0c;VS进行Qt开发时Qt Designer无法使用“转到槽”选项 VS开发Qt程序&#xff0c;无法打印QDebug调试信息VS进行Qt开发时Qt Designer无法使用“转到槽”选项 VS开发Qt程序&#xff0c;无法打印QDebug调试信息 解决方案…

使用Idea提交项目到远程仓库

使用Idea提交项目到远程仓库 1.在Idea中打开本地要推送的项目2.创建远程仓库并提交 1.在Idea中打开本地要推送的项目 tips: 首先你得有git工具&#xff0c;没有的话可以参考下面的这篇文章 git与gitee结合使用&#xff0c;提交代码&#xff0c;文件到远程仓库 从导航栏中选择 V…

如何快速开拓海外华人市场?附解决方案!

开拓华人市场对于企业来说是非常必要的。华人市场庞大且潜力巨大&#xff0c;拥有巨额的消费能力。随着华人经济的不断增长&#xff0c;越来越多的企业开始意识到华人市场的重要性。 通过开拓华人市场&#xff0c;企业可以获得更多的销售机会&#xff0c;并且在竞争激烈的市场…

Go语言time库,时间和日期相关的操作方法

time库 用于处理时间、日期和时区的核心库。在实际开发中&#xff0c;常常需要与时间打交道&#xff0c;例如记录日志、处理时间差、计算时间间隔等等。因此&#xff0c;掌握time库的使用方法对于Go开发者来说非常重要。 在Go语言中&#xff0c;时间表示为time.Time类型&…

嵌入式开发的学习内容和技能包括:

. 熟悉C语言编程 掌握基础电子知识&#xff0c;如数字电路、模拟电路和单片机 .熟练掌握嵌入式操作系统的原理、内核架构和应用&#xff0c;如Linux、RTOS等 了解各种外设接口及其驱动程序开发&#xff0c;如SPI、I2C、USART等 熟悉常用的嵌入式开发工具和软件工程流程&#…

【ASPICE】:学习记录

学习记录 ASPICE中文资料什么是ASPICE过程参考模型 ASPICE全称“Automotive Software Process Improvement and Capability dEtermination”&#xff0c;即“汽车软件过程改进及能力评定”模型框架 ASPICE中文资料 主要资料来源 什么是ASPICE 过程参考模型

神经网络原理概述

文章目录 1.神经元和感知器1.1.什么是感知器1.2.什么是单层感知器1.3.多层感知机&#xff08;Multi-Layer Perceptron&#xff0c;MLP&#xff09; 2.激活函数2.1.单位阶跃函数2.2.sigmoid函数2.3.ReLU函数2.4.输出层激活函数 3.损失函数4.梯度下降和学习率5.过拟合和Dropout6.…

python学到什么程度算入门,python从入门到精通好吗

本篇文章给大家谈谈python学到什么程度算入门&#xff0c;以及python从入门到精通好吗&#xff0c;希望对各位有所帮助&#xff0c;不要忘了收藏本站喔。 学习 Python 之 进阶学习 一切皆对象 1. 变量和函数皆对象2. 模块和类皆对象3. 对象的基本操作 (1). 可以赋值给变量(2). …

JAVA- SQL注入案例(黑马程序员)和避免 超级详细

文章目录 sql注入准备1.创建应该新的数据库用于测试&#xff1b;2.修改配置3.启动jar包4.打开网页测试5.测试sql注入 sql注入避免1. java中的登录逻辑代码2.演示sql注入3.原因5.参数化查询-PreparedStatement SQL注入是什么&#xff1f; SQL 注入&#xff08;SQL Injection&…

【Python】Web学习笔记_flask(2)——getpost

flask提供的request请求对象可以实现获取url或表单中的字段值 GET请求 从URL中获取name、age两个参数 from flask import Flask,url_for,redirect,requestappFlask(__name__)app.route(/) def index():namerequest.args.get(name)agerequest.args.get(age)messagef姓名:{nam…