MySQL数据库【一】

在这里插入图片描述

博学而笃志,切问而近思

文章目录

  • 数据库简介
  • 服务器、数据库以及表的关系
  • 连接数据库
  • 数据库操作命令
    • 创建数据库
    • 查看数据库创建语句
    • 查看数据库
    • 使用数据库
    • 修改数据库
    • 删除数据库
  • 数据库字符集和校验规则
    • 查看系统默认字符集
    • 查看系统默认校验规则
    • 查看数据库支持的字符集
    • 查看数据库支持的字符集校验规则
  • 数据库的备份与恢复
    • 备份
    • 恢复
  • 总结

数据库简介

在这里插入图片描述

数据库是用于存储、管理和检索数据的系统。它可以是一个简单的表格或一个复杂的系统,允许用户以结构化方式组织、访问和管理数据。数据库可以采用不同的模型和类型,其中常见的包括关系型数据库(如MySQL、PostgreSQL、SQL Server)、NoSQL数据库(如MongoDB、Cassandra)以及内存数据库(如Redis)。

关系型数据库使用表格的形式来存储数据,这些表格之间可以建立关系,便于数据的查询和管理。NoSQL数据库则更加灵活,可以处理非结构化或半结构化的数据,适用于大规模数据和分布式环境。

数据库的优势包括数据的持久性、数据的结构化存储、数据的高效检索和处理、数据的安全性以及多用户之间的数据共享。它们被广泛应用于各种领域,包括企业管理、电子商务、医疗保健、科学研究等。

数据库管理系统(DBMS)是用于管理数据库的软件,它负责数据的存储、检索、更新和管理,同时提供了一些安全性和数据完整性的机制,确保数据的一致性和可靠性。

数据库是计算机科学和信息技术领域中的关键概念,对于数据的有效管理和利用至关重要。不同类型的数据库和DBMS可根据具体需求选择,以满足不同规模和类型的数据管理要求。并且数据库的水平也是衡量一个程序员水平的重要指标之一。

服务器、数据库以及表的关系

在数据库管理中,通常有一个层次结构,其中包括服务器(Server)、数据库(Database)和表(Table)之间的关系,这个层次结构用来组织和管理数据。

服务器通常是一个物理或虚拟的计算机,它托管了一个或多个数据库实例,数据库服务器负责处理客户端请求,执行数据库操作,并确保数据的安全性和可用性。服务器可以运行数据库管理系统,如MySQL、Oracle、SQL Server等,以提供数据库服务。

数据库是服务器上的一个独立存储单元,它包含相关的数据表、视图、存储过程、触发器等数据库对象。数据库用来组织数据,通常按照应用程序或数据类型进行划分,以便管理和维护数据的结构和关系。不同数据库之间是相互隔离的,每个数据库有自己的用户权限和访问控制。

表是数据库中的主要数据存储结构,它是一个由行和列组成的二维数据结构。表用来存储实际数据记录,每一行代表一个数据记录,每一列代表一种数据类型。表具有定义的结构,包括列名、数据类型和约束,以确保数据的一致性和完整性。表通常用于存储和组织特定类型的数据,如用户信息、订单、产品信息等。

关系数据库的核心概念是表,表内的数据可以根据键值(通常是主键)之间的关系进行查询和连接。多个表之间的关系可以通过外键建立,以支持复杂的数据查询和数据关联。而服务器托管一个或多个数据库,每个数据库包含一个或多个表,表中存储了实际数据。这种层次结构有助于组织和管理数据,使其易于访问和维护。不同的数据库管理系统可能有不同的术语和概念,但这种层次结构的基本原则通常是相似的。

在这里插入图片描述

连接数据库

当安装好了MySQL数据库并启动后,我们可以使用命令mysql -h 127.0.0.1 -P 3306 -u root -p去连接上数据库。该命令解析如下:

命令含义
-h 127.0.0.1指定要连接的 MySQL 服务器的主机名或 IP 地址。在这里,127.0.0.1 表示本地主机,也就是连接到运行在本地计算机上的 MySQL 服务器。
-P 3306指定 MySQL 服务器的端口号。MySQL 默认的端口号是 3306,所以这里的 -P 参数是可选的,如果使用默认端口,可以省略这个参数。
-u root指定要用来连接到 MySQL 服务器的用户名。在这里,root 是 MySQL 中一个具有高级权限的管理员用户。你也可以用其他有效的用户名。
-p这个参数告诉 MySQL 客户端在连接时提示你输入密码。在运行命令后,你需要输入与指定用户(这里是 root)相关联的密码,然后按 Enter 键。

