MySQL —— MySQL 程序

news2024/12/1 10:53:47

目录

·前言

一、MySQL 程序简介

二、mysqld -- MySQL 服务器

三、mysql -- MySQL 客户端

1. mysql 客户端简介

2. mysql 客户端选项

(1)指定选项的方式

(2)mysql 客户端命令常用选项

(3)在命令行中使用选项

3. mysql 客户端命令

(1)connect(\r)

(2)status(\s)

(3)delimiter(\d)

(4)exit 与 quit(\q)

(5)tee(\T) 与 notee(\t)

(6)prompt(\R)

(7)source(\.)

(8)system(\!)

(9)help contents 

4.从 .sql 文件中执行 SQL语句

(1)使用 source 命令导入

(2)使用 mysql 客户端导入

·总结


·前言

        本篇文章将会介绍 MySQL 中常见程序 mysqld 与 mysql 的基本概念,以及详细介绍 mysql 客户端程序的使用,这里我们会介绍 mysql 客户端命令的常用选项,使用 mysql 客户端从 .sql 文件中执行 SQL 语句,下面开始本篇文章的内容介绍。

一、MySQL 程序简介

        在我们安装完 MySQL 后通常会包含如下的程序:

  • Linux 系统中安装完 MySQL 程序一般在 /usr/bin 目录下,可以通过命令查看:

  • Windows 系统中安装完 MySQL 程序会在目录:安装目录\MySQL Server [版本号]\bin,可以通过命令查看:

        可以观察到,在安装完 MySQL 后还有很多的其他程序,在这里面我们常用的 MySQL 程序及作用如下表所示:

MySQL 常用程序
程序名作用
mysqldMySQL 的守护进程即 MySQL 服务器,要使用 MySQL 服务器 mysqld 必须正在运行状态。
mysqlMySQL 客户端程序,用于交互式输入 SQL 语句或以批处理模式从文件执行 SQL 的命令行工具。
mysqlcheck用于检查、修复、分析和优化表的表维护客户端。
mysqldump将 MySQL 数据库转储到 SQL、文本或 XML 文件中的客户端。
mysqlimport将文本文件导入到表的客户端工具。
mysqladmin执行管理操作的客户端,例如创建或删除数据库、重新加载授权表、将表刷新到磁盘以及重新打开日志文件。mysqladmin 还可以用于从读取检索版本、进程和状态信息。
mysqlshow显示数据库、表、列和索引信息的客户端。
mysqldumpslow用于读取和汇总慢速查询日志内容的实用程序。
mysqlbinlog从二进制日志中读取 SQL 语句的实用程序。mysqlbinlog 文件中包含的已执行 SQL 语句的日志,可用于从崩溃中恢复数据。
mysqlslap客户端负载工具,模拟多个客户端同时访问 MySQL 服务器,并报告每个阶段的使用时间。

        在上表所介绍的这些 MySQL 常用程序中,只有 mysqld 是服务端的程序,它属于后台程序,其他的那些都是我们在使用 MySQL 时客户端的工具。

二、mysqld -- MySQL 服务器

        mysqld 也被称为 MySQL 服务器,这是一个多线程程序,对数据目录进行访问管理(包含数据库和表)。数据目录也是其他信息(如日志文件和状态文件)的默认存储位置。当 MySQL 服务器启动时,会侦听指定的端口、来处理来自客户端程序的网络连接,并管理不同客户端对数据库的访问。关于客户端与 mysqld 服务程序的关系如下图所示:

        mysqld 程序有许多选项可以在启动时指定,运行以下命令可以查看完整的选项列表:

mysqld --verbose --help

         有关 MySQL 服务器的更多介绍,我会在后面文章中进行详细介绍。

三、mysql -- MySQL 客户端

1. mysql 客户端简介

        mysql 是一个简单的 SQL shell,可以输入命令和执行 SQL 语句,当执行 SQL 语句时,查询结果以 ASCII 表格显示,关于 mysql 的基本使用非常简单,下面我们来回顾一下连接数据库的方式,打开终端并输入以下命令:

# 连接 MySQL 服务器,长选项格式
mysql --user=user_name --password [db_name]

        执行命令过程及结果如下图所示:

# 短选项格式
mysql -uuser_name -p [db_name]

         执行命令过程及结果如下图所示:

        关于这两种连接数据库的命令,后面都有一个可选的参数 [db_name] ,我们可以在连接数据库时指定我们要连接其中哪个数据库,具体的演示如下图所示:

        下面我们就来详细介绍 mysql 客户端的使用方法。 

2. mysql 客户端选项

(1)指定选项的方式

        在 mysql 客户端指定选项的方式有以下三种:

  • 在 mysql 后面命令行中列出选项;
  • 在 mysql 后面指定配置文件的路径,以便在程序启动时读取配置文件中的选项,并解析对应程序选项的值,应用在启动参数中;
  • 使用环境变量中的选项。

        下面我们介绍的指定选项方式主要以前两种为主,第三种并不常用。 

(2)mysql 客户端命令常用选项

        mysql 客户端命令常用选项如下表所示:

选项--长格式短格式说明
--host-h连接指定主机上的 MySQL 服务,默认 127.0.0.1 或 localhost,使用方式:--host=host_name,-hhost_name。
--port-PTCP/IP 连接使用的端口号,默认 3306,使用方式:--port=port_num,-Pport_num。
--user-u用于连接到 MySQL 服务器的用户名,使用方式:--user=user_name,-uuser_name。
--password-p用于连接到 MySQL 服务器的密码。可选,如果连接 MySQL 服务器时没有给出这个选项,会提示用户输入,使用方式:--password[=password],-p[password]。
--defauts-file使用指定的配置文件,如果该文件不存在,就会发生错误,使用方式:--defaults-file=file_name。
--default-character-set使用方式:--default-character-set=charset_name,其中 charset_name 将作为客户端和当前连接的默认字符集,如:utf8mb4。
--database-D用于指定要使用的数据库,使用方式:--database=db_name,-Ddb_name。
--compress-C如果可能,压缩客户端和服务器之间传输的所有信息,使用方式:--compress,-C。
--reconnect如果客户端与服务器的连接丢失,自动尝试重新连接,使用方式:--reconnect。
--quick-q不缓存查询结果,收到一行打印一行,如果输出被挂起,可能会降低服务器速度,使用方式:--quick,-q。
--protocol用于连接到服务器的传输协议,默认为 TCP,使用方式:--protocol={TCP|SOCKET|PIPE|MEMORY}。
--delimiter设置 SQL 语句分隔符,默认值是分号(;),标记 SQL 语句的结束,使用方式:--delimiter=str。
--execute-e执行指定的 SQL 语句并退出,使用方式:--execute=statement,-estatement。
--version-V显示版本信息并退出,使用方式:--version,-V。
--help-?显示帮助信息并退出,使用方式:--help,-?。

        这里我们指定选项的值要注意一点:如果选项的值中包含空格,那么值需要包含在双引号中。 

(3)在命令行中使用选项

        在命令行中指定选项应遵循以下规则:

  • 选项应在程序名之后给出;
  • 选项以单破折号 “-” 或双破折号 “--” 开头,- 表示短格式,-- 表示长格式,例如:-? 和 --help 都表示 MySQL 程序显示他的帮助信息,操作命令如下:
    mysql -?
    mysql --help
  • 选项名称区分大小写。-v 和 -V 都是合法的,但是所表达的含义不同,它们分别是 --verbose(尽可能详细的显示结果) 和 --version 选项对应缩写的格式,操作命令如下:

    # 以下两个等价
    mysql --verbose
    mysql -v
    
    # 以下两个等价
    mysql --version
    mysql -V
  • 某些选项需要在后面指定一个值。例如:-h 127.0.0.1 或 --host=127.0.0.1 表示向客户端程序指定 MySQL 服务器主机,操作命令如下:

    mysql -h 127.0.0.1
    mysql --host=127.0.0.1
  • 对于带值的长格式选项,通常用 = 符号分隔选项名称和值,对于带值的短选项,选项值可以紧跟在选项之后,也可以用空格隔开,例如:--host=127.0.0.1、-h127.0.0.1、-h 127.0.0.1 这三种写法是等价的,但是对于密码选项的短格式,如果要指定密码,选项与值之间不可以有空格,解释如下:

    mysql -ptest   # test 表示密码,但没有指定要访问的数据库
    mysql -p test  # test 表示指定了访问的数据库,但是没有指定密码

    注意:在命令行中,第一个不带破折号 - 的值被解析成要访问的数据库名,所以 --database 选项一般可以省略。

  • 在选项名称中,破折号(-)和下划线(_)在大多数情况下可以互换使用,但是前导破折号不能转为下划线,例如:--skip-grant-tables 和 --skip_grant_tables 是等价的。

  • 对于采用数值的选项,该值可以带有后缀 K,M 或 G 以表示乘数 1024,1024^2 或 1024^3,命令示例如下:

    # 使用 mysqladmin 对服务器执行 1024 次 ping,每次 ping 之间休眠 3 秒
    mysqladmin --count=1k --sleep=3 ping -uroot -p
  • 在命令行中包含空格的选项值必须用引号引起来,例如:--execute(or -e)选项与 mysql 一起使用时,表示将一个或多个 SQL 语句发送给服务器执行并显示结果,命令执行过程及结果如下图所示:

3. mysql 客户端命令

        在我们使用 mysql 客户端程序连接到数据库服务器之后,可以发送 SQL 语句到服务器,并以“;”(分号)、\g 或 \G 结束,我们要注意以下几点:

  • ; 与 \g 结束表示以表格形式展示结果,效果如下图所示:

  • \G 结束表示以行形式展示结果,效果如下图所示:

  • 如果当前已经输入了一部分 SQL 语句想要重新输入,可以输入 Ctrl+C 中断当前输入,效果如下图所示:

        在当前的模式下,mysql 还有一组自己的命令,我们可以使用 help 或者 \h 查看命令列表,输入命令过程及结果如下图所示:

        下面我就对上面列出的全部命令中的部分命令做一个详细介绍及演示。

(1)connect(\r)

        这条指令所执行的操作是重新连接服务器,具体操作及效果如下图所示:

(2)status(\s)

        这条指令所执行的操作是查看服务器的状态,具体操作及效果如下图所示:

(3)delimiter(\d)

        这条指令所执行的操作是重新指定 SQL 语句的结束标识符,具体操作及效果如下图所示:

(4)exit 与 quit(\q)

        这两条指令的短格式都是 \q,它们所执行的操作都是一样的:退出 mysql 客户端程序,具体操作及效果如下图所示:

(5)tee(\T) 与 notee(\t)

        这两条指令是搭配使用的,指令 tee 所执行的操作是把所有执行结果保存到一个指定的文件中,指令 notee 所执行的操作是取消执行结果写入文件中,关于这两条指令的具体操作及效果如下图所示:

(6)prompt(\R)

        这条指令所执行的操作是修改提示符,具体操作及效果如下图所示:

(7)source(\.)

        这条指令所执行的操作是加载并执行指定的 .sql 脚本,具体操作及效果在下面再进行介绍。

(8)system(\!)

        这条指令所执行的操作是执行系统命令,属于一个比较危险的操作,具体操作及效果如下图所示:

(9)help contents 

        使用这个命令可以查看关于 MySQL 数据库使用的具体帮助,包括用户管理、SQL 语法、数据类型、组件等相关内容列表,具体操作及效果如下图所示:

        在 help 后面跟上具体要查看的条目,可以获取该条目的详细帮助信息,如:help Functions,操作及效果如下图所示:

        继续输入 help 具体的条目,可以进一步观察关于此条目的详细说明,例如:help String Functions,具体操作及效果如下图所示:

        还有很多其他的指令,感兴趣的友友们可以自己尝试一下咯~~

4.从 .sql 文件中执行 SQL语句

(1)使用 source 命令导入

        有时我们需要从 .sql 文件中执行一些 SQL 语句,比如当我们要把一个数据库从一台服务器 A 复制到另一台服务器 B 上,那么就可以先从服务器 A 中导出数据到 .sql 文件,然后在服务器 B 执行这个 .sql 文件,在上面我们介绍的命令中有 source(\.)命令,那么下面我们就来具体操作及演示一下这个命令。

        首先我们要先准备一个 .sql 文件,命名为 test_db.sql,内容如下:

SET NAMES utf8mb4;
SET FOREIGN_KEY_CHECKS = 0;

DROP DATABASE IF EXISTS `test_db`;
CREATE DATABASE `test_db` CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;

USE `test_db`;

-- ----------------------------
-- Table structure for classes
-- ----------------------------
DROP TABLE IF EXISTS `classes`;
CREATE TABLE `classes`  (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `name` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL,
  `desc` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL,
  PRIMARY KEY (`id`) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 4 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci ROW_FORMAT = Dynamic;

-- ----------------------------
-- Records of classes
-- ----------------------------
INSERT INTO `classes` VALUES (1, '计算机系2019级1班', '学习了计算机原理、C和Java语言、数据结构和算法');
INSERT INTO `classes` VALUES (2, '中文系2019级3班', '学习了中国传统文学');
INSERT INTO `classes` VALUES (3, '自动化2019级5班', '学习了机械自动化');

-- ----------------------------
-- Table structure for course
-- ----------------------------
DROP TABLE IF EXISTS `course`;
CREATE TABLE `course`  (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `name` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL,
  PRIMARY KEY (`id`) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 7 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci ROW_FORMAT = Dynamic;

-- ----------------------------
-- Records of course
-- ----------------------------
INSERT INTO `course` VALUES (1, 'Java');
INSERT INTO `course` VALUES (2, '中国传统文化');
INSERT INTO `course` VALUES (3, '计算机原理');
INSERT INTO `course` VALUES (4, '语文');
INSERT INTO `course` VALUES (5, '高阶数学');
INSERT INTO `course` VALUES (6, '英文');

-- ----------------------------
-- Table structure for score
-- ----------------------------
DROP TABLE IF EXISTS `score`;
CREATE TABLE `score`  (
  `score` decimal(3, 1) NULL DEFAULT NULL,
  `student_id` int(11) NULL DEFAULT NULL,
  `course_id` int(11) NULL DEFAULT NULL
) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci ROW_FORMAT = Dynamic;

-- ----------------------------
-- Records of score
-- ----------------------------
INSERT INTO `score` VALUES (70.5, 1, 1);
INSERT INTO `score` VALUES (98.5, 1, 3);
INSERT INTO `score` VALUES (33.0, 1, 5);
INSERT INTO `score` VALUES (98.0, 1, 6);
INSERT INTO `score` VALUES (60.0, 2, 1);
INSERT INTO `score` VALUES (59.5, 2, 5);
INSERT INTO `score` VALUES (33.0, 3, 1);
INSERT INTO `score` VALUES (68.0, 3, 3);
INSERT INTO `score` VALUES (99.0, 3, 5);
INSERT INTO `score` VALUES (67.0, 4, 1);
INSERT INTO `score` VALUES (23.0, 4, 3);
INSERT INTO `score` VALUES (56.0, 4, 5);
INSERT INTO `score` VALUES (72.0, 4, 6);
INSERT INTO `score` VALUES (81.0, 5, 1);
INSERT INTO `score` VALUES (37.0, 5, 5);

-- ----------------------------
-- Table structure for student
-- ----------------------------
DROP TABLE IF EXISTS `student`;
CREATE TABLE `student`  (
  `id` int(11) PRIMARY KEY AUTO_INCREMENT,
  `sn` int(11) NOT NULL COMMENT '学号',
  `name` varchar(20) NOT NULL COMMENT '姓名',
  `mail` varchar(20) COMMENT 'QQ邮箱'
) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci ROW_FORMAT = Dynamic;

-- ----------------------------
-- Records of student
-- ----------------------------
INSERT INTO `student` VALUES (1, 50001, '张三', 'zs@bit.com');
INSERT INTO `student` VALUES (2, 50002, '李四', 'ls@bit.com');
INSERT INTO `student` VALUES (3, 50003, '王五', 'ww@bit.com');
INSERT INTO `student` VALUES (4, 50004, '赵六', 'zl@bit.com');
INSERT INTO `student` VALUES (5, 50005, '钱七', 'qq@bit.com');

SET FOREIGN_KEY_CHECKS = 1;

         然后我们要确定 .sql 文件的绝对路径:/root/test_db.sql,如下图所示:

        下面我们要确定当前数据库中没有数据库 test_db,查看我们当前数据库,如下图所示:

        进行完上面的操作之后,我们就可以使用 source 命令执行 .sql 文件中的 SQL 语句了,具体操作及效果如下图所示:

        现在我们来验证一下执行的 SQL 语句是否成功,如下图所示:

(2)使用 mysql 客户端导入

        除了上述的执行 .sql 文件的方式,还有一种就是直接使用 mysql 客户端程序导入 .sql 文件并执行相应的 SQL 语句,相关命令如下:

# 在指定的数据库下执行 SQL,前提是数据库必须提前建立好
mysql db_name < text_file

# 不指定数据库 .sql 中必须有 use [database_name],来指定要操作的数据库
mysql < text_file

        具体操作及效果如下图所示:

        我们可以根据我们的需求来选择执行 .sql 文件中 SQL 语句的方式。

·总结

        文章到此就要结束了,本篇文章重点介绍了 mysql 客户端程序中一些常用的命令及选项,还介绍了一下 MySQL 的相关程序,后面文章中会对其他程序再做详细介绍,如果对文章内容有所疑惑,欢迎在评论区进行留言,如果感觉本篇文章还不错希望能收到你的三连支持,那么我们下一篇文章再见吧~~~

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

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

相关文章

Flink CDC 使用实践以及遇到的问题

背景 最近公司在做一些业务上的架构调整&#xff0c;有一部分是数据从mysql采集到Starrocks&#xff0c;之前的一套方法是走 debezium 到 puslar 到 starrocks,这一套下来比较需要配置很多东西&#xff0c;而且出现问题以后&#xff0c;需要修改很多配置&#xff0c;而且现阶段…

数据链路层(三)--点对点通信协议PPP

PPP协议叫做点对点协议&#xff0c;是目前使用的最广泛的数据链路层协议。 1 PPP协议的特点 用户通常需要连接到某个ISP才能接入互联网&#xff0c;PPP协议就是用户计算机和ISP进行通信所使用的数据链路层协议。 1.1 PPP协议应满足的需求 &#xff08;1&#xff09;简单&…

C语言 分支语句(if)

分支语句(if) if语句形式一 适用只有一个分支判断 if(表达式1) //如果 { 语句块1 } if语句形式二 适用有两个分支判断 if(表达式1) //如果 { 语句块1 } else //否则 { 语句块2 } 例:求方程的根 if语句形式三 适用多分支判断 if(表达式1) //多分支 { 语句块1 } else if(表达…

如何将WSL的虚拟机安装到任意目录中

目录 引言 下载安装包 解压安装包 手工安装 结语 引言 WSL默认是将虚拟机安装在C盘的用户目录下&#xff0c;如果长时间使用Windows后&#xff0c;可能C盘的空间就会非常吃紧&#xff0c;所以非常希望把虚拟机安装到C盘以外的目录中。本文就介绍一下相关的工作。 这里只讨…

一款.NET开源的Windows资源管理器标签页工具

前言 今天大姚给大家分享一款基于.NET开发的可以让你在Windows资源管理器中使用Tab多标签功能的小工具&#xff1a;QTTabBar。 工具介绍 QTTabBar是一款基于.NET开发的可以让你在Windows资源管理器中使用Tab多标签功能的小工具。从此以后工作时不再遍布文件夹窗口&#xff0c…

传输控制协议(TCP)

传输控制协议是Internet一个重要的传输层协议。TCP提供面向连接、可靠、有序、字节流传输服务。 1、TCP报文段结构 注&#xff1a;TCP默认采用累积确认机制。 2、三次握手、四次挥手 &#xff08;1&#xff09;当客户向服务器发送完最后一个数据段后&#xff0c;发送一个FIN段…

c++哈希表(原理、实现、开放寻址法)适合新手

c系列哈希的原理及实现&#xff08;上&#xff09; 文章目录 c系列哈希的原理及实现&#xff08;上&#xff09;前言一、哈希的概念二、哈希冲突三、哈希冲突解决3.1、开放寻址法3.2、删除操作3.3、负载因子四、代码实现 总结 前言 红黑树平衡树和哈希有不同的用途。 红黑树、…

服务器数据恢复—raid6阵列硬盘被误重组为raid5阵列的数据恢复案例

服务器存储数据恢复环境&#xff1a; 存储中有一组由12块硬盘组建的RAID6阵列&#xff0c;上层linux操作系统EXT3文件系统&#xff0c;该存储划分3个LUN。 服务器存储故障&分析&#xff1a; 存储中RAID6阵列不可用。为了抢救数据&#xff0c;运维人员使用原始RAID中的部分…

Python酷库之旅-第三方库Pandas(250)

目录 一、用法精讲 1181、pandas.tseries.offsets.BusinessMonthEnd.is_on_offset方法 1181-1、语法 1181-2、参数 1181-3、功能 1181-4、返回值 1181-5、说明 1181-6、用法 1181-6-1、数据准备 1181-6-2、代码示例 1181-6-3、结果输出 1182、pandas.tseries.offse…

layui table 纵向滚动条导致单元格表头表体错位问题

我用的时layui2.6.8版本 历史项目维护&#xff0c;bug给我让我做了&#xff0c;本来利用前端手段强解决&#xff0c;后来发现很多table 找了解决办法 打开layui-v2.6.8/lay/modules/table.js 如果打开后时压缩的代码 直接搜索 e.find(".layui-table-patch") …

BWO-CNN-BiGRU-Attention白鲸优化算法优化卷积神经网络结合双向门控循环单元时间序列预测,含优化前后对比

BWO-CNN-BiGRU-Attention白鲸优化算法优化卷积神经网络结合双向门控循环单元时间序列预测&#xff0c;含优化前后对比 目录 BWO-CNN-BiGRU-Attention白鲸优化算法优化卷积神经网络结合双向门控循环单元时间序列预测&#xff0c;含优化前后对比预测效果基本介绍模型描述程序设计…

vue.js学习(day 13)

.sync修饰符 App.vue <template><div class"app"><buttonclick"isShow true">退出按钮</button><!-- :visible.sync > :visible update:visible--><BaseDialog :visible.sync"isShow"></BaseDia…

Android复习简答题

一、基础入门 Android程序架构 &#xff08;1&#xff09;app:用于存放程序的代码和资源等内容。包含很多子目录 libs:存放第三方jar包 src/androidTest&#xff1a;存放调试的代码文件 src/main/androidMainfest.xml 整个程序的配置文件&#xff0c;可配置程序所需要的权…

【娱乐项目】竖式算术器

Demo介绍 一个加减法随机数生成器&#xff0c;它能够生成随机的加减法题目&#xff0c;并且支持用户输入答案。系统会根据用户输入的答案判断是否正确&#xff0c;统计正确和错误的次数&#xff0c;并显示历史记录和错题记录。该工具适合用于数学练习&#xff0c;尤其适合练习基…

架构-微服务-服务配置

文章目录 前言一、配置中心介绍1. 什么是配置中心2. 解决方案 二、Nacos Config入门三、Nacos Config深入1. 配置动态刷新2. 配置共享 四、nacos服务配置的核心概念 前言 服务配置--Nacos Config‌ 微服务架构下关于配置文件的一些问题&#xff1a; 配置文件相对分散。在一个…

基础(函数、枚举)错题汇总

枚举默认从0开始&#xff0c;指定后会按顺序赋值 而这个枚举变量X&#xff0c;如果在全局&#xff08;函数外部&#xff09;定义&#xff0c;那默认为0&#xff0c;如果在函数内部&#xff08;局部变量&#xff09;&#xff0c;那就是随机值&#xff0c;必须初始化。 枚举变量…

flink学习(7)——window

概述 窗口的长度(大小): 决定了要计算最近多长时间的数据 窗口的间隔: 决定了每隔多久计算一次 举例&#xff1a;每隔10min,计算最近24h的热搜词&#xff0c;24小时是长度&#xff0c;每隔10分钟是间隔。 窗口的分类 1、根据window前是否调用keyBy分为键控窗口和非键控窗口…

Spring Boot 的 WebClient 实践教程

什么是 WebClient&#xff1f; 在 Spring Boot 中&#xff0c;WebClient 是 Spring WebFlux 提供的一个非阻塞、响应式的 HTTP 客户端&#xff0c;用于与 RESTful 服务或其他 HTTP 服务交互。相比于传统的 RestTemplate&#xff0c;WebClient 更加现代化&#xff0c;具有异步和…

二叉搜索树讲解

二叉搜索树概念和定义 二叉搜索树是一个二叉树&#xff0c;其中每个节点的值都满足以下条件&#xff1a; 节点的左子树只包含小于当前节点值的节点。节点的右子树只包含大于当前节点值的节点。左右子树也必须是二叉搜索树。 二叉树搜索树性质 从上面的二叉搜索树定义中可以了…

FinalShell工具数据备份升级、密码解密方法

前言 FinalShell 作为国产的服务器管理工具和远程终端软件。一个一体化的运维工具&#xff0c;在国内运维人员中还是比较受欢迎。它整合了多个常用功能&#xff0c;界面友好&#xff0c;使用方便。不过它是一个闭源的商业软件&#xff0c;虽然提供免费版本&#xff0c;但部分高…