【MySQL 保姆级教学】数据库的操作(3)

数据库的操作

  • 1. 创建数据库
  • 2. 创建数据库的案例
  • 3. 字符集和校验规则
    • 3.1 查看系统默认字符集以及校验规则
    • 3.2 查看数据库支持的字符集
    • 3.3 查看数据库支持的字符集校验规则
    • 3.4 校验规则对数据库的影响
  • 4. 操纵数据库
    • 4.1 查看数据库
    • 4.2 显示创建语句
    • 4.3 修改数据库
    • 4.4 删除数据库
  • 5. 备份和恢复数据库
    • 5.1 作用
      • 5.1.1 备份数据库的作用
      • 5.1.2 恢复数据库的作用
    • 5.2 备份数据库
    • 5.3 恢复数据库
    • 5.4 -B 的作用
  • 6. 备份和恢复数据库中的表
    • 6.1 备份表
    • 6.2 恢复表
  • 7. 查看连接情况

1. 创建数据库

语法:

CREATE DATABASE [IF NOT EXISTS] db_name [create_specification [,
create_specification] …]

create_specification:
[DEFAULT]CHARACTER SET charset_name
[DEFAULT] COLLATE collation_name

说明:

  • 大写的表示关键字
  • [] 是可选项
  • CHARACTER SET: 指定数据库采用的字符集
  • COLLATE: 指定数据库字符集的校验规则

2. 创建数据库的案例

  1. 创建名为 study_1 的数据库(当创建数据库时不设置字符集时,会使用mysql默认的字符集)
    命令:create database stuty_1

    查看数据库:
    命令:show databases;
    在这里插入图片描述
    我们查看一下Linux中相应的目录有什么?
    命令: ls /var/lib/mysql
    此时,在 Linux 目录中,mysqld会创建一个目录,这个study_1的创建是 mysqld 服务端的操作
    在这里插入图片描述
    在mysql中创建数据库,在linux文件/var/lib/mysql目录下会新增一个目录,把该目录删除,mysql中的新建的数据库也会被删除。

    所以,我们可以子啊/var/lib/mysql中创建数据库吗(目录)?no,绝对不可以

  2. 创建一个使用utf8字符集的 study_2 数据库
    命令:create datebasee student_2 charset=utf8 ;

  3. 创建一个使用utf8字符集,并带校对规则的 study_3 数据库。
    命令:create datebasee student_3 charset=utf8 collate utf8_general_ci;

说明:

创建数据的时候,有字符集和校验集的设置:

  1. 字符集:定义了数据库中可以存储的字符及其编码方式。字符集决定了每个字符在计算机中如何表示,即每个字符占用多少字节以及具体的二进制编码。

  2. 校验集:定义了字符集中的字符如何进行比较和排序。同一个字符集可以有不同的校验集,不同的校验集决定了字符的大小写敏感性、重音敏感性等。

数字存储的时会使用字符集,数据查找或者匹配,这样会进行数据比较,想要进行比较就需要先读取出来,读取使用校验集,支持数据库进行比较使用的校验集,本质也是一种读取数据库中数据的编码格式

举个简单的例子,如果你存储数据使用浮点类型,而取数据用字符串类型,这样取出来的数据肯定会乱套的。

总之,数据库无论对数据做任何操作,都必须保证操作和编码必须是一致的。

当创建数据库时不设置字符集和校验集,会默认使用mysql配置的字符集和校验集

在 Linux 中查看系统默认字符集和校验集:
命令:vim /etc/my.cnf
在这里插入图片描述

3. 字符集和校验规则

3.1 查看系统默认字符集以及校验规则

  1. 查看字符集,命令:
    show variables like 'character_set_database;
    或:show variables like 'character_set_server;
    在这里插入图片描述

  2. 查看字符集校规则,命令:
    show variables like 'collation_database';
    或:show variables like 'collation_server;
    在这里插入图片描述

3.2 查看数据库支持的字符集