当你运行这个命令后,会连接到本地 MySQL 服务器,然后需要输入密码来完成连接。如果密码正确,你将进入 MySQL 命令行客户端,可以执行数据库操作。

其中参数-h-P是可以省略的,省略时采取默认值,即端口号为3306,地址为本地连接127.0.0.1

在这里插入图片描述

数据库操作命令

创建数据库

想要创建数据库可以在命令行界面上执行命令

create database baseName;

例如创建一个名为Test的数据库。

create database Test;

在这里插入图片描述

查看数据库创建语句

SHOW CREATE DATABASE 是一个用于显示创建数据库的SQL语句。通过这个命令,你可以查看创建特定数据库的完整SQL语句,包括数据库的各种属性和选项。基本语法如下:

SHOW CREATE DATABASE your_database;

这里your_database 是你想要查看创建语句的数据库名称。例如,如果你想查看名为 your_database 的数据库的创建语句,可以执行:

SHOW CREATE DATABASE your_database;

执行上述命令后,MySQL将返回一个结果集,其中包含了创建指定数据库的SQL语句。
在这里插入图片描述

在这个例子中,CREATE DATABASE ... 后面的部分包含了创建数据库的SQL语句,包括字符集等选项。这个命令通常用于查看数据库的创建细节,以便在需要时可以复制和重新创建数据库。

查看数据库

SHOW DATABASES; 是一个查看MySQL数据库的命令,用于显示当前MySQL服务器上的所有数据库列表。基本语法如下:

SHOW DATABASES;

执行这个命令后,MySQL将返回一个结果集,其中包含当前服务器上所有的数据库名。

在这里插入图片描述

这里的 information_schemamysqlperformance_schema 是MySQL系统数据库,而 wzhTest 等是用户创建的数据库。

如果你执行 SHOW DATABASES; 时遇到问题,可能是由于权限不足或其他问题导致。确保你具有执行该命令的权限,并且MySQL服务器正在运行。

使用数据库

当我们要使用某个数据库,在数据库中创建表时,需要先use这个数据库,使用命令

use baseName;

例如使用数据库Test

use Test;

在这里插入图片描述

修改数据库

在MySQL中,一般来说对数据库的修改主要指的是修改数据库的字符集,校验规则。而要修改数据库的一些属性,可以使用 ALTER DATABASE 语句来更改默认字符集或校对规则。如下一个例子:

ALTER DATABASE your_databaseCHARACTER SET utf8mb4COLLATE utf8mb4_unicode_ci;

在这里插入图片描述

这个例子演示了如何将数据库 wzh 的字符集更改为 gbk

注意,一些属性的修改可能需要数据库不处于活跃状态,因此你可能需要在修改之前停止数据库服务。

总体而言,ALTER DATABASE 语句的使用范围相对较小,大多数数据库结构的修改通过其他 ALTER 语句完成。

删除数据库

DROP DATABASE 是一个用于删除一个已经存在的数据库以及该数据库中的所有表和数据的MySQL命令。在执行这个命令之前应该确保要删除这个数据库,因为这个操作是不可逆的。基本的 DROP DATABASE 语法如下:

DROP DATABASE [IF EXISTS] your_database;

这里,your_database 是你想要删除的数据库的名称。IF EXISTS 是一个可选的子句,如果指定了,它表示如果数据库存在才执行删除操作,否则不会报错。在执行这个命令之后,数据库及其所有相关的表和数据将被永久删除。

在这里插入图片描述

注意,确保在执行这类敏感的数据库操作之前进行谨慎考虑,以避免数据丢失。

  1. 慎重使用: 删除数据库是一个危险的操作,因为它会删除数据库中的所有数据,包括所有表和其他对象。确保真的想要执行这个操作。
  2. 权限: 确保有足够的权限执行这个操作。通常,只有具有足够权限的用户才能删除数据库。
  3. 备份: 在执行 DROP DATABASE 之前,最好做好数据库备份,以防不慎删除了重要数据。

数据库字符集和校验规则

在MySQL中,字符集(Character Set)和校对规则(Collation)是与文本数据存储和比较有关的两个重要概念。

  1. 字符集

字符集定义了数据库中可以存储的字符的集合,每个字符集都有一个唯一的名称,它指定了数据库可以使用的字符和它们的编码方式。常见的字符集包括:

  • UTF-8: 一种可变长度的Unicode编码,支持全球范围的字符。

  • UTF-16: 一种Unicode编码,使用16位编码单元,通常用于存储较大的字符集。

  • latin1: 一种较旧的字符集,支持西欧语言。

