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.mzph.cn/news/178735.shtml

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

相关文章

网工内推 | 外企网工,五险一金,弹性工作,最高30k*14薪

01 金蝶软件(中国)有限公司 招聘岗位:网络工程师 职责描述: 1、合理规划公司网络,保障网络架构的合理性、可靠性及前瞻性; 2、负责公司网络运维,处理日常运维事件,保障网络的稳定可…

Arch Linux 安装 dwm 窗口管理器

窗口管理器是管理桌面上各种窗口的组件,主要功能有:窗口堆叠方式,窗口移动规则等。大多数人接触到的是堆叠式窗口管理器,一个窗口可以叠放在其他窗口之上,调整窗口的主要方式是鼠标。而dwm(Dynamic Window …

Python(八十九)函数的参数的内存分析

❤️ 专栏简介:本专栏记录了我个人从零开始学习Python编程的过程。在这个专栏中,我将分享我在学习Python的过程中的学习笔记、学习路线以及各个知识点。 ☀️ 专栏适用人群 :本专栏适用于希望学习Python编程的初学者和有一定编程基础的人。无…

振南技术干货集:znFAT 硬刚日本的 FATFS 历险记(9)

注解目录 1、znFAT 的起源 1.1 源于论坛 (那是一个论坛文化兴盛的年代。网友 DIY SDMP3 播放器激起了我的兴趣。) 1.2 硬盘 MP3 推了我一把 (“坤哥”的硬盘 MP3 播放器,让我深陷 FAT 文件系统不能自拔。) 1.3 我…

手机爬虫用Fiddler详细教程

如果你正在进行手机爬虫的工作,那么一款强大而又实用的网络调试工具Fiddler将会是你的好帮手。今天,我将和大家分享一份详细的Fiddler教程,教你如何使用它来轻松捕获和分析手机App的网络请求。让我们一起来探索Fiddler的功能和操作&#xff0…

Java 发送邮件

Java 发送邮件 使用Java应用程序发送E-mail十分简单,但是首先你应该在你的机器上安装JavaMail API 和Java Activation Framework (JAF) 。 你可以在 JavaMail (Version 1.2) 下载最新的版本。 你可以再 在JAF (Version 1.1.1)下载最新的版本。 下载并解压这些文…

你敢信?四行Python代码就能知道你那的天气!

今天给大家带来的Python实战项目是四行Python代码获取所在城市的天气预报,我们隐隐听到唏嘘声,不信四行Python代码可以获取是吗?那我们一起来看看: 四行Python代码就能知道你那的天气,你敢信? 使用Python获取天气预报…

paddleocr笔记

PP-OCRv1 PP-OCR中,对于一张图像,需要完成以下3个步骤提取其中的文字信息: 使用文本检测方法,获取文本区域多边形信息(PP-OCR中文本检测使用的是DBNet,因此获取的是四点信息)。对上述文本多边形…

sqli-labs关卡21(基于cookie被base64编码的报错盲注)通关思路

文章目录 前言一、回顾上一关知识点二、靶场需要了解的前置知识1、什么是base64编码? 三、靶场第二十一关通关思路1、判断注入点2、爆数据库名3、爆数据库表4、爆数据库列5、爆数据库关键信息 总结 前言 此文章只用于学习和反思巩固sql注入知识,禁止用于…

Toast UI Editor上传图片到Flask

Toast UI Editor国内文档几乎搜不到,国外文档也写得不是特别项目,没有太多举例的demo。一开始选择使用这个就是因为UI好看。不过看看源码把思路滤清了。 他会给把图片转成Base64,到时候发表单直接丢过去就行了,blob这个参数能拿到…

vue+elementUI的tabs与table表格联动固定与滚动位置

有个变态的需求,要求tabs左侧固定,右侧是表格,点击左侧tab,右侧表格滚动到指定位置,同时,右侧滚动的时候,左侧tab高亮相应的item 上图 右侧的高度非常高,内容非常多 常规的瞄点不适…

C++中的类与对象

类和对象的基本概念 C 和 C中 struct 区别 c 语言 struct 只有变量 c语言 struct 既有变量,也有函数 类的封装 我们编写程序的目的是为了解决现实中的问题,而这些问题的构成都是由各种事物组成,我们在计算机中要解决这种问题&#x…

vue3还用this吗?getCurrentInstance获取当前组件实例

在 Vue 2 中,this 关键字代表当前组件实例。在组件的选项对象中,this 可以用于访问组件实例的属性、方法以及 Vue 实例的一些特定方法。 在Vue3中,我们发现this是undefined,那我们真的没法使用this了吗?vu3给我们提供…

Vue3框架中让table合计居中对齐

第一步&#xff1a;给它加一个类名 center-table 如下&#xff1a; <el-table:data"datas.shows"max-height"600px"show-summarystripeborderstyle"width: 100%":header-cell-style"{ textAlign: center }":cell-style"{ text…

this.$refs,salesRankRefjj.searchRankCall is not a function

在vue项目中&#xff0c;在父组件使用$refs获取不到子组件的方法&#xff0c;为什么&#xff1f; 我的报错如下&#xff1a; [Vue wamn]: Error in v-on handler: "TypeError: this.$refs,salesRankRefjj.searchRankCall is not a function found in 代码如下&#xff1a…

【蓝桥杯 LCA 差分】 砍树

题目分析&#xff1a; 这道题还是比较裸的一道书上差分的题目了 对于每一对标记点(x,y) 他们之间的路径就是 x − > L C A ( x , y ) − > y x->LCA(x,y)->y x−>LCA(x,y)−>y 这条路径上的每一条边都要经过。 那么对于一条边&#xff0c;什么时候砍掉这条…

vue3中toRaw 与 markRaw

toRaw 返回由 reactive 或 readonly 方法转换成响应式代理的普通对象。 这是一个还原方法&#xff0c;可用于临时读取&#xff0c;访问不会被代理/跟踪&#xff0c;写入时也不会触发界面更新。 markRaw 标记一个对象&#xff0c;使其永远不会转换为代理。返回对象本身 应…

bash编程 数组和for循环的应用

bash编程 数组和for循环的应用 1、问题背景2、bash 定义数组3、for循环遍历输出数组所有元素4、编写bash脚本输出每个端口是否在监听状态 1、问题背景 linux服务器开机后&#xff0c;需要检查一组端口是否在监听&#xff0c;以便判断这些端口对应的服务是否在运行。可以考虑使…

解释LED显示屏的裸眼3D特效原理

LED电子大屏幕的3D特效技术正在不断发展&#xff0c;而实现这一技术的原理主要包括分光、分色、分时和光栅等四种方法。这些原理都有各自的特点和应用场景&#xff0c;下面将对它们进行详细介绍。 1. 分光方法 分光方法是一种基于偏振光的3D显示技术。通过使用偏振滤镜或偏振片…

leetCode 841. 钥匙和房间 图遍历 深度优先遍历+广度优先遍历 + 图解

841. 钥匙和房间 - 力扣&#xff08;LeetCode&#xff09; 有 n 个房间&#xff0c;房间按从 0 到 n - 1 编号。最初&#xff0c;除 0 号房间外的其余所有房间都被锁住。你的目标是进入所有的房间。然而&#xff0c;你不能在没有获得钥匙的时候进入锁住的房间。当你进入一个房…