当前位置: 首页 > news >正文

【MySQL】库的基础操作

🌎库的操作


文章目录:

库的操作

    创建删除数据库

    数据库编码集和校验集

    数据库的增删查改
      数据库查找
      数据库修改

    备份和恢复

    查看数据库连接情况

    总结


前言
  数据库操作是软件开发中不可或缺的一部分,掌握数据库基本操作也是每个程序员必备的技能。

在这里插入图片描述


🚀创建删除数据库

 创建数据库语法:

CREATE DATABASE [IF NOT EXISTS] db_name [create_specification [,create_specification] ...]create_specification:
[DEFAULT] CHARACTER SET charset_name
[DEFAULT] COLLATE collation_name
  • IF NOT EXITS 选项:表示如果你的系统里没有同名的数据库则创建之。
  • CHARACTER SET 选项: 指定数据库采用的字符集
  • COLLATE 选项: 指定数据库字符集的校验规则

  ‘[]’ 的内容表示可选项,可以选择也可以不选择。而 数据库本质上是目录文件

在这里插入图片描述

  一个数据库不想要了,那么就需要删除它,我们使用以下SQL语句删除数据库:

DROP DATABASE [IF EXISTS] db_ name;
  • IF EXITS 选项:如果库里存在该指定的数据库则删除之,否则不执行。

  执行删除之后的结果将会是:数据库内部看不到对应的数据库,对应的文件夹全部删除,级联删除,数据表也全部删除

在这里插入图片描述

  以上创建的数据库没有使用指定的 字符集 以及 校验规则,现今,我想创建一个数据库,并且数据库的 编码集指定为utf-8,那么我就该这么创建:

CREATE DATABASE db_name CHARSET=utf8; --指定创建的数据库字符集为utf-8字符集--

在这里插入图片描述

  这里我们创建的数据库就带上了utf8的字符集,现在我想创建一个新的库文件,该库不仅带有字符集,并且还需要带有 校验集,我们可以使用如下SQL语句创建:

CREATE DATABASE db_name CHARSET=utf8 collate utf8_general_ci; --指定创建的数据库字符集为utf-8字符集--

在这里插入图片描述


🚀数据库编码集和校验集

  在创建数据库的时候,我们最后在创建的时候带上了字符集和编码集,那么什么是字符集什么又是编码集呢?

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

  而它们俩之间的关系:数据库无论对数据做任何操作,都必须保证操作和编码是编码一致的

查看数据库默认字符集

SHOW variables LIKE 'character_set_database';

在这里插入图片描述

查看数据默认校验规则

SHOW variables LIKE 'collation_database';

在这里插入图片描述

查看全部字符集

SHOW CHARSET;

在这里插入图片描述

查看全部校验集

SHOW collation;

在这里插入图片描述
  而数据库为什么需要统一校验集编码集呢?其实不同的编码集和校验集对数据库的各种操作所影响的 结果 也就会不同,比如不同的校验集就可能导致数据在排序的时候得到的结果不同。


🚀数据库的增删查改

✈️数据库查找

  数据库的删除和添加我们在最开始已经说过了,而想要显示自己创建的数据库需要使用如下SQL指令:

SHOW CREATE DATABASE db_name;

在这里插入图片描述

注意

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

  我们创建数据库是为了将来能在数据库内部存储各种表结构的,但是这么多数据库我们如何对其中某一个数据库进行增加表的操作呢?我们使用如下SQL命令:

USE db_name; --切换数据库--

在这里插入图片描述
  其实切换数据库的操作在Linux当中就是cd 也就是进入到目录当中,因为只有进入到目录当中创建的文件才会在该目录下,数据库也是如此,必须先use切换到指定数据库,才能在库下创建各种表结构。

  有时候操作久了可能会忘记当前在那个数据库,我们可以使用如下面SQL指令来 查看正在使用哪个数据库

SELECT DATABASE(); --查看当前所属哪个库--

在这里插入图片描述


✈️数据库修改

  数据库的增删查改现在只剩下修改数据库了,对数据库的修改我们可以使用如下SQL指令:

ALTER DATABASE db_name[alter_spacification [,alter_spacification]...]alter_spacification:
[DEFAULT] CHARACTER SET charset_name
[DEFAULT] COLLATE collation_name

  我们常说的对数据库的修改通常是指修改数据库的字符集、校验集。

在这里插入图片描述


🚀备份和恢复

  数据库存储着大量数据,而现代社会最重要的是什么?信息,所以为了保障信息安全,避免一些意外事件发生,有必要对数据库进行备份,而备份数据库到本地其实也很简单。在Linux系统下如果需要备份某个数据库可以使用如下指令:

mysqldump -P3306 -u root -p 密码 -B 数据库名 > 数据库备份存储的文件路径#将数据库重定向到某个路径下的文件

在这里插入图片描述
  这个备份文件里面长什么样子呢?不妨使用vim打开看看:

在这里插入图片描述

  而我们发现,.sql文件里面的内容其实是把我们对整个数据库的 创建数据库、建表以及导入数据的 语句 都装载在这个文件中了。

  我们把test1库重定向到Linux中,那么我就可以把这个文件发给有需要的人,有需要的人接收到文件之后,想要访问这个数据库那么该如何恢复数据库呢?我们可以使用如下SQL语句对 数据库文件进行恢复

source /pathname/file.sql;

在这里插入图片描述

  最开始数据库里是没有test1库的经过恢复即可把sql文件加载进数据库。

  • 如果你需要备份的不是一个库,而是一张表,我们可以使用如下指令:
mysqldump -u root -p 数据库名 表名1 表名2 > /pathname/xxx.sql
  • 同时备份多个数据库
mysqldump -u root -p -B 数据库名1 数据库名2 ... > 数据库存放路径
  • 如果备份一个数据库时,没有带上-B参数, 在恢复数据库时,需要先创建空数据库,然后使用数据库,再使用source来还原

🚀查看数据库连接情况

  如果你感觉你的数据库操作起来非常卡顿,你怀疑有别人连接了你的数据库,那么我们可以使用以下SQL语句来 查看数据库连接情况

show processlist;

在这里插入图片描述

  这个SQL语句就可以告诉我们哪些用户连接了我们的MySQL,如果查出某个用户不是你正常登陆的,很有可能你的数据库被人入侵了。以后大家发现自己数据库比较慢时,可以用这个指令来查看数据库连接情况。


📒✏️总结

  •  本文简单说明了 数据库的增删查改 基本SQL语句及其选项。
  •  数据库 编码集校验集 要一一对应,不同的编码集对一些特定的文字或符号有不同的识别方式,不同的校验集对一些数据操作的结果可能不同。
  •  为了保证数据安全问题,保证容灾性,所以有必要对重要的 数据库进行备份,备份与恢复的语句也在本文介绍。
  • 数据库安全是要放在首位 的,保证数据安全就要定期检测数据库连接的情况。

  本文到此结束,如果本文能帮到您的话还望三连支持啊~~

相关文章:

【MySQL】库的基础操作

🌎库的操作 文章目录: 库的操作 创建删除数据库 数据库编码集和校验集 数据库的增删查改       数据库查找       数据库修改 备份和恢复 查看数据库连接情况 总结 前言:   数据库操作是软件开发中不可或缺的一部分&#xff0…...

嵌入式0基础开始学习 ⅠC语言(2)运算符与表达式

1.运算符 什么是运算符? 用来进来某种运算的符号 如: - * / (取余,取模) a,几目运算符 根据其操作数的不同 单目运算符 该运算符…...

汇编语言(一)

寄存器:cpu中可以储存数据的器件(AX,BX) 汇编语言的组成:1.汇编指令 2.伪指令 3.其他符号 存储器:cpu,传入指令和数据,加以运算。(内存) 指令和数据&#…...

2010-2022年各省新质生产力数据(含原始数据+测算代码+计算结果)

2010-2022年各省新质生产力数据(含原始数据测算代码计算结果) 1、时间:2010-2022年 2、范围:31省 3、指标:gdp(亿元)、在岗职工工资:元、第三产业就业比重、人均受教育平均年限、…...

需求分析部分图形工具

描述复杂的事物时,图形远比文字叙述优越得多,它形象直观容易理解。前面已经介绍了用于建立功能模型的数据流图、用于建立数据模型的实体-联系图和用于建立行为模型的状态图,本节再简要地介绍在需求分析阶段可能用到的另外3种图形工具。 1 层次方框图 层次方框图用树形结…...

ML307R OpenCPU GPIO使用

一、GPIO使用流程图 二、函数介绍 三、GPIO 点亮LED 四、代码下载地址 一、GPIO使用流程图 这个图是官网找到的,ML307R GPIO引脚电平默认为1.8V,需注意和外部电路的电平匹配,具体可参考《ML307R_硬件设计手册_OpenCPU版本适用.pdf》中的描…...

python基于深度学习的聊天机器人设计

python基于深度学习的聊天机器人设计 开发语言:Python 数据库:MySQL所用到的知识:Django框架工具:pycharm、Navicat、Maven 系统功能实现 登录注册功能 用户在没有登录自己的用户名之前只能浏览本网站的首页,想要使用其他功能都…...