在创建数据库时,可以指定要使用的字符集。例如:

CREATE DATABASE your_database CHARACTER SET utf8mb4;

在这里插入图片描述
在这里插入图片描述

  1. 校验规则

校对规则定义了如何对字符进行比较和排序。它与字符集紧密相关,因为它定义了字符在排序中的顺序。例如,校对规则可以定义大小写敏感或不敏感,以及对特定语言或地区的排序规则

常见的校对规则包括:

  • utf8mb4_general_ci: 一般不区分大小写的UTF-8校对规则。

  • utf8mb4_unicode_ci: 基于Unicode的UTF-8校对规则,支持更广泛的字符集和排序规则。

在创建表时,你可以为每个列指定校对规则,也可以在创建数据库时为整个数据库指定默认的校对规则。例如:

CREATE TABLE your_table (column1 VARCHAR(255) COLLATE utf8mb4_unicode_ci,column2 INT
);

或者在创建数据库时:

CREATE DATABASE your_database CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;

在这里插入图片描述

总体而言,选择适当的字符集和校对规则取决于你的应用需求,包括支持的语言、排序行为等。通常,使用Unicode字符集和相应的校对规则(如utf8mb4_unicode_ci)能够更好地支持多语言和国际化。

查看系统默认字符集

命令 show variables like 'character_set_database'; 可以用于查看 MySQL 数据库默认字符集。

在这里插入图片描述

这个输出表明数据库默认字符集是 utf8,即数据库创建时指定的默认字符集。字符集决定了数据库中可以存储的字符类型以及字符编码。MySQL 默认的字符集可能因版本和配置不同而有所变化。

查看系统默认校验规则

SHOW VARIABLES LIKE 'collation_database';命令用于检索当前数据库所使用的字符集排序规则。字符集排序规则定义了数据库中字符串比较的规则。

在这里插入图片描述

在这个例子中,collation_database 变量的值是 utf8_general_ci,表示当前数据库的默认字符集排序规则是 UTF-8,并使用一般的大小写不敏感比较。实际的结果可能会根据你的 MySQL 服务器配置以及数据库的特定字符集排序规则设置而有所不同。

查看数据库支持的字符集

SHOW CHARSET;命令用于显示当前数据库服务器支持的字符集和对应的默认排序规则。这个命令会列出数据库中所有可用的字符集。执行SHOW CHARSET;会得到以下的结果:

在这里插入图片描述

在这个结果中,你会看到不同的字符集,它们的描述,默认的排序规则,以及最大长度等信息。这样的信息可以帮助你了解数据库支持的字符集和排序规则,从而更好地管理和配置数据库的字符处理方式。

查看数据库支持的字符集校验规则

SHOW COLLATION 用于显示当前数据库服务器支持的所有排序规则及其相关信息。执行这个命令将列出可用的排序规则以及与每个规则相关的字符集。

在这里插入图片描述

结果中:

  • Collation 是排序规则的名称。
  • Charset 是与排序规则相关联的字符集。
  • Id 是排序规则的唯一标识符。
  • Default 指示该排序规则是否是与其相关的字符集的默认规则。
  • Compiled 指示该排序规则是否是编译的。

数据库的备份与恢复

数据库的备份和恢复是确保数据安全的重要操作。在MySQL中,你可以使用不同的工具和方法来执行备份和恢复操作。mysqldumpsource 就是 MySQL 数据库备份和恢复的两个关键工具。mysqldump 用于创建数据库备份,而 source 用于执行 SQL 文件以进行数据库恢复。

备份

使用 mysqldump 进行数据库备份的基本格式如下:

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

解释一下各个部分:

  • -P3306:指定 MySQL 服务器的端口号(如果不是默认的3306端口)。
  • -u root:指定 MySQL 用户名为 root。需要根据实际情况替换为正确的用户名。
  • -p密码:指定密码。在实际应用中,最好避免在命令行中直接显示密码,可以使用其他安全方式提供密码。
  • -B 数据库名:指定要备份的数据库名。你需要将 数据库名 替换为实际的数据库名,-B 后面需要有一个空格。
  • > 数据库备份存储的文件路径:将输出重定向到指定路径的文件中。

在这里插入图片描述

恢复

使用 source 进行数据库恢复的基本格式为:

source sql文件路径

这将使用 source 命令执行文件中的 SQL 语句,从而还原数据库。

在这里插入图片描述
在这里插入图片描述
注意事项:

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

mysqldump是在bash界面上运行,source是在MySQL里运行。


  1. 备份一张表

