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

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

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

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

相关文章

labelme语义分割标注

参考:同济子豪兄 https://github.com/TommyZihao/MMSegmentation_Tutorials GitHub - TommyZihao/Train_Custom_Dataset: 标注自己的数据集,训练、评估、测试、部署自己的人工智能算法 下载安装Labelme Labelme主页:https://github.com/wke…

linux开放某一个端口具体步骤

场景:当服务器防火墙不能直接关闭,但是客户端必须要访问服务器某一个端口时。 处理:对服务器端进行处理,只将该端口开放出来让客户端访问 本地使用vm安装了一个centos服务器,ip地址是 192.168.200.130。在这里充当服…

考研数学|线代跟谁好,李永乐,汤家凤还是张宇?

如果线代基础不好,那建议开刚开始的时候听汤家凤老师的线代课程 汤家凤教授的线性代数课程常被忽视,多数人倾向于去听李永乐。然而,在我考研的过程中,我曾尝试听李永乐教老师的课,可能是由于我自身基础薄弱&#xff0…

vscode远程连接Ubuntu mysql服务器

注意:刚开始使用root用户死活连接不上,可能就是root用户没有权限的问题,可以尝试创建一个新的数据库用户,授予权限进行连接 ubuntu安装mysql 创建新用户 执行:sudo apt-get install mysql-server安装服务器(yum) 执…

Intel HDSLB 高性能四层负载均衡器 — 基本原理和部署配置

目录 文章目录 目录前言HDSLB-DPVS 的基本原理LVSDPDKDPVSHDSLB-DPVS HDSLB 的部署配置硬件要求软件要求编译安装 DPDK编译安装 HDSLB-DPVS配置大页内存配置网卡配置 HDSLB-DPVS启动 HDSLB-DPVS 测试 HDSLB-DPVS Two-arm Full-NAT 模式问题分析最后 前言 在上一篇《Intel HDSL…

TCP/IP协议(一)

一.报文和协议 协议有什么作用?协议定义通信实体间所交换报文的格式和次序,以及在报文发送和/或接收或者其他事件方面所采取的行动(响应)。 什么是报文?指在网络中传输的数据单元,网络通讯的基本单位。(HTTP报文、TCP报…

【C语言】10.C语言指针(1)

文章目录 1.内存和地址1.1 内存1.2 究竟该如何理解编址 2.指针变量和地址2.1 取地址操作符(&)2.2 指针变量和解引⽤操作符(*)2.2.1 指针变量2.2.2 如何拆解指针类型2.2.3 解引⽤操作符 2.3 指针变量的⼤⼩ 3.指针变量类型的意…

中科蓝讯AB32VG1中文寄存器说明GPIO端口操作

1 GPIO管理 1.1 GPIO通用控制寄存器 寄存器 1- 1 GPIOA:端口 A 数据寄存器 位寄存器名模式缺省描述31:8---未使用7:0GPIOA写0x00PAx 数据。当 PAx 用作 GPIO 时有效 0:读取时PAx为输入低电平状态,写入时PAx为输出低电平; 1:PAx…

中间件-------RabbitMQ

同步和异步 异步调用 MQ MQ优势:①服务解耦 ②异步调用 ③流量削峰 结构 消息模型 RabbitMQ入门案例,实现消息发送和消息接收 生产者: public class PublisherTest {Testpublic void testSendMessage() throws IOException, TimeoutExce…

【Text2SQL 论文】SeaD:使用 Schema-aware 去噪训练的 end2end 的 Text2SQL

论文:SeaD: End-to-end Text-to-SQL Generation with Schema-aware Denoising ⭐⭐ NAACL 2022, arXiv:2105.07911 本论文提出 SeaD 模型,使用 schema-aware 的去噪方法来训练一个 end2end、seq2seq 的 Transformer 模型来实现 Text2SQL。 一、论文速读…

[vue error] vue3中使用同名简写报错 ‘v-bind‘ directives require an attribute value

错误详情 错误信息 ‘v-bind’ directives require an attribute value.eslintvue/valid-v-bind 错误原因 默认情况下,ESLint 将同名缩写视为错误。此外,Volar 扩展可能需要更新以支持 Vue 3.4 中的新语法。 解决方案 更新 Volar 扩展 安装或更新 …

Springboot集成GRPC

Springboot集成GRPC 一、springboot版本二、GRPC的pom依赖2.1 服务端2.2 客户端3.构建依赖 三、配置文件服务端客户端 四、 demo4.1 编写proto文件4.2 生成文件4.3 服务端重写方法4.4 客户端调用该方法 五、测试 一、springboot版本 <groupId>org.springframework.boot&l…

YOLOv8_pose预测流程-原理解析[关键点检测理论篇]

YOLOv8_seg的网络结构图在博客YOLOv8网络结构介绍_CSDN博客已经更新了,由网络结构图可以看到相对于目标检测网络,实例分割网络只是在Head层不相同,如下图所示,在每个特征层中增加了KeyPoint分支(浅绿色),通过两个卷积组和一个Conv卷积得到得到通道数为51的特征图,51表示…

自动驾驶技术现状与需求分析

随着科技的不断进步和智能化浪潮的席卷&#xff0c;自动驾驶技术已成为当今交通领域的热点话题。本文旨在深入探讨自动驾驶技术的当前发展状况&#xff0c;并对其未来的市场需求进行细致分析。首先&#xff0c;我们将回顾自动驾驶技术的起源、发展历程以及当前的技术水平&#…

信息学奥赛初赛天天练-12-数论-整除问题

更多资源请关注纽扣编程微信公众号 整除的性质 1 整除性 若 &#x1d44e; 和 &#x1d44f; 都为整数&#xff0c; &#x1d44e; 整除 &#x1d44f; 是指 &#x1d44f; 是 &#x1d44e; 的倍数&#xff0c;&#x1d44e; 是 &#x1d44f; 的约数&#xff08;或者叫 因…

贪心题目总结

1. 最长递增子序列 我们来看一下我们的贪心策略体现在哪里&#xff1f;&#xff1f;&#xff1f; 我们来总结一下&#xff1a; 我们在考虑最长递增子序列的长度的时候&#xff0c;其实并不关心这个序列长什么样子,我们只是关心最后一个元素是谁。这样新来一个元素之后&#xf…

C++编程揭秘:虚表机制与ABI兼容性的实例剖析

前言&#xff1a; 假设你的应用程序引用的一个库某天更新了&#xff0c;虽然 API 和调用方式基本没变&#xff0c;但你需要重新编译你的应用程序才能使用这个库&#xff0c;那么一般说这个库是源码兼容&#xff08;Source compatible&#xff09;&#xff1b;反之&#xff0c;如…

CAN总线简介

1. CAN总线概述 1.1 CAN定义与历史背景 CAN&#xff0c;全称为Controller Area Network&#xff0c;是一种基于消息广播的串行通信协议。它最初由德国Bosch公司在1983年为汽车行业开发&#xff0c;目的是实现汽车内部电子控制单元&#xff08;ECUs&#xff09;之间的可靠通信。…

批量漏洞挖掘思路小结

漏洞挖掘是指对应用程序中未知漏洞的探索&#xff0c;通过综合应用各种技术和工具&#xff0c;尽可能地找出其中的潜在漏洞。一般情况下漏洞挖掘针对单一的应用系统&#xff0c;通过端口扫描、目录扫描、文件扫描等方式对其安全性进行评估&#xff0c;而本文主要针对Nday和1day…

软考结束。有什么要说的

1. 竟然是机试&#xff0c;出乎我意料。是 考试机构觉得笔试成本高了么。这次的考试是机试&#xff0c;相比以往有所不一样。感言是不是以后都会在固定地点考试也说不准。 2. 遇到年轻人。 这次旁边的一个女同学第一次参加&#xff0c;还像我询问了一些关于软考的事。我是有…