Golang设计模式(四):观察者模式

观察者模式 什么是观察者 观察者模式(Observer Pattern):定义对象之间的一种一对多依赖关系,使得每当一个对象状态发生改变时,其相关依赖对象皆得到通知并被自动更新。观察者模式的别名包括发布-订阅(Publish/Subscribe&#xf…...

huggingface 笔记:查看GPU占用情况

0 准备部分 0.1 创建虚拟数据 import numpy as npfrom datasets import Datasetseq_len, dataset_size 512, 512 dummy_data {"input_ids": np.random.randint(100, 30000, (dataset_size, seq_len)),"labels": np.random.randint(0, 1, (dataset_size…...

JavaSE 学习记录

1. Java 内存 2. this VS super this和super是两个关键字,用于引用当前对象和其父类对象 this 关键字: this 关键字用于引用当前对象,即调用该关键字的方法所属的对象。 主要用途包括: 在类的实例方法中,通过 this …...

HTML与CSS的学习

什么是HTML,CSS&#xff1f; HTML(HyperText Markup Language):超文本标记语言。 超文本:超越了文本的限制&#xff0c;比普通文本更强大。除了文字信息&#xff0c;还可以定义图片、音频、视频等 标记语言:由标签构成的语言 >HTML标签都是预定义好的。例如:使用<a>…...

【单片机】STM32F070F6P6 开发指南(一)STM32建立HAL工程

文章目录 一、基础入门二、工程初步建立三、HSE 和 LSE 时钟源设置四、时钟系统&#xff08;时钟树&#xff09;配置五、GPIO 功能引脚配置六、配置 Debug 选项七、生成工程源码八、生成工程源码九、用户程序下载 一、基础入门 f0 pack下载&#xff1a; https://www.keil.arm…...

源码编译安装Rsync数据同步

源码编译安装 RPM软件包&#xff1a;rpm -ivh 或者 yum -y install 需要开发编译工具gcc、gcc-c、make等... 源码包----开发工具gcc与make----》可以执行的程序-----》运行安装 •主要优点 –获得软件的最新版&#xff0c;及时修复bug –软件功能可按需选择/定制&#xff…...

SQL Server2019安装步骤教程(图文)_最新教程

一、下载SQL Server2019 1.到微软官网下载SQL Server Developer版本&#xff0c;官网当前的2019版本下载需要注册账号。 不想注册的朋友&#xff0c;可以选择从网盘下载&#xff1a;点击此处直接下载 2.下载之后先解压&#xff0c;解压后执行exe安装程序。打开之后的界面如下…...

【SpringBoot】SpringBoot中防止接口重复提交(单机环境和分布式环境)

&#x1f4dd;个人主页&#xff1a;哈__ 期待您的关注 目录 &#x1f33c;前言 &#x1f512;单机环境下防止接口重复提交 &#x1f4d5;导入依赖 &#x1f4c2;项目结构 &#x1f680;创建自定义注解 ✈创建AOP切面 &#x1f697;创建Conotroller &#x1f4bb;分布…...

零基础学Java(全170集)

课程概述 本课程旨在全面深化对 Java 语言的核心技术理解&#xff0c;并提升编程实践能力。课程内容涵盖以下关键领域&#xff1a; 掌握Java核心语法&#xff0c;为后续学习打下扎实的基础。熟练运用Java常用的类库与开发工具&#xff0c;提高开发效率与质量。解决面向对象编…...

摄像头应用测试

作者简介&#xff1a; 一个平凡而乐于分享的小比特&#xff0c;中南民族大学通信工程专业研究生在读&#xff0c;研究方向无线联邦学习 擅长领域&#xff1a;驱动开发&#xff0c;嵌入式软件开发&#xff0c;BSP开发 作者主页&#xff1a;一个平凡而乐于分享的小比特的个人主页…...

Golang框架HTTP客户端框架zdpgo_resty发送表单请求

核心代码 这里通过字典传递了一个简单的表单数据。 发送的是POST请求。 resp, err : client.R().SetFormData(map[string]string{"username": "jeeva","password": "mypass",}).Post("http://127.0.0.1:3333/login")fmt.P…...

【机器学习300问】99、多通道卷积神经网络在卷积操作时有哪些注意事项?

一、多通道卷积神经网络示例 还是以图像处理为例&#xff0c;如果你的目标不仅是分析灰度图像特性&#xff0c;还打算捕捉RGB彩色图像的特征。如下图&#xff0c;当面对一张66像素的彩色图像时&#xff0c;提及的“3”实际上是指红、绿、蓝三种颜色通道&#xff0c;形象地说&am…...

Rust之函数、单元测试

1、函数 类似于C函数。 1.1、普通函数 在Rust中&#xff0c;函数的定义使用fn关键字&#xff0c;后跟函数名、参数列表、返回类型和函数体。函数体由一系列语句组成&#xff0c;用于执行特定的操作和计算。 函数定义&#xff1a; 使用fn关键字定义函数&#xff0c;函数由函数…...

rknn优化教程(二)

文章目录 1. 前述2. 三方库的封装2.1 xrepo中的库2.2 xrepo之外的库2.2.1 opencv2.2.2 rknnrt2.2.3 spdlog 3. rknn_engine库 1. 前述 OK&#xff0c;开始写第二篇的内容了。这篇博客主要能写一下&#xff1a; 如何给一些三方库按照xmake方式进行封装&#xff0c;供调用如何按…...

JavaScript 中的 ES|QL:利用 Apache Arrow 工具

作者&#xff1a;来自 Elastic Jeffrey Rengifo 学习如何将 ES|QL 与 JavaScript 的 Apache Arrow 客户端工具一起使用。 想获得 Elastic 认证吗&#xff1f;了解下一期 Elasticsearch Engineer 培训的时间吧&#xff01; Elasticsearch 拥有众多新功能&#xff0c;助你为自己…...

【Java学习笔记】Arrays类

Arrays 类 1. 导入包&#xff1a;import java.util.Arrays 2. 常用方法一览表 方法描述Arrays.toString()返回数组的字符串形式Arrays.sort()排序&#xff08;自然排序和定制排序&#xff09;Arrays.binarySearch()通过二分搜索法进行查找&#xff08;前提&#xff1a;数组是…...

【RockeMQ】第2节|RocketMQ快速实战以及核⼼概念详解(二)

升级Dledger高可用集群 一、主从架构的不足与Dledger的定位 主从架构缺陷 数据备份依赖Slave节点&#xff0c;但无自动故障转移能力&#xff0c;Master宕机后需人工切换&#xff0c;期间消息可能无法读取。Slave仅存储数据&#xff0c;无法主动升级为Master响应请求&#xff…...

vue3+vite项目中使用.env文件环境变量方法

vue3vite项目中使用.env文件环境变量方法 .env文件作用命名规则常用的配置项示例使用方法注意事项在vite.config.js文件中读取环境变量方法 .env文件作用 .env 文件用于定义环境变量&#xff0c;这些变量可以在项目中通过 import.meta.env 进行访问。Vite 会自动加载这些环境变…...

【JVM】Java虚拟机(二)——垃圾回收

目录 一、如何判断对象可以回收 &#xff08;一&#xff09;引用计数法 &#xff08;二&#xff09;可达性分析算法 二、垃圾回收算法 &#xff08;一&#xff09;标记清除 &#xff08;二&#xff09;标记整理 &#xff08;三&#xff09;复制 &#xff08;四&#xff…...

比较数据迁移后MySQL数据库和OceanBase数据仓库中的表

设计一个MySQL数据库和OceanBase数据仓库的表数据比较的详细程序流程,两张表是相同的结构,都有整型主键id字段,需要每次从数据库分批取得2000条数据,用于比较,比较操作的同时可以再取2000条数据,等上一次比较完成之后,开始比较,直到比较完所有的数据。比较操作需要比较…...

给网站添加live2d看板娘

给网站添加live2d看板娘 参考文献&#xff1a; stevenjoezhang/live2d-widget: 把萌萌哒的看板娘抱回家 (ノ≧∇≦)ノ | Live2D widget for web platformEikanya/Live2d-model: Live2d model collectionzenghongtu/live2d-model-assets 前言 网站环境如下&#xff0c;文章也主…...

tauri项目,如何在rust端读取电脑环境变量

如果想在前端通过调用来获取环境变量的值&#xff0c;可以通过标准的依赖&#xff1a; std::env::var(name).ok() 想在前端通过调用来获取&#xff0c;可以写一个command函数&#xff1a; #[tauri::command] pub fn get_env_var(name: String) -> Result<String, Stri…...

Sklearn 机器学习 缺失值处理 获取填充失值的统计值

💖亲爱的技术爱好者们,热烈欢迎来到 Kant2048 的博客!我是 Thomas Kant,很开心能在CSDN上与你们相遇~💖 本博客的精华专栏: 【自动化测试】 【测试经验】 【人工智能】 【Python】 使用 Scikit-learn 处理缺失值并提取填充统计信息的完整指南 在机器学习项目中,数据清…...