如果只想备份 MySQL 数据库中的一张表而不是整个数据库,你可以使用 mysqldump 命令,并指定要备份的表名。以下是基本的命令格式:

mysqldump -u username -p password -h host database table > table_backup.sql

其中:

  • -u username: 指定 MySQL 用户名。
  • -p: 提示输入密码。
  • -h host: 指定 MySQL 主机名。
  • database: 数据库名称。
  • table: 表名称。
  • > table_backup.sql: 将备份输出到 table_backup.sql 文件。

在这里插入图片描述


  1. 同时备份多个数据库

如果想同时备份多个 MySQL 数据库,可以在 mysqldump 命令中指定多个数据库名称,如下所示:

mysqldump -u username -p password -h host --databases db1 db2 db3 > backup.sql

其中:

  • -u username: 指定 MySQL 用户名。
  • -p: 提示输入密码。
  • -h host: 指定 MySQL 主机名。
  • --databases db1 db2 db3: 指定要备份的多个数据库名称,用空格分隔。
  • > backup.sql: 将备份输出到 backup.sql 文件。

这将备份指定的多个数据库的结构和数据到一个 SQL 文件中。

在这里插入图片描述

总结

文章围绕数据库,对数据库进行一些介绍,然后再对数据库的连接以及对数据库的一些操作进行演示,还对数据库的的字符集以及校验集进行分析,最后对数据库的备份和恢复进行介绍。

希望文章对你有所帮助!

在这里插入图片描述

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

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

相关文章

Shell编程基础 – for循环

Shell编程基础 – for循环 Shell Scripting Essentials - for Loop 大多数编程语言都有循环的概念和语句。如果想重复一个任务数十次,无论是输入数十次,还是输出数十次,对用户来说都不现实。 因此,我们考虑如何用好Bash Shell编…

Python入门学习篇(四)——if详解

if详解 1 单项分支 1.1 语法结构 if 条件:逻辑代码(条件为真时执行的代码) # 注: 如果条件不满足,那么则不执行if下面的逻辑代码1.2 示例代码 username input("请输入您的用户名: ") if username "admin":print("管理员登录成功")1.3 运行…

Vue框架学习笔记——事件处理:v-on指令+methods

文章目录 前文提要事件处理的解析过程,v-on:事件名样例代码如下:效果展示图片:v-on:事件名"响应函数"v-on简写形式响应函数添加响应函数传参占位符"$event"注意事项 前文提要 本人仅做个人学习记录,如有错误…

【追求卓越02】数据结构--链表

引导 今天我们进入链表的学习,我相信大家对链表都很熟悉。链表和数组一样,作为最基础的数据结构。在我们的工作中常常会使用到。但是我们真的了解到数组和链表的区别吗?什么时候使用数组,什么时候使用链表,能够正确的选…

深入了解MD5加密技术及其应用与局限

一、MD5简介 MD5(Message Digest Algorithm 5)是一种单向散列函数,由美国密码学家罗纳德李维斯特(Ronald Linn Rivest)于1991年发明。它主要用于将任意长度的消息映射成固定长度的摘要,从而实现消息的完整…

C++STL库常用详解与原理

CSTL库 学习方法&#xff1a;使用STL的三个境界&#xff1a;能用&#xff0c;明理&#xff0c;能扩展。 常用库 库名称所需头文件数据结构string#include<string>串vector#include<vector>动态数组list#include<list>带头双向循环链表queue#include<queu…

又3本“On Hold”期刊被剔除!这本Elsevier旗下中科院2区TOP仍在调查中!

【SciencePub学术】 此前&#xff0c;继又2本期刊被“On Hold”&#xff01;标识后&#xff0c;仍处于“On Hold”状态的期刊有8本&#xff0c;其中包括4本SCI期刊和4本ESCI期刊。 2023年11月20日&#xff0c;科睿唯安更新了Web of Science核心期刊目录。 本次11月更新共64本期…

12 网关实战:Spring Cloud Gateway基础理论

为什么需要网关? 传统的单体架构中只有一个服务开放给客户端调用,但是微服务架构中是将一个系统拆分成多个微服务,那么作为客户端如何去调用这些微服务呢?如果没有网关的存在,只能在本地记录每个微服务的调用地址。 无网关的微服务架构往往存在以下问题: 客户端多次请求…

git命令 cherry-pick

参考&#xff1a;https://blog.csdn.net/weixin_42585386/article/details/128256149 https://blog.csdn.net/weixin_44799217/article/details/128279250 merge和cherry-pick的区别&#xff1a; merge&#xff1a;是把某一个代码分支完全合并到当前的代码分支。完全合并的意…

