当前位置: 首页 > news >正文

MySQL: 表的增删改查(基础)

文章目录

  • 1. 注释
  • 2. 新增(Create)
    • 3. 查询(Retrieve)
    • 3.1 全列查询
    • 3.2 指定列查询
    • 3.3 查询字段为表达式
    • 3.4 别名
    • 3.5 去重: distinct
    • 3.6 排序: order by
    • 3.7条件查询
    • 3.8 分页查询
  • 4. 修改 (update)
  • 5. 删除(delete)
  • 6. 内容重点总结

1. 注释

注释:在SQL中可以使用“–空格+描述”来表示注释说明
CRUD 即增加(Create)、查询(Retrieve)、更新(Update)、删除(Delete)四个单词的首字母缩写。

2. 新增(Create)

语法insert into + 表名 + values (字段1, 字段2, ...), (字段1, 字段2, ...), ...其中字段1, 字段2, …对应了创建表时对应的位置. 如果要使插入的数据与相应的列相对应, 则可以insert into + 表名 + (列名1, 列名2, ...) values (字段1, 字段2, ...), (字段1, 字段2, ...), ...如果插入的数据量比设计表时数据量少就会给少的位置赋予null值. 具体操作举例如下:
我们先创建一张Student表, 具体设定如下
在这里插入图片描述
示例1 直接多行全列插入数据insert into student values(1,'张三'),(2, '李四');
在这里插入图片描述
示例2 多行指定列插入insert into student(name) values('王五'), ('赵六');
在这里插入图片描述

3. 查询(Retrieve)

语法

select[distinct] {* | {column [, column] ...} --字段[from table_name]--表名[where...]--查询条件[order by column [asc| desc], ...]--排序limit...--分表查询

着非常复杂, 下面我们来一步一步去拆分讲解.

---我们先创建一个考试成绩表, 并插入适当的数据, 方便我们接下来的分析
create table exam(id int, name varchar(20), chinese decimal(3, 1), math decimal(3, 1), english decimal(3, 1));insert into exam values
(1,'唐三藏', 67, 98, 56), 
(2,'孙悟空', 87.5, 78, 77), 
(3,'猪悟能', 88, 98.5, 90), 
(4,'曹孟德', 82, 84, 67),
(5,'刘玄德', 55.5, 85, 45),
(6,'孙权', 70, 73, 78.5),
(7,'宋公明', 75, 65, 30);

3.1 全列查询

-- 通常情况下不建议使用 * 进行全列查询
-- 1. 查询的列越多,意味着需要传输的数据量越大;
-- 2. 可能会影响到索引的使用。
mysql> select * from exam;

在这里插入图片描述

3.2 指定列查询

-- 指定列的顺序不需要按定义表的顺序来
select id, name, english from exam;

在这里插入图片描述

3.3 查询字段为表达式

-- 表达式不包含字段
select id, name, 10 from exam;
-- 表达式包含一个字段
select id, name, english+10 from exam;
-- 表达式包含多个字段
select id, name, chinese+math+english from exam;

在这里插入图片描述

3.4 别名

为查询结果中的列指定别名,表示返回的结果集中,以别名作为该列的名称,语法:

SELECT column [AS] alias_name [...] FROM table_name;
-- 结果集中,表头的列名=别名
select id, name, chinese+math+english as 总分 from exam;

在这里插入图片描述

3.5 去重: distinct

--通过查询得知98分重复了
select math from exam;
+------+
| math |
+------+
| 98.0 |
| 78.0 |
| 98.0 |
| 84.0 |
| 85.0 |
| 73.0 |
| 65.0 |
+------+
--去重查询
select distinct math from exam;
+------+
| math |
+------+
| 98.0 |
| 78.0 |
| 84.0 |
| 85.0 |
| 73.0 |
| 65.0 |
+------+

3.6 排序: order by

语法

-- ASC 为升序(从小到大)
-- DESC 为降序(从大到小)
-- 默认为 ASC
SELECT ... FROM table_name [WHERE ...] ORDER BY column [ASC|DESC], [...];

1.没有 order by 子句的查询,返回的顺序是未定义的,永远不要依赖这个顺序
2.null数据排序,视为比任何值都小,升序出现在最上面,降序出现在最下面

--不加desc, 默认升序排序
select id, name, chinese+math+english as 总分 from exam order by 总分;
+------+-----------+--------+
| id   | name      | 总分   |
+------+-----------+--------+
|    7 | 宋公明    |  170.0 |
|    5 | 刘玄德    |  185.5 |
|    1 | 唐三藏    |  221.0 |
|    6 | 孙权      |  221.5 |
|    4 | 曹孟德    |  233.0 |
|    2 | 孙悟空    |  242.5 |
|    3 | 猪悟能    |  276.0 |
+------+-----------+--------+
--加desc, 降序排序
select id, name, chinese+math+english as 总分 from exam order by 总分 desc;
+------+-----------+--------+
| id   | name      | 总分   |
+------+-----------+--------+
|    3 | 猪悟能    |  276.0 |
|    2 | 孙悟空    |  242.5 |
|    4 | 曹孟德    |  233.0 |
|    6 | 孙权      |  221.5 |
|    1 | 唐三藏    |  221.0 |
|    5 | 刘玄德    |  185.5 |
|    7 | 宋公明    |  170.0 |
+------+-----------+--------+
--多列排序, 分先后
select id, name, chinese, math from exam order by chinese desc, math;
+------+-----------+---------+------+
| id   | name      | chinese | math |
+------+-----------+---------+------+
|    3 | 猪悟能    |    88.0 | 98.0 |
|    2 | 孙悟空    |    87.5 | 78.0 |
|    4 | 曹孟德    |    82.0 | 84.0 |
|    7 | 宋公明    |    75.0 | 65.0 |
|    6 | 孙权      |    70.0 | 73.0 |
|    1 | 唐三藏    |    67.0 | 98.0 |
|    5 | 刘玄德    |    55.5 | 85.0 |
+------+-----------+---------+------+
--先对Chinese进行降序排序, 在不影响原来排序结果的基础上再对math进行升序排序

3.7条件查询

比较运算符:
在这里插入图片描述
逻辑运算符:
在这里插入图片描述
注意:
1.WHERE条件可以使用表达式,但不能使用别名。
2.AND的优先级高于OR,在同时使用时,需要使用小括号()包裹优先执行的部分
示例:

  • 基本查询
-- 查询英语不及格的同学及英语成绩 ( < 60 )
select name, english from exam where english < 60;
+-----------+---------+
| name      | english |
+-----------+---------+
| 唐三藏    |    56.0 |
| 刘玄德    |    45.0 |
| 宋公明    |    30.0 |
+-----------+---------+
-- 查询语文成绩好于英语成绩的同学
select name, chinese, english from exam where chinese > english;
+-----------+---------+---------+
| name      | chinese | english |
+-----------+---------+---------+
| 唐三藏    |    67.0 |    56.0 |
| 孙悟空    |    87.5 |    77.0 |
| 曹孟德    |    82.0 |    67.0 |
| 刘玄德    |    55.5 |    45.0 |
| 宋公明    |    75.0 |    30.0 |
+-----------+---------+---------+
-- 查询总分在 200 分以下的同学
select name, chinese + math + english as 总分 from exam where chinese + math + english < 200;
+-----------+--------+
| name      | 总分   |
+-----------+--------+
| 刘玄德    |  185.5 |
| 宋公明    |  170.0 |
+-----------+--------+
  • and 与 or
-- 查询语文成绩大于80分,且英语成绩大于80分的同学
select * from exam where chinese > 80 and math > 80;
+------+-----------+---------+------+---------+
| id   | name      | chinese | math | english |
+------+-----------+---------+------+---------+
|    3 | 猪悟能    |    88.0 | 98.0 |    90.0 |
|    4 | 曹孟德    |    82.0 | 84.0 |    67.0 |
+------+-----------+---------+------+---------+
-- 查询语文成绩大于80分,或英语成绩大于80分的同学
select * from exam where chinese > 80 or math > 80;
+------+-----------+---------+------+---------+
| id   | name      | chinese | math | english |
+------+-----------+---------+------+---------+
|    1 | 唐三藏    |    67.0 | 98.0 |    56.0 |
|    2 | 孙悟空    |    87.5 | 78.0 |    77.0 |
|    3 | 猪悟能    |    88.0 | 98.0 |    90.0 |
|    4 | 曹孟德    |    82.0 | 84.0 |    67.0 |
|    5 | 刘玄德    |    55.5 | 85.0 |    45.0 |
+------+-----------+---------+------+---------+
--and的优先级比or高
  • 范围查询
--1. between...and...-- 查询语文成绩在 [80, 90] 分的同学及语文成绩
select name, chinese from exam where chinese between 80 and 90;
-- 使用 AND 也可以实现
select name, chinese from exam where chinese >= 80 and chinese <= 90;
+-----------+---------+
| name      | chinese |
+-----------+---------+
| 孙悟空    |    87.5 |
| 猪悟能    |    88.0 |
| 曹孟德    |    82.0 |
+-----------+---------+--2. in-- 查询数学成绩是 58 或者 59 或者 98 或者 99 分的同学及数学成绩
select name, math from exam where math in (58, 59, 98, 99);
-- 使用 OR 也可以实现
select name, math from exam where math = 58 or math = 59 or math = 98 or math = 99;
+-----------+------+
| name      | math |
+-----------+------+
| 唐三藏    | 98.0 |
| 猪悟能    | 98.0 |
+-----------+------+
  • 模糊查询: like
-- % 匹配任意多个(包括 0 个)字符
select name from exam where name like '孙%';
+-----------+
| name      |
+-----------+
| 孙悟空    |
| 孙权      |
+-----------+
-- _ 匹配严格的一个任意字符
select name from exam where name like '孙_';
+--------+
| name   |
+--------+
| 孙权   |
+--------+
  • NULL的查询: is [not] null
-- 查询 qq_mail 已知的同学姓名
select name, qq_mail from student where qq_mail is not null;-- 查询 qq_mail 未知的同学姓名
select name, qq_mail from student where qq_mail is null;

3.8 分页查询

语法

-- 起始下标为 0
-- 从 0 开始,筛选 n 条结果
SELECT ... FROM table_name [WHERE ...] [ORDER BY ...] LIMIT n;
-- 从 s 开始,筛选 n 条结果
SELECT ... FROM table_name [WHERE ...] [ORDER BY ...] LIMIT s, n;
-- 从 s 开始,筛选 n 条结果,比第二种用法更明确,建议使用
SELECT ... FROM table_name [WHERE ...] [ORDER BY ...] LIMIT n OFFSET s;

分页示例

-- 第 1 页
select * from exam order by id limit 3 offset 0;
+------+-----------+---------+------+---------+
| id   | name      | chinese | math | english |
+------+-----------+---------+------+---------+
|    1 | 唐三藏    |    67.0 | 98.0 |    56.0 |
|    2 | 孙悟空    |    87.5 | 78.0 |    77.0 |
|    3 | 猪悟能    |    88.0 | 98.0 |    90.0 |
+------+-----------+---------+------+---------+
-- 第 2 页
select * from exam order by id limit 3 offset 3;
+------+-----------+---------+------+---------+
| id   | name      | chinese | math | english |
+------+-----------+---------+------+---------+
|    4 | 曹孟德    |    82.0 | 84.0 |    67.0 |
|    5 | 刘玄德    |    55.5 | 85.0 |    45.0 |
|    6 | 孙权      |    70.0 | 73.0 |    78.5 |
+------+-----------+---------+------+---------+
-- 第 3 页,如果结果不足 3 个,不会有影响
select * from exam order by id limit 3 offset 6;
+------+-----------+---------+------+---------+
| id   | name      | chinese | math | english |
+------+-----------+---------+------+---------+
|    7 | 宋公明    |    75.0 | 65.0 |    30.0 |
+------+-----------+---------+------+---------+

4. 修改 (update)

语法

UPDATE table_name SET column = expr [, column = expr ...][WHERE ...] [ORDER BY ...] [LIMIT ...]

案例

-- 将孙悟空同学的数学成绩变更为 80 分
update exam set math = 80 where name = '孙悟空';-- 将曹孟德同学的数学成绩变更为 60 分,语文成绩变更为 70 分
update exam set math = 60, chinese = 70 where name = '曹孟德';-- 将总成绩倒数前三的 3 位同学的数学成绩加上 30 分
update exam set math = math + 30 order by chinese + math + english limit 3;-- 将所有同学的语文成绩更新为原来的 2 倍
update exam set chinese = chinese * 2;

5. 删除(delete)

语法

DELETE FROM  table_name [WHERE ...] [ORDER BY ...] [LIMIT ...]

案例

-- 删除孙悟空同学的考试成绩
delete from exam where name = '孙悟空';-- 删除整表数据
delete from exam;

6. 内容重点总结

  • 新增
-- 单行插入
insert into(字段1, ..., 字段N) values (value1, ..., value N);
-- 多行插入
insert into(字段1, ..., 字段N) values
(value1, ...),
(value2, ...),
(value3, ...);
  • 查询
-- 全列查询
select * from-- 指定列查询
select 字段1,字段2... from-- 查询表达式字段
select 字段1+100,字段2+字段3 from-- 别名
select 字段1 别名1, 字段2 别名2 from-- 去重DISTINCT
select distinct 字段 from-- 排序ORDER BY
select * fromorder by 排序字段
-- 条件查询WHERE:
-- (1)比较运算符 (2)BETWEEN ... AND ... (3)IN (4)IS NULL (5)LIKE (6)AND (7)OR 
(8)NOT
select * fromwhere 条件
  • 修改
updateset 字段1=value1, 字段2=value2... where 条件
  • 删除
delete fromwhere 条件

相关文章:

MySQL: 表的增删改查(基础)

文章目录 1. 注释2. 新增(Create)3. 查询(Retrieve)3.1 全列查询3.2 指定列查询3.3 查询字段为表达式3.4 别名3.5 去重: distinct3.6 排序: order by3.7条件查询3.8 分页查询 4. 修改 (update)5. 删除(delete)6. 内容重点总结 1. 注释 注释&#xff1a;在SQL中可以使用“–空格…...

WDF驱动开发-PNP和电源管理(三)

对于PNP设备来说&#xff0c;理解它们的启动和删除顺序&#xff0c;以及意外移除顺序非常重要&#xff0c;在早期&#xff0c;经常有拔插U盘导致windows重启的例子&#xff0c;这就是意外移除带来的问题。 功能或Filter驱动程序的启动顺序 下图显示了框架调用 WDF (KMDF 和 U…...

Redis集群和高可用性:保障Redis服务的稳定性

I. 引言 A. 对Redis的简单介绍和其在现代Web应用中的角色 Redis(REmote DIctionary Server)是一个开源的、基于内存的键值数据库,它支持多种数据结构,如字符串、哈希、列表、集合、有序集合等。由于Redis的高性能和丰富的数据类型,使其在现代Web应用中广泛使用。例如,它…...

C# WPF入门学习主线篇(二十一)—— 静态资源和动态资源

C# WPF入门学习主线篇&#xff08;二十一&#xff09;—— 静态资源和动态资源 欢迎来到C# WPF入门学习系列的第二十一篇。在上一章中&#xff0c;我们介绍了WPF中的资源和样式。本篇文章将深入探讨静态资源&#xff08;StaticResource&#xff09;和动态资源&#xff08;Dynam…...

出现 Navicat 和 Cmd 下SQL 版本 | 查询不一致的解决方法

目录 1. 问题所示1.1 查询表格不一致1.2 版本不一致2. 原理分析3. 解决方法1. 问题所示 命令行和数据库使用工具出现不一致的情况,分别有如下情况 1.1 查询表格不一致 使用工具查询当地表格: 使用命令行查询当地表格: 1.2 版本不一致 在cmd命令下mysql --version 查询…...

31、matlab卷积运算:卷积运算、二维卷积、N维卷积

1、conv 卷积和多项式乘法 语法 语法1&#xff1a;w conv(u,v) 返回向量 u 和 v 的卷积。 语法2&#xff1a;w conv(u,v,shape) 返回如 shape 指定的卷积的分段。 参数 u,v — 输入向量 shape — 卷积的分段 full (默认) | same | valid full&#xff1a;全卷积 ‘same…...

C++青少年简明教程:文件

C青少年简明教程&#xff1a;文件 文件是指存储在计算机文件系统中的数据集合。文件可以包含各种类型的信息&#xff0c;例如文本、图像、音频视频等。在 C中&#xff0c;文件是一种数据流&#xff0c;可以用于读取或写入数据。C提供了一系列的文件操作函数&#xff0c;用于实现…...

Kimichat使用案例010:快速识别出图片中的表格保存到Excel

文章目录 一、介绍二、图片信息三、输入内容四、输出内容五、markdown提示词六、markdown输出一、介绍 如果有一张图片格式的表格,想要快速复制到Excel表格中,那么一般要借助于OCR工具。之前试过不少在线OCR工具,识别效果差强人意。其实,kimichat就可以非常好的完成这个任务…...

[大师C语言(第二十四篇)]C语言指针探秘

引言 在C语言的学习和应用中&#xff0c;指针无疑是最重要、最难以掌握的概念之一。它为C语言提供了强大的功能和灵活性&#xff0c;同时也带来了不少的复杂性。本文将深入探讨C语言指针背后的技术&#xff0c;帮助你更好地理解和应用指针。 第一部分&#xff1a;指针的基本概…...

Docker命令总结

文章目录 Docker命令总结Docker环境Docker容器生命周期Docker容器运维Docker容器rootfsDocker镜像仓库Docker本地镜像管理Docker容器资源Docker系统日志 Docker命令总结 docker命令非常多&#xff0c;这里主要分为8类总结 Docker环境 可以查看Docker版本和自身的详细信息 d…...

把chatgpt当实习生,进行matlab gui程序编程

最近朋友有个项目需要整点matlab代码&#xff0c;无奈自己对matlab这种工科的软件完全是外行&#xff0c;无奈只有求助gpt这种AI助手了。大神们告诉我们&#xff0c;chatgpt等的助手已经是大学实习生水平啦&#xff0c;通过多轮指令交互就可以让他帮你完成工作啦&#xff01;所…...

LabVIEW 与组态软件在自动化系统中的应用比较与选择

LabVIEW 确实在非标单机设备、测试和测量系统中有着广泛的应用&#xff0c;特别是在科研、教育、实验室和小型自动化设备中表现突出。然而&#xff0c;LabVIEW 也具备一定的扩展能力&#xff0c;可以用于更复杂和大型的自动化系统。以下是对 LabVIEW 与组态软件在不同应用场景中…...

html--万年历

<!DOCTYPE html> <html lang"zh_CN"><head><meta http-equiv"Content-Type" content"text/html; charsetUTF-8" /><meta charset"utf-8" /><title>万年历</title><link rel"styles…...

2013年 阿拉斯加巴罗活动层厚度和土壤含水量

Pre-ABoVE: Active Layer Thickness and Soil Water Content, Barrow, Alaska, 2013 ABoVE前&#xff1a;阿拉斯加巴罗活动层厚度和土壤含水量&#xff0c;2013年 简介 文件修订日期&#xff1a;2018-01-10 数据集版本&#xff1a;1 摘要 该数据集提供了 2013 年 8 月在…...

超详解——python数字和运算——小白篇

目录 1.位运算 2. 常用内置函数/模块 math模块&#xff1a; random模块&#xff1a; decimal模块&#xff1a; 3.内置函数&#xff1a; 总结&#xff1a; 1.位运算 位运算是对整数在内存中的二进制表示进行操作。Python支持以下常见的位运算符&#xff1a; 按位与&…...

LabVIEW图像采集处理项目中相机选择与应用

在LabVIEW图像采集处理项目中&#xff0c;选择合适的相机是确保项目成功的关键。本文将详细探讨相机选择时需要关注的参数、黑白相机与彩色相机的区别及其适用场合&#xff0c;帮助工程师和开发者做出明智的选择。 相机选择时需要关注的参数 1. 分辨率 定义&#xff1a;分辨率…...

Java——IO流(一)-(2/9):File类的常用方法(判断文件类型、获取文件信息、创建删除文件、遍历文件夹)

目录 常用方法1&#xff1a;判断文件类型、获取文件信息 方法 实例演示 常用方法2&#xff1a;创建文件、删除文件 方法 实例演示 常用方法3&#xff1a;遍历文件夹 方法 实例演示 常用方法1&#xff1a;判断文件类型、获取文件信息 方法 File提供的判断文件类型、获…...

电子设计入门教程硬件篇之集成电路IC(二)

前言&#xff1a;本文为手把手教学的电子设计入门教程硬件类的博客&#xff0c;该博客侧重针对电子设计中的硬件电路进行介绍。本篇博客将根据电子设计实战中的情况去详细讲解集成电路IC&#xff0c;这些集成电路IC包括&#xff1a;逻辑门芯片、运算放大器与电子零件。电子设计…...

Unity3D测量面积和角度实现方法(二)

系列文章目录 unity工具 文章目录 系列文章目录&#x1f449;前言&#x1f449;一、unity测量面积&#x1f449;1-1 视频效果&#x1f449;1-2 先创建预制体&#x1f449;1-3 在创建LineRenderer预制体&#x1f449;1-4 代码如下 &#x1f449;二、测量平面和测量空间切换&…...

vite 配置 typescript 环境

要在 Vite 项目中配置 TypeScript 环境&#xff0c;你需要遵循几个步骤来确保 TypeScript 被正确设置并可以与 Vite 一起工作。以下是一个基本的指南&#xff1a; 初始化项目 如果你还没有初始化项目&#xff0c;可以使用 npm 或 yarn 初始化一个新的项目&#xff1a; npm i…...

网络六边形受到攻击

大家读完觉得有帮助记得关注和点赞&#xff01;&#xff01;&#xff01; 抽象 现代智能交通系统 &#xff08;ITS&#xff09; 的一个关键要求是能够以安全、可靠和匿名的方式从互联车辆和移动设备收集地理参考数据。Nexagon 协议建立在 IETF 定位器/ID 分离协议 &#xff08;…...

Lombok 的 @Data 注解失效,未生成 getter/setter 方法引发的HTTP 406 错误

HTTP 状态码 406 (Not Acceptable) 和 500 (Internal Server Error) 是两类完全不同的错误&#xff0c;它们的含义、原因和解决方法都有显著区别。以下是详细对比&#xff1a; 1. HTTP 406 (Not Acceptable) 含义&#xff1a; 客户端请求的内容类型与服务器支持的内容类型不匹…...

反向工程与模型迁移:打造未来商品详情API的可持续创新体系

在电商行业蓬勃发展的当下&#xff0c;商品详情API作为连接电商平台与开发者、商家及用户的关键纽带&#xff0c;其重要性日益凸显。传统商品详情API主要聚焦于商品基本信息&#xff08;如名称、价格、库存等&#xff09;的获取与展示&#xff0c;已难以满足市场对个性化、智能…...

DockerHub与私有镜像仓库在容器化中的应用与管理

哈喽&#xff0c;大家好&#xff0c;我是左手python&#xff01; Docker Hub的应用与管理 Docker Hub的基本概念与使用方法 Docker Hub是Docker官方提供的一个公共镜像仓库&#xff0c;用户可以在其中找到各种操作系统、软件和应用的镜像。开发者可以通过Docker Hub轻松获取所…...

cf2117E

原题链接&#xff1a;https://codeforces.com/contest/2117/problem/E 题目背景&#xff1a; 给定两个数组a,b&#xff0c;可以执行多次以下操作&#xff1a;选择 i (1 < i < n - 1)&#xff0c;并设置 或&#xff0c;也可以在执行上述操作前执行一次删除任意 和 。求…...

论文浅尝 | 基于判别指令微调生成式大语言模型的知识图谱补全方法(ISWC2024)

笔记整理&#xff1a;刘治强&#xff0c;浙江大学硕士生&#xff0c;研究方向为知识图谱表示学习&#xff0c;大语言模型 论文链接&#xff1a;http://arxiv.org/abs/2407.16127 发表会议&#xff1a;ISWC 2024 1. 动机 传统的知识图谱补全&#xff08;KGC&#xff09;模型通过…...

大模型多显卡多服务器并行计算方法与实践指南

一、分布式训练概述 大规模语言模型的训练通常需要分布式计算技术,以解决单机资源不足的问题。分布式训练主要分为两种模式: 数据并行:将数据分片到不同设备,每个设备拥有完整的模型副本 模型并行:将模型分割到不同设备,每个设备处理部分模型计算 现代大模型训练通常结合…...

tree 树组件大数据卡顿问题优化

问题背景 项目中有用到树组件用来做文件目录&#xff0c;但是由于这个树组件的节点越来越多&#xff0c;导致页面在滚动这个树组件的时候浏览器就很容易卡死。这种问题基本上都是因为dom节点太多&#xff0c;导致的浏览器卡顿&#xff0c;这里很明显就需要用到虚拟列表的技术&…...

sipsak:SIP瑞士军刀!全参数详细教程!Kali Linux教程!

简介 sipsak 是一个面向会话初始协议 (SIP) 应用程序开发人员和管理员的小型命令行工具。它可以用于对 SIP 应用程序和设备进行一些简单的测试。 sipsak 是一款 SIP 压力和诊断实用程序。它通过 sip-uri 向服务器发送 SIP 请求&#xff0c;并检查收到的响应。它以以下模式之一…...

用机器学习破解新能源领域的“弃风”难题

音乐发烧友深有体会&#xff0c;玩音乐的本质就是玩电网。火电声音偏暖&#xff0c;水电偏冷&#xff0c;风电偏空旷。至于太阳能发的电&#xff0c;则略显朦胧和单薄。 不知你是否有感觉&#xff0c;近两年家里的音响声音越来越冷&#xff0c;听起来越来越单薄&#xff1f; —…...