字符集:主要是控制用什么语言。比如utf8就可以使用中文。
命令:show charset;;
在这里插入图片描述

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

字符集校验规则:读取数据库中数据的编码格式。
命令:show collation;
在这里插入图片描述

3.4 校验规则对数据库的影响

  1. 不区分大小写
    创建一个数据库,校验规则使用utf8_ general_ ci[不区分大小写]
  • 创建数据库:create database db01 charset utf8 collate utf8_deneral_ci;
  • 创建表:create table test(id varchar(3));
  • 插入数据:insert into test values('a'),('b'),('c');
  • 插入数据:insert into test values('A'),('B'),('B');
  • 查询数据
    在这里插入图片描述
  • 查询排列数据(默认按字符的ASCII码升序排列)
    在这里插入图片描述
  1. 区分大小写
    创建一个数据库,校验规则使用utf8_bin[区分大小写]
  • 创建数据库:create database db02 charset utf8 collate utf8_bin;
  • 创建表:create table test(id varchar(3));
  • 插入数据:insert into test values('a'),('b'),('c');
  • 插入数据:insert into test values('A'),('B'),('B');
  • 查询数据
    在这里插入图片描述
  • 排列数据(升序)
    在这里插入图片描述

4. 操纵数据库

4.1 查看数据库

  1. 创建数据库(使用默认字符集和校验集)。
    命令:show databases;

  2. 创建数据库,同时设置字符集和校验集。
    命令:create database database_name charset=utf8 collate=utf8_general_ci
    注:=可以省略

  3. 进入到数据库,操作很久后忘记在哪个数据库中操作,查询当前在哪数据库
    命令:select database()

4.2 显示创建语句

命令:show create database database_name;

在这里插入图片描述
说明:

  • MySQL 建议我们关键字使用大写,但是不是必须的。
  • 数据库名字的反引号``,是为了防止使用的数据库名刚好是关键字。
  • /*!40100 default.... */ 这个不是注释,表示当前mysql版本大于4.01版本,就执行这句话(其实就是数据库使用的字符集)。

用途:

  1. 查看字符集和排序规则:了解数据库的字符集和排序规则,这对于确保数据一致性和兼容性非常重要。
  2. 复制数据库结构:如果你需要在另一个环境中创建相同的数据库,可以使用 SHOW CREATEDATABASE 语句获取创建语句,然后在新环境中执行该语句。
  3. 调试和维护:在数据库迁移或升级过程中,了解数据库的创建细节有助于调试和维护。

4.3 修改数据库

语法:

ALTER DATABASE db_name
[alter_spacification [,alter_spacification]…]
alter_spacification:
[DEFAULT] CHARACTER SET charset_name
[DEFAULT] COLLATE collation_name

说明:
对数据库的修改主要指的是修改数据库的字符集校验规则

实例: 将 test 数据库字符集改成 gbk
命令:alter databse test chartset gbk;
在这里插入图片描述

4.4 删除数据库

语法:
DROP DATABASE [IF EXISTS] db_ name;

说明:
[IF EXISTS] :如果该数据库存在则删除,如果该数据库不存在则不会抛出错误(异常)。
da_name:数据库名字。

执行删除之后的结果:

  • 数据库内部看不到对应的数据库。
  • 对应的数据库文件夹被删除,级联删除,里面的数据表全部被删

注意:不要随意删除数据库。

5. 备份和恢复数据库

5.1 作用

5.1.1 备份数据库的作用

备份数据库的作用:

  1. 数据保护:
  • 防止数据丢失:备份可以防止因硬件故障、软件错误、人为错误或恶意攻击导致的数据丢失。
  • 防止数据损坏:备份可以恢复因系统崩溃或数据损坏而无法访问的数据。
  1. 业务连续性:
  • 减少停机时间:通过备份,可以在发生问题时快速恢复数据,减少业务中断的时间。
  • 确保服务可用性:备份可以确保关键业务数据和服务的持续可用性。
  1. 合规性和审计:
  • 满足法规要求:许多行业和组织有严格的法规要求,规定必须定期备份数据以确保数据的完整性和安全性。
  • 审计需求:备份数据可以用于审计和合规检查,确保数据的真实性和一致性。
  1. 开发和测试:
  • 环境搭建:备份数据可以用于搭建开发和测试环境,确保这些环境与生产环境的数据一致。
  • 数据恢复:在开发和测试过程中,如果数据被修改或损坏,可以通过备份快速恢复。