电子学会C/C++编程等级考试2022年03月(二级)真题解析

C/C++等级考试(1~8级)全部真题・点这里 第1题:温度统计 现有一段时间的温度数据,请统计指定温度出现的次数。 时间限制:1000 内存限制:65536输入 第一行一个整数n,表示温度数据的个数。(0 < n ≤ 200) 第二行n个整数,以空格分隔,每个整数表示一个温度,温度的范围大…

详细介绍如何使用深度学习自动车牌(ALPR)识别-含(数据集+源码下载)

深度学习一直是现代世界发展最快的技术之一。深度学习已经成为我们日常生活的一部分,从语音助手到自动驾驶汽车,它无处不在。其中一种应用程序是自动车牌识别 (ALPR)。顾名思义,ALPR是一项利用人工智能和深度学习的力量自动检测和识别车辆车牌字符的技术。这篇博文将重点讨论…

WordPress无需插件禁用WP生成1536×1536和2048×2048尺寸图片

我们在使用WordPress上传图片媒体文件的时候&#xff0c;是不是看到媒体库中有15361536和20482048的图片文件&#xff0c;当然这么大的文件会占用我们的服务器空间&#xff0c;如何禁止掉呢&#xff1f; function remove_default_image_sizes( $sizes) {unset( $sizes[1536x15…

Python基础教程: sorted 函数

嗨喽&#xff0c;大家好呀~这里是爱看美女的茜茜呐 sorted 可以对所有可迭代的对象进行排序操作&#xff0c; sorted 方法返回的是一个新的 list&#xff0c;而不是在原来的基础上进行的操作。 从新排序列表。 &#x1f447; &#x1f447; &#x1f447; 更多精彩机密、教程…

ELK日志系统

&#xff08;一&#xff09;ELK 1、elk&#xff1a;是一套完整的日志集中处理方案&#xff0c;由三个开源的软件简称组成 2、E&#xff1a;ElasticSearch&#xff08;ES&#xff09;&#xff0c;是一个开源的&#xff0c;分布式的存储检索引擎&#xff08;索引型的非关系型数…

【Python篇】详细讲解正则表达式

文章目录 &#x1f339;什么是正则表达式&#x1f354;语法字符类别重复次数组合模式 ✨例子 &#x1f339;什么是正则表达式 正则表达式&#xff08;Regular Expression&#xff09;&#xff0c;简称为正则或正则表达式&#xff0c;是一种用于匹配、查找和操作文本字符串的工…

搜索引擎语法

演示自定的Google hacking语法&#xff0c;解释含意以及在渗透过程中的作用 Google hacking site&#xff1a;限制搜索范围为某一网站&#xff0c;例如&#xff1a;site:baidu.com &#xff0c;可以搜索baidu.com 的一些子域名。 inurl&#xff1a;限制关键字出现在网址的某…

基于单片机加热炉多参数检测和PID炉温系统

**单片机设计介绍&#xff0c; 基于单片机加热炉多参数检测和PID炉温系统 文章目录 一 概要二、功能设计设计思路 三、 软件设计原理图 五、 程序六、 文章目录 一 概要 基于单片机的公交安全预警系统可以被设计成能够实时监测公交车辆的行驶状态&#xff0c;并在发生异常情况…

[Linux] Linux入门必备的基本指令(不全你打我)

一:ls指令 语法 &#xff1a; ls [选项] [目录或文件] 功能 &#xff1a;对于目录&#xff0c;该命令列出该目录下的所有子目录与文件。对于文件&#xff0c;将列出文件名以及其他信息。 ls不带选项就是显示当前目录下存在的子目录和文件 常用选项: (1). ls -l 功能: 列出…

蓝桥杯-动态规划-子数组问题

目录 一、乘积最大数组 二、乘积为正数的最长子数组长度 三、等差数列划分 四、最长湍流子数组 心得&#xff1a; 最重要的还是状态表示&#xff0c;我们需要根据题的意思&#xff0c;来分析出不同的题&#xff0c;不同的情况&#xff0c;来分析需要多少个状态 一、乘积最…

Kubernetes(k8s)之Pod详解

文章目录 Kubernetes之Pod详解一、Pod介绍pod结构pod定义 二、Pod配置pod基本配置镜像拉取策略启动命令环境变量端口设置资源配额 三、Pod生命周期创建和终止初始化容器钩子函数容器探测重启策略 四、Pod调度定向调度NodeNameNodeSelector 亲和性调度NodeAffinityPodAffinityPo…