MySQL数据库【一】

news2024/9/24 17:16:39

在这里插入图片描述

博学而笃志,切问而近思

文章目录

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

数据库简介

在这里插入图片描述

数据库是用于存储、管理和检索数据的系统。它可以是一个简单的表格或一个复杂的系统,允许用户以结构化方式组织、访问和管理数据。数据库可以采用不同的模型和类型,其中常见的包括关系型数据库(如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 文件中。

在这里插入图片描述

总结

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

希望文章对你有所帮助!

在这里插入图片描述

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

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

相关文章

文本编辑 换行符CRLF/CR/LF问题

参考资料 Linux—CRLF/CR/LF等回车换行符问题详解改行コードCRはなぜ(^M)で\rなのかテキストファイルの行末に^Mが表示されるLinux 替换^M字符 方法 目录 一. 遇到的问题二. 换行符释义三. 换行符查看四. 去除 ^M4.1 通过文本编辑器转换换行符4.2 在lin…

Html网页threejs显示obj,ply三维图像实例

程序示例精选 Html网页threejs显示obj,ply三维图像实例 如需安装运行环境或远程调试,见文章底部个人QQ名片,由专业技术人员远程协助! 前言 这篇博客针对《Html网页threejs显示obj,ply三维图像实例》编写代码,代码整洁&#xff0…

【JavaScript框架】Vue与React中的组件框架概念

组件框架是用于构建应用程序的工具,以便将UI和逻辑划分为单独的可重用组件。目前的组件框架包括React、Vue、Angular、Ember、Svelte等。 Vue和React使用了常见的框架概念,如处理状态、道具、引用、生命周期挂钩、事件等。这两个框架在当今的web开发中被…

使用.NET8中的.http文件和终结点资源管理器

本文将以.NET8的模板增加的.http文件为引,介绍 Visual Studio 2022 中的 .http 文件编辑器,这是一个用于测试 ASP.NET Core 项目的强大工具。 文章目录 1. 背景2. HTTP 文件介绍2.1 简介2.2 .http 文件语法3. 在 Visual Studio 中使用3.1 终结点资源管理…

大数据平台/大数据技术与原理-实验报告--部署全分布模式HBase集群和实战HBase

实验名称 部署全分布模式HBase集群和实战HBase 实验性质 (必修、选修) 必修 实验类型(验证、设计、创新、综合) 综合 实验课时 2 实验日期 2023.11.07-2023.11.10 实验仪器设备以及实验软硬件要求 专业实验室&#xff…

【Apifox】测试工具自动编写接口文档

在开发过程中,我们总是避免不了进行接口的测试, 而相比手动敲测试代码,使用测试工具进行测试更为便捷,高效 今天发现了一个非常好用的接口测试工具Apifox 相比于Postman,他还拥有一个非常nb的功能, 在接…

交流负载测试使用场景

交流负载测试是一种在特定环境下,对电力设备、汽车电子部件,工业自动化设备、网络设备、家电产品,航空航天设备以及医疗器械等产品进行测试的方法,该测试的目的是评估这些设备在实际运行条件下的性能和可靠性。 1电力设备测试 交…

没有预装Edge浏览器的Windows系统安装Edge正式版的方法,离线安装和在线安装

一、在线安装 没有预装Edge浏览器的Windows系统安装Edge正式版的方法 二、离线安装 进入到下面这个目录 C:\Program Files (x86)

vivado产生报告阅读分析27

1、设计 QoR 汇总 命令行选项 -qor_summary 可用于为流程中每个步骤生成 QoR 汇总信息。该选项只能从 Tcl 控制台使用。该选项可按两种格式生成: 基于文本的报告或 JSON 格式。 要生成基于文本的格式 , 请运行以下命令 : report_des…

Jquery动画特效

1&#xff0c;Jquery提供的特效方法 2&#xff0c;实例代码 <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"><…

冒泡排序以及改进方案

冒泡排序以及改进方案 介绍&#xff1a; 冒泡排序属于一种典型的交换排序&#xff08;两两比较&#xff09;。冒泡排序就像是把一杯子里的气泡一个个往上冒一样。它不断比较相邻的元素&#xff0c;如果顺序不对就像水泡一样交换它们的位置&#xff0c;直到整个序列像水泡一样…

矩阵连乘问题

1、求解矩阵连乘问题。 要求: 分别用自底向上的动态规划方法和自顶向下的备忘录方法计算最优值并构造最优解&#xff0c;通过实例比较两种方法的结果和效率。 思路 1)寻找最优子结构&#xff1a; 此问题最难就在于此&#xff0c;对于乘积的任意位置加括号都会将序列在某个…

C#简化工作之实现网页爬虫获取数据

1、需求 想要获取网站上所有的气象信息&#xff0c;网站如下所示&#xff1a; 目前总共有67页&#xff0c;随便点开一个如下所示&#xff1a; 需要获取所有天气数据&#xff0c;如果靠一个个点开再一个个复制粘贴那么也不知道什么时候才能完成&#xff0c;这个时候就可以使用C#…

unity3d NPC寻路时相互挤压、导致离目标越来越远

更改寻路代理 约束的大小&#xff0c;人物周围绿色圆柱范围线&#xff0c;尽量调小

23种设计模式之C++实践

23种设计模式之C++实践 1. 简介2. 基础知识3. 设计模式(一)创建型模式1. 单例模式1.2 饿汉式单例模式1.3 懒汉式单例模式比较IoDH单例模式总结2. 简单工厂模式简单工厂模式总结3. 工厂方法模式工厂方法模式总结4. 抽象工厂模式抽象工厂模式总结5. 原型模式原型模式总结6. 建造…

MySQL索引优化实战一

#插入一些示例数据drop procedure if exists insert_emp;delimiter ;;create procedure insert_emp()begindeclare i int;set i1;while(i<100000)doinsert into employees(name,age,position) values(CONCAT(tqq,i),i,dev);set ii1;end while;end;;delimiter ;call insert_e…

linaro交叉编译工具链下载与使用笔记

笔记 文章目录 笔记确定目标 &#xff08;aarch64&#xff09;选择版本&#xff08;7.5&#xff09;选择目标&#xff08;aarch64-linux-gnu&#xff09;下载地址工具链&#xff08;gcc-linaro-7.5.0-2019.12-x86_64_aarch64-linux-gnu.tar.xz&#xff09;编译测试 &#xff08…

WIFI模块(esp-01s)实现天气预报代码实现

目录 前言 实现图片 一、串口编程的实现 二、发送AT指令 esp01s.c esp01s.h 三、数据处理 1、初始化 2、cjson处理函数 3、核心控制代码 四、修改堆栈大小 前言 实现图片 前面讲解了使用AT指令获取天气与cjson的解析数据&#xff0c;本章综合将时间显示到屏幕 一、…

Python超级详细的变量命名规则

Python 需要使用标识符给变量命名&#xff0c;其实标识符就是用于给程序中变量、类、方法命名的符号&#xff08;简单来说&#xff0c;标识符就是合法的名字&#xff09;。 Python 语言的标识符必须以字母、下画线&#xff08;_&#xff09;开头&#xff0c;后面可以跟任意数目…

Python单元测试之道:从入门到精通的全面指南

在这篇文章中&#xff0c;我们会深入探讨Python单元测试的各个方面&#xff0c;包括它的基本概念、基础知识、实践方法、高级话题&#xff0c;如何在实际项目中进行单元测试&#xff0c;单元测试的最佳实践&#xff0c;以及一些有用的工具和资源 一、单元测试重要性 测试是软…