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_database
  CHARACTER SET utf8mb4
  COLLATE 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 文件中。

在这里插入图片描述

总结

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

希望文章对你有所帮助!

在这里插入图片描述

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

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

相关文章

中小型公司如何搭建运维平台,rancher、kubersphere、rainbond

很多开发人员应该是了解过运维发布相关的平台或实际操作过应用发布,但又通常不是十分熟悉。在一个初创公司,或者没有成熟的运维发布平台的公司,如果让你来搭建一套发布平台,你应该如何去抉择呢? 这里我简单介绍几种。…

diffusion model (九) EmuEdit技术小结

文章目录 背景1 核心思想2 方法2.1 方法建模2.2 数据工程2.2.1 image-edit任务类别定义2.2.2 指令集生成2.2.3 图片对的生成 3 结果 Paper: https://emu-edit.metademolab.com/assets/emu_edit.pdf Project web: https://emu-edit.metademolab.com/ Code: have not opensourc…

干货分享 | TSMaster采样点配置方法与消除错误帧流程

当通讯节点间采样点参数和波特率参数不匹配造成一些错误帧时,我们如何在TSMaster中设置以及调整波特率参数和采样点参数,来减少以及消除总线上出现的错误帧,进一步提高通信质量。本文着重讲解讲解如何借用TSmaster更加便捷地获取相应的采样点…

【精】A data-driven dynamic repositioning model in bicycle-sharing systems

A data-driven dynamic repositioning model in bicycle-sharing systems 爱思唯尔原文 doi:https://doi.org/10.1016/j.ijpe.2020.107909 article{data2021BRP, address {Univ Cambridge, Inst Mfg, Cambridge CB3 0FS, England}, author {Zhang, Jie and Meng, Meng and W…

微服务--04--SpringCloudGateway 网关

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 1.网关路由1.1 认识网关在SpringCloud当中,提供了两种网关实现方案: 1.2.快速入门1.3.路由过滤 2.网关登录校验2.1.鉴权思路分析2.2.网关过滤…

力扣23. 合并 K 个升序链表(java,最小堆解法)

Problem: 23. 合并 K 个升序链表 文章目录 题目描述思路解题方法复杂度Code 题目描述 给你一个链表数组,每个链表都已经按升序排列。 请你将所有链表合并到一个升序链表中,返回合并后的链表。 思路 1.对于合并k个有序链表,我们较为容易想…

Java —— 泛型

目录 1. 什么是泛型 2. 泛型背景及其语法规则 3. 泛型类的使用 3.1 语法 3.2 示例 3.3 类型推导(Type Inference) 4. 裸类型(Raw Type) 4.1 说明 5. 泛型如何编译的 5.1 擦除机制 5.2 为什么不能实例化泛型类型数组 6. 泛型的上界 6.1 上界语法产生的背景 6.2 语法 6.3 示例 6.…

Node.js入门指南(完结)

目录 接口 介绍 RESTful json-server 接口测试工具 会话控制 介绍 cookie session token 上一篇文章我们介绍了MongoDB,这一篇文章是Node.js入门指南的最后一篇啦!主要介绍接口以及会话控制。 接口 介绍 接口是前后端通信的桥梁 &#xff0…

elk日志分析系统:

elk日志分析系统: elk是一套完整的日志集中处理方案,由三个开源的软件简称组成; E:Easticsearch 简称ES是一个开源的,分布式的存储检索引擎,(索引型的非关系数据库)存储日志 由java代码开发的&#xff0…

麒麟V10桌面搭建FTP服务

1.1介绍 FTP:File transfer protocol (文件传输协议)是 TCP/IP 协议组中的协议之一。FTP协议包括两个组成部分,其一为FTP服务器,其二为FTP客户端。其中FTP服务器用来存储文件,用户可以使用FTP客户端通过FT…

知识变现的未来:解析知识付费系统的核心

随着数字时代的发展,知识付费系统作为一种新兴的学习和知识分享模式,正逐渐引领着知识变现的未来。本文将深入解析知识付费系统的核心技术,揭示其在知识经济时代的重要性和潜力。 1. 知识付费系统的基本架构 知识付费系统的核心在于其灵活…

CorelDRAW Graphics Suite2023破解版含2024最新注册机下载

CorelDRAW Graphics Suite2023是Corel公司的平面设计软件;该软件是Corel出品的矢量图形制作工具软件,这个图形工具给设计师提供了矢量动画、页面设计、网站制作、位图编辑和网页动画等多种功能。在日常科研绘图中,若较为轻量,通常…

【Linux进阶之路】进程间通信

文章目录 一、原理二、方式1.管道1.1匿名管道1.1.1通信原理1.1.2接口使用 1.2命名管道 2.共享内存2.1原理2.2接口使用 3.消息队列原理 4.信号量引入原理 总结 一、原理 进程间的通信是什么?解释: 简单理解就是,不同进程之间进行数据的输入输出…

使用Tensorboard可视化 遇到无法访问此网站

问题: 使用Tensorboard可视化 遇到无法访问此网站 解决方法:后面加上服务器ip[参考] tensorboard --logdir目标目录 --hostxxx.xxx.xxx.xx

[学习记录]Node event loop 总结流程图

文章目录 文章来源根据内容输出的流程图待处理遗留的问题参考 文章来源 详解JavaScript中的Event Loop(事件循环)机制 根据内容输出的流程图 待处理 这里从polling阶段开始 好像有些问题 遗留的问题 为什么“在I/O事件的回调中,setImmediate…

Docker | 自定义Docker镜像

✅作者简介:大家好,我是Leo,热爱Java后端开发者,一个想要与大家共同进步的男人😉😉 🍎个人主页:Leo的博客 💞当前专栏:Docker系列 ✨特色专栏: My…

AB|如何正确从罗克韦尔官网下载资料?

哈喽呀,大家好,我是雷工! 作为工控行业的从业者,可能要和各个厂家的中控系统、PLC、触摸屏、变频器、等软硬件产品打交道。 虽然从业十余年,但也不可能接触使用过所有的工控产品。还有海量的产品是没有接触过的。 但很…

sql注入靶场

第一关: 输入:http://127.0.0.1/sqli-labs-master/Less-1/?id1 http://127.0.0.1/sqli-labs-master/Less-1/?id1%27 http://127.0.0.1/sqli-labs-master/Less-1/?id1%27-- 使用--来闭合单引号,证明此处存在字符型的SQL注入。 使用order …

5.27每日一题(判断函数在那个区间上有界:充分条件不是必要条件)

若f(x)在(a , b)上连续,且f(a0),f(b-0)存在(及函数的左右极限存在)>f(x)在(a,b)上有界