【MySQL】库的基础操作

news2024/11/16 10:41:30

🌎库的操作


文章目录:

库的操作

    创建删除数据库

    数据库编码集和校验集

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

    备份和恢复

    查看数据库连接情况

    总结


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

在这里插入图片描述


🚀创建删除数据库

 创建数据库语法:

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

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

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

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

相关文章

Hibernate

主流ORM框架Object Relation Mapping对象关系映射,将面向对象映射成面向关系。 如何使用 1、导入相关依赖 2、创建Hibernate配置文件 3、创建实体类 4、创建实体类-关系映射文件 5、调用Hibernate API完成操作 具体操作 1、创建 Maven工程,在pom.xml中导…

应用程序图标提取

文章目录 [toc]提取过程提取案例——提取7-zip应用程序的图标 提取过程 找到需要提取图标的应用程序的.exe文件 复制.exe文件到桌面,并将复制的.exe文件后缀改为.zip 使用解压工具7-zip解压.zip文件 在解压后的文件夹中,在.rsrc/ICON路径下的.ico文件…

01.并发编程简介

1 什么是并发编程 所谓并发编程是指在一台处理器上“同时”处理多个任务。并发是在同一实体上的多个事件。多个事件在同一时间间隔发生。 2 为什么我们要学习并发编程? 最直白的原因就是因为面试需要,大厂的 Java 岗的并发编程能力属于标配。 而在非大厂…

vscode远程连接Ubuntu mysql服务器

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

【排序算法】选择排序以及需要注意的问题

选择排序的基本思想:每一次从待排序的数据元素中选出最小(或最大)的一个元素,存放在序列的起始位置,直到全部待排序的数据元素排完 。 第一种实现方法: void SelectSort(int* arr, int n) {for (int j 0…

Python Beautiful Soup 使用详解

大家好,在网络爬虫和数据抓取的领域中,Beautiful Soup 是一个备受推崇的 Python 库,它提供了强大而灵活的工具,帮助开发者轻松地解析 HTML 和 XML 文档,并从中提取所需的数据。本文将深入探讨 Beautiful Soup 的使用方…

C#调用HttpClient.SendAsync报错:System.Net.Http.HttpRequestException: 发送请求时出错。

C#调用HttpClient.SendAsync报错:System.Net.Http.HttpRequestException: 发送请求时出错。 var response await client.SendAsync(request, HttpCompletionOption.ResponseHeadersRead, cancellationToken);问题出在SSL/TLS,Windows Server 2012不支持…

深入浅出MySQL事务实现底层原理

重要概念 事务的ACID 原子性(Atomicity):即不可分割性,事务中的操作要么全不做,要么全做一致性(Consistency):一个事务在执行前后,数据库都必须处于正确的状态&#xf…

构建智慧科技园区的系统架构:数字化驱动未来创新

随着科技的不断进步和数字化转型的加速推进,智慧科技园区已成为当今城市发展的重要组成部分。在智慧科技园区建设中,系统架构的设计和实施至关重要,对于提升园区管理效率、优化资源利用、促进创新发展具有重要意义。 一、智慧科技园区系统架构…

文心智能体大赛:百度文心智能体平台初体验

写在前面 博文内容涉及:文心智能体大赛:文心智能体初体验理解不足小伙伴帮忙指正 😃,生活加油 我徒然忘记了热闹,却来不及悟透真正的清冷(《四喜忧国》) 前言 徒然忘记了热闹,却来不及悟透真正的清冷(《四喜忧国》),在…

【论文阅读|cryoET】ICE-TIDE

简介 三维cryoET重建的保真度进一步受到采集过程中物理扰动的影响。这些扰动以各种形式表现出来,例如连续采集之间的样本漂移,导致连续投影未对准,或者由于未散射的电子而导致二维投影中的局部变形。 传统的冷冻电子断层扫描工作流程需要对…

贪心题目总结

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

深入了解 Golang 多架构编译:交叉编译最佳实践

随着软件开发领域的不断发展,我们面临着越来越多的挑战,其中之一是如何在不同的平台和架构上部署我们的应用程序。Golang(Go)作为一种现代化的编程语言,具有出色的跨平台支持,通过其强大的多架构编译功能&a…

需求开发和管理

人们对需求术语的困惑甚至延伸到整个学科的称谓上。有些作者将整个范围都称为“需求工程”。有些人统称为“需求管理”。还有些人认为这些活动属于广义上的业务分析的一个分支。我们发现,最好将需求工程分为需求开发和需求管理,如图所示。不管项目遵循什…

C++笔记之Unix时间戳、UTC、TSN、系统时间戳、时区转换、local时间笔记

C++笔记之Unix时间戳、UTC、TSN、系统时间戳、时区转换、local时间笔记 ——2024-05-26 夜 code review! 参考博文 C++笔记之获取当前本地时间以及utc时间

网络统一监控运维管理解决方案(ppt原件方案)

网络统一监控运维管理解决方案 1. 构建完善的网络运维体系:通过组织、流程、制度的完善、支撑手段的建设,构建低成本高效率的IT运营体系,推动IT运营工作自动化、智能化、一体化化发展。 2. 构建网络一体化监控能力:构建从设备、…

QT之常用控件

一个图形化界面当然需要有各种各样的控件,QT也不例外,在QT designer中就有提供各种各样的控件,用以开发图形化界面。 而想使用好一个QT控件,就需要了解这些控件。 QWidget 在QT中,所有控件都继承自 QWidget 类&…

基于Python Selenium web测试工具 - 基本用法详解

这篇文章主要介绍了Selenium(Python web测试工具)基本用法,结合实例形式分析了Selenium的基本安装、简单使用方法及相关操作技巧,需要的朋友可以参考下 本文实例讲述了Selenium基本用法。分享给大家供大家参考,具体如下: Seleni…

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

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

App推广新境界:Xinstall助你轻松突破运营痛点,实现用户快速增长!

在移动互联网时代,App已经成为企业营销不可或缺的一部分。然而,如何有效地推广App,吸引并留住用户,成为了众多企业面临的难题。今天,我们将为您揭秘一款神奇的App推广工具——Xinstall,它将助您轻松突破运营…