5.1.2 恢复数据库的作用

恢复数据库的作用:

  1. 数据恢复:
  • 恢复丢失的数据:在数据丢失的情况下,可以通过备份恢复丢失的数据。
  • 恢复损坏的数据:在数据损坏的情况下,可以通过备份恢复到备份时的状态。
  1. 灾难恢复:
  • 应对重大故障:在发生重大故障(如数据中心故障、自然灾害)时,可以通过备份恢复数据,确保业务的连续性。
  • 快速恢复:通过备份,可以在短时间内恢复数据,减少业务中断的时间。
  1. 数据迁移:
  • 跨环境迁移:备份数据可以用于将数据从一个环境迁移到另一个环境,例如从开发环境迁移到生产环境。
  • 跨平台迁移:备份数据可以用于将数据从一个平台迁移到另一个平台,例如从旧版本的数据库迁移到新版本的数据库。
  1. 历史数据保留:
  • 保留历史记录:备份可以保留不同时间点的历史数据,用于分析和审计。
  • 数据归档:备份可以用于数据归档,保留长期的历史数据。

5.2 备份数据库

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

示例:

  1. 在Linux终端(windows终端)
    命令:mysqldump -P3306 -u root -p -B test > /root/MySQL_data/test.sql
    按回车键后会让同学们输入密码。

    • -B :备份数据库的起始位置。后面会详讲。
    • test.sql: 是一个文件,用来存储数据库的数据,名字可以任意取,但是后缀一定是sql
  2. 查询数据库的目录。
    在这里插入图片描述

  3. 再打开文件看一看。
    命令:vim test.sql
    在这里插入图片描述
    可以看出,文件的内容是创建数据的命令

5.3 恢复数据库

  1. 先打开MySQL数据库
    命令:mysql -h 8.148.27.113 -P 3306 -u root -p

  2. 输入要备份的路径及文件
    命令:source /root/MySQL_data/test.sql;
    在这里插入图片描述

  3. 再次查看数据库
    在这里插入图片描述

5.4 -B 的作用

当使用 -B 选项时,mysqldump 会在生成的 SQL 文件中包含一个 CREATE DATABASE 语句。这确保了在恢复数据时,如果目标数据库不存在,会自动创建该数据库。这使得备份和恢复过程更加完整和可靠。

如果不使用 -B 选项时,mysqldump 不会在生成的 SQL 文件中包含一个 CREATE DATABASE 语句。当别恢复的时候需要创建一个数据库,然后进入到创建的数据库中进行恢复。

示例:

  1. 备份数据库,不使用 -B
    命令:mysqldump -P 3306 -u root -p test > /root/MySQL_data/test.sql

  2. 打开备份好的数据文件。
    命令:vim test.sql
    在这里插入图片描述

    同学们可以对比下图看一看,是不是少了一部分创建数据库的语句。

    在这里插入图片描述

  3. 进入MySQL数据库,创建一个数据库然后进入
    命令:create database test;
    命令:use test
    在这里插入图片描述

  4. 恢复数据库
    命令:source /root/MySQL_data/test.sql;
    在这里插入图片描述

6. 备份和恢复数据库中的表

6.1 备份表

在Linux终端或Windows终端:
命令:mysqldump -P3306 -u root -p 数据库名 表名1 表名2 ··· > 文件路径及sql文件

示例:

  1. 备份表
    命令:mysqldump -P3306 -u root -p new test > /root/MySQL_data/test.sql

  2. 打开 test.sql 文件。
    命令:vim test.sql
    在这里插入图片描述

6.2 恢复表

  1. 打开MySQL数据库
    命令:mysql -h 8.148.27.113 -P 3306 -u root -p

  2. 进入数据库
    命令:use new

  3. 恢复数据库
    命令:source /root/MySQL_data/test.sql;
    在这里插入图片描述

7. 查看连接情况

命令:show processlist;
在这里插入图片描述

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

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

相关文章

OpenCV打开摄像头或视频

文章目录 1. 视频读取流程创建视频对象设置摄像头参数循环检查是否初始化成功并读取读取视频释放摄像头删除建立的全部窗口cv2.CAP_DSHOW设置后帧率变慢的问题 2.所有python实现代码参考文献 1. 视频读取流程 创建视频对象 cap cv2.VideoCapture(videoPath) #加载视频 cap …

【风控安全产品系统架构设计的一些思考】

随着互联网的不断发展和普及,信息安全和风险控制成为了各行各业关注的焦点之一。在这样的背景下,风控安全产品成为了保障企业信息资产安全的重要手段之一。本文将探讨风控安全产品系统架构设计的一些关键思考和实践经验。 1. 深度了解业务需求 在设计…

FFmpeg的简单使用【Windows】

目录 一、视频生成图片 静态图片 转码过程 动态图片gif 二、图片生成视频 三、FFmpeg常用参数命令 3.1 主要参数 3.1.1、-i 3.1.2、-f 3.1.3、-ss 3.1.4、-t 3.2 音频参数 3.2.1、-aframes 3.2.2、 -b:a 3.2.3、-ar 3.2.4、-ac 3.2.5、-acodec 3.2.6、-an 3…

未来汽车究竟该是什么样子?

24年10月14日,在中国(深圳)机器视觉展暨机器视觉技术及工业应用研讨会上,同行者分享了未来智能座舱应该长什么样子。 受此启发,个人觉得当前大多数新能源车都极力想做出电动感,但是布局传统没跳出来&#…

【Golang】Go 语言中的 time 包详解:全面掌握时间处理与应用

在 Go 语言中,time 包提供了强大的时间处理功能,适用于各种场景:获取当前时间、格式化和解析时间、计算时间间隔、设置定时器、处理超时等。在开发过程中,熟练掌握 time 包能够帮助我们轻松处理时间相关的操作,尤其是定…

【大模型理论篇】大模型中的强化学习RLHF(PPO)、DPO(Direct Preference Optimization)等概念的理解与解析

1. “人类对齐(Human Alignment)”背景介绍 本文主要针对大模型训练过程中的PPO(Proximal Policy Optimization)、DPO(Direct Preference Optimization)等概念进行解释和分析,更确切的说是在“人类对齐(Human Alignment&#xff0…

aosp14分屏分割线区域部分深入剖析-framework实战干货

背景: 原来在学习分屏课程期间,当时没有对分屏分割线的区域部分进行详细介绍。 本篇文章就针对这个块的知识进行详细的补充讲解,首先可以通过下图所示分割线情况,这样有一个初步的认识 简单说分屏情况下分割线是可以拖拉到不同…

社交媒体对人际关系的影响:Facebook的案例分析

随着社交媒体的快速发展,人们的沟通方式和人际关系发生了深刻变化。作为全球最大的社交网络之一,Facebook在这一进程中扮演了重要角色。本文将分析Facebook如何影响人际关系,包括沟通方式的转变、情感连接的变化以及社交互动的质量。 1. 沟通…

无极低码课程【redis windows下服务注册密码修改】

下载Windows版本的Redis linux环境 (自行下载) 1.打开官网https://redis.io/downloads/ windows环境 1.打开github https://github.com/microsoftarchive/redis/releases 然后选择你喜欢的版本zip或msi下载 2.这里下载zip版,解压后后,打开安装目录 3.双击redis-server…

Xcode使用Instruments的dsym还原符号堆栈问题

文章目录 设置符号表的步骤参考资料 设置符号表的步骤 instruments 的 Settings 中,可以设置符号表的搜索路径 没有生效的话,继续看 File 里面的 Symbols - 出现弹窗后点击 Add Symbols - 然后再点击 Apply。 参考资料 https://xjkstar.github.i…

初级网络工程师之从入门到入狱(四)

本文是我在学习过程中记录学习的点点滴滴,目的是为了学完之后巩固一下顺便也和大家分享一下,日后忘记了也可以方便快速的复习。 网络工程师从入门到入狱 前言一、Wlan应用实战1.1、拓扑图详解1.2、LSW11.3、AC11.4、抓包1.5、Tunnel隧道模式解析1.6、AP、…

Flink 06 聚合操作入门学习,真不难

抛砖引玉 让你统计1小时内每种商品的销售额,用Flink 该怎么实现。 还是让你统计1小时内每种商品的销售额,但是要过滤掉退款的订单,用Flink 该怎么实现。 学了本文两个操作,不信你还不会。 AggregateFunction ❝ 通常用于对数据…

React国际化中英文切换实现

目录 概况 安装 文件结构 引入 使用 正常使用 传参使用 概况 react-intl-universal 是一个国际化库,专门为 React 应用提供多语言支持。与 React 原生的 react-intl 相比,react-intl-universal 支持从远程服务器加载语言包,动态切换语…

【Python】selenium遇到“InvalidArgumentException”的解决方法

在使用try……except 的时候捕获到这个错误: InvalidArgumentException: invalid argument (Session info: chrome112.0.5614.0) 这个错误代表的是,当传入的参数不符合期望时,就会抛出这个异常: InvalidArgumentException: invali…

【MySQL 保姆级教学】在Linux(CentoS 7)中安装MySQL(1)

目录 1. 卸载linux(Centos7) 中不要的环境2. 获取MySQL官方yum源2.1 获取yum源前先查看自己 linux(Centos)的版本2.2 获取官方yum源 3. 安装xftp和连接4. 开放连接端口5. 上传文件到Centos76. 安装MySQL6.1 顺利安装6.2 查询是否安…

QGraphics类型学习使用【Qt】【C++】

QGraphics类型学习使用 需求过程全部完整代码 首先已知,QGraphicsView,QGraphicsScene, QGraphicsItem,分别称为:视图,场景,图元,图表就是各种各样的元素,图片元素,线条元…

Unity Apple Vision Pro 开发:Metal 渲染模式开启透视遇到背景黑屏的解决方法

XR 开发者社区链接: SpatialXR社区:完整课程、项目下载、项目孵化宣发、答疑、投融资、专属圈子 以下步骤适用于 PolySpatial 2.0 及以上的版本。 我们可以在 Project Settings 中的 Apple visionOS 里将 App Mode 设为 Metal Rendering with Composit…

【C语言】分支结构switch

switch分支语句 多适用于明确表达式结果的情况&#xff0c;多个分支&#xff0c;用if过于繁琐。 case后跟具体的表达式值&#xff0c;break&#xff1b;跳出分支语句。 #include <stdio.h> #include <math.h> /* 功能&#xff1a;选择结构&#xff08;switch&…

Flink CDC同步mysql数据到doris

前置参考 flink快速安装&#xff1a;Flink入门-CSDN博客 doris快速安装&#xff1a;Apache Doris快速安装-CSDN博客 Flink CDC简介 Flink CDC 是一个基于流的数据集成工具&#xff0c;旨在为用户提供一套功能更加全面的编程接口&#xff08;API&#xff09;。 该工具使得用户能…

AI测试之 TestGPT

如今最火热的技术莫非OpenAI的ChatGPT莫属&#xff0c;AI技术也在很多方面得到广泛应用。今天我们要介绍的TestGPT就是一个软件测试领域中当红的应用。 TestGPT是什么&#xff1f; TestGPT是一家总部位于以色列特拉维夫的初创公司 CodiumAI Ltd.&#xff0c;发布的一款用于测…