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

【MySQL — 数据库增删改查操作】深入解析MySQL的 Retrieve 检索操作

  


Retrieve 检索


示例 


1. 构造数据


   创建表结构   

create table exam1(id bigint, name varchar(20) comment'同学姓名', Chinesedecimal(3,1) comment '语文成绩', Math decimal(3,1) comment '数学成绩', English decimal(3,1) comment '英语成绩'
);

   插入测试数据   

 insert into exam1(id,name,Chinese,math,English) values
(1,'唐三藏',67,98,56),
(2,'孙悟空',87,78,77),
(3,'猪悟能',88,98,90),
(4,'曹孟德',82,84,67),
(5,'刘玄德',55,85,45),
(6,'孙权'  ,70,73,78),
(7,'宋公明',75,65,30);

2. Select


2.1 全列查询


select*from exam1;
+------+-----------+---------+------+---------+
| id   | name      | Chinese | Math | English |
+------+-----------+---------+------+---------+
|    1 | 唐三藏    |      67 |   98 |      56 |
|    2 | 孙悟空    |      87 |   78 |      77 |
|    3 | 猪悟能    |      88 |   98 |      90 |
|    4 | 曹孟德    |      82 |   84 |      67 |
|    5 | 刘玄德    |      55 |   85 |      45 |
|    6 | 孙权      |      70 |   73 |      78 |
|    7 | 宋公明    |      75 |   65 |      30 |
+------+-----------+---------+------+---------+

   select *是一个很危险的操作: 

  • 只要涉及到硬盘操作和网络操作,就会消耗一定的硬盘带宽和网络带宽;
  • 意味着硬盘和网卡的读写速度都是存在上限的,一旦触发大规模的 select * 意味着很可能就把 硬盘/网卡带宽给吃满了(堵车);
  • 其他的客户端尝试访问数据库,访问操作就无法正常进行了;
  • 如果针对公司的生产环境进行select*,就很可能使其他的用户访问数据库的时候,出现访问失败的情况;
  • 当前阶段,数据库中,没啥数据,select*就无所谓了;以后再工作中,尤其是"生产环境",一定要慎重!!


2.2 指定列查询

    语法    

select 列名, 列名...... from 表名;


select id , name , Chinese from exam1;  # 查询指定列select English, math, Chinese, name, id from exam1;  # 按照指定的顺序查询

mysql 是一个客户端-服务器结构的程序,如果使用 select* 会消耗大量的硬盘带宽和网络带宽,这些带宽往往是比较稀缺的资源;因此,使用指定列查询,得到的数据量就比全列查询要少很多,查询要查询的列即可,没有必要一次性查询所有列;


2.3 查询字段为表达式

   把所有学生的语文成绩加10分  

select name, Chinese + 10 from exam1;

执行 select 就会遍历每一行,取出需要的列,把列代入到表达式中; 

这样的结果,只是数据库查询过程中生成的临时表,数据库本体(数据库服务器硬盘上的数据)是没有任何改变的。


desc exam1;
+---------+--------------+------+-----+---------+-------+
| Field   | Type         | Null | Key | Default | Extra |
+---------+--------------+------+-----+---------+-------+
| id      | bigint       | YES  |     | NULL    |       |
| name    | varchar(20)  | YES  |     | NULL    |       |
| Chinese | decimal(3,1) | YES  |     | NULL    |       |
| Math    | decimal(3,1) | YES  |     | NULL    |       |
| English | decimal(3,1) | YES  |     | NULL    |       |
+---------+--------------+------+-----+---------+-------+
5 rows in set (0.01 sec)

根据上述表结构我们可以发现, 如果Chinese +20,就意味着有些成绩的结果就会超出decimal(3,1) 类型约定的范围.


   我们尝试一下查询 Chinese +20 操作,看看数据库查询超出类型范围会如何处理: 

select name, Chinese + 20 from exam1;
+-----------+------------+
| name      | Chinese+20 |
+-----------+------------+
| 唐三藏    |       87.0 |
| 孙悟空    |      107.0 |
| 猪悟能    |      108.0 |
| 曹孟德    |      102.0 |
| 刘玄德    |       75.0 |
| 孙权      |       90.0 |
| 宋公明    |       95.0 |
+-----------+------------+
7 rows in set (0.00 sec)

可以看到,虽然这个结果已经超出了 decimal(3,1) 的范围,但是依旧是可以查询,并且查询结果是正确的;所以我们需要明确:

  • decimal(3,1) 这样的表的类型,是针对硬盘上存储的数据进行制约的;
  • 但是我们当前的查询操作,得到的表中的计算结果,是临时的表数据,不会影响硬盘上的数据;,就可以不受 decimal(3,1) 这样的类型的约束;
  • 换句话说,临时表的数据会尽可能保证查询结果是完整正确的,优先级高于类型约束;

   在一个表达式中,还可以引入多个列参与运算   


-- 总成绩查询select name , Chinese + math + English from exam1;

注意:表达式查询只能针对列和列之间进行运算,行和行之间的运算,后面会介绍聚合查询 ;


2.4 为查询结果指定别名

   为总分这一列指定别名   


如果表达式简单,一眼就能看明白;但是如果表达式比较复杂,就没法直观观察了;此处就可以给表达式取别名(别名只是针对临时表的列名产生修改),此时别名就是查询结果的列名:

select 表达式 as 别名from 表名;

select name , Chinese + math + English as total from exam1;


select name , Chinese + math + English total from exam1;

2.5 结果去重查询 

    语法    

select distinct 列名 from 表名;

去重的意思,多个行的数据,如果出现相同的值,就会只保留一份 


    查询当前的数学成绩,并去除重复记录     


-- 去重查询mysql> select distinct math from exam1;

 去重查询对原来表中的数据无影响,再次查询得到的结果,依旧包含被上一次去重的数据;


3 Where 条件查询


   语法   

select 列名 from 表名 where 条件;

查询过程中,指定筛选条件,满足条件的记录就保留,不满足条件的就跳过.....  


     比较运算符    



    null 参与运算或者比较,得到的结果也是 null   

mysql> insert into exam1 values(null, null , null, null, 90.0);
Query OK, 1 row affected (0.03 sec)select* from exam1;
+------+-----------+---------+------+---------+
| id   | name      | Chinese | Math | English |
+------+-----------+---------+------+---------+
| NULL | NULL      |    NULL | NULL |    90.0 |
+------+-----------+---------+------+---------+
8 rows in set (0.00 sec)select  name, Chinese + math + English as total from exam1;
+-----------+-------+
| name      | total |
+-----------+-------+
| NULL      |  NULL |
+-----------+-------+
8 rows in set (0.01 sec)
  • null = null => null,此时的表达式的值是 null 的时候,条件就会判定为"不成立",也就相当于 false 
  • <=> 也是比较相等,能够针对 NULL 和 NULL 进行比较的.,NULL <=> NULL=> true


      逻辑运算符     



3.1 基本查询

遍历表的每个记录(每一行),把每一行的数据带入到条件中.
如果条件成立,这个记录就添加到结果集合中;如果不成立,就直接跳过. 


    查询英语不及格的同学及英语成绩    


select name , English from exam1 where English < 60;

    查询语文成绩大于英语成绩的同学    


select name ,Chinese, English from exam1 where Chinese > English;

本次查询过程和刚刚一样,也是把每一条查询到的记录带入 where 后面的条件,把符合条件的记录添加到结果集,不满足条件的记录直接跳过;


    别名无法作为 where 后面的条件    


select  name, Chinese + math + English as total from exam1 where total < 200;ERROR 1054 (42S22): Unknown column 'total' in 'where clause'

 解析:这个错误其实是因为 SQL 语句执行顺序造成的:

虽然 where 是写在 SQL 语句末尾,但是执行顺序是在定义别名之前的 ,因此在执行 where 条件时,如果条件中有别名,该别名是未被定义的;


3.2 AND和OR

    查询语文成绩大于80分英语成绩大于80分的同学    


select name , Chinese , English from exam1 where Chinese > 80 and English > 80;

    查询语文成绩大于80分英语成绩大于80分的同学     


select name , Chinese , English from exam1 where Chinese > 80 or English > 80;

    注意: 

and 和  or 同时出现会有优先级,但是如果表达式比较复杂,包含多组 and 和 or,就给需要先运算的部分加括号即可;


3.3 范围查询

    查询语文成绩在[80,90]分的同学及语文成绩    


select name, Chinese from exam1 where Chinese between 80 and 90;  

 


    查询数学成绩是58 或者59 或者 98 或者99 分的同学及数学成绩     

select name, math from exam1 where math in(58, 59, 98, 99);

    总结    

  • 如果查询的区间是连续的,就使用 between....and;
  • 如果查询的区间是离散的(某几个值),就使用 in() ; 

3.4 模糊查询

不要求完全相等,只要满足一定的条件就可以了. 


    %匹配任意个数字符     


-- 查询所有名字以孙开头的同学select* from exam1 where name like '孙%';-- 查询所有名字以孙结尾的同学select* from exam1 where name like '%孙';-- 查询所有名字有孙的同学select* from exam1 where name like '%孙%';

    _匹配一个个数字符      

select* from exam1 where name like '孙_';    -- 查询孙某select* from exam1 where name like '孙__';   -- 查询孙某某

想要查询名字中孙只在中间部分,不能在开头和结尾部分的需求,在数据库中实现有一定难度;

mysql 自带的模糊匹配功能相对比较弱;

如果后续要使用正则表达式,直接搜即可;在 sql 中,like 不能支持正则的,只能简单使用% 或者_来匹配;使用其他编程语言间接的操作 sql 即可;


3.5 NULL的查询

     查询 id 为NULL的记录      



select* from exam1 where id <=> null ;    -- 使用 <=> 判断 id 是否为 nullselect* from exam1 where id is null;      -- 使用 is  判断 id 是否为 null


4 Order by 排序


    语法:  


select 列名,列名.... from exam order by 列名 desc ;  # 降序 (从高到低)select 列名,列名.... from exam order by 列名 asc  ;  # 升序 (从低到高)-- 注意:NULL被看做比任何值都小

    注意: 

  • 数据库不会对于查询得到的结果集的顺序,做出任何承诺(不一定会根据序号,插入顺序...等等因素来决定结果集的顺序)除非 sql 中包含 order by
  • 如果不写 order,得到的结果的顺序是不可预期的.....写代码就不能依赖这样的顺序;

    按语文成绩从低到高排序(不指定顺序,默认从低到高)    


 select* from exam1 order by Chinese;
+------+-----------+---------+------+---------+
| id   | name      | Chinese | Math | English |
+------+-----------+---------+------+---------+
|    5 | 刘玄德    |    55.0 | 85.0 |    45.0 |
|    1 | 唐三藏    |    67.0 | 98.0 |    56.0 |
|    6 | 孙权      |    70.0 | 73.0 |    78.0 |
|    7 | 宋公明    |    75.0 | 65.0 |    30.0 |
|    4 | 曹孟德    |    82.0 | 84.0 |    67.0 |
|    2 | 孙悟空    |    87.0 | 78.0 |    77.0 |
|    3 | 猪悟能    |    88.0 | 98.0 |    90.0 |
+------+-----------+---------+------+---------+
7 rows in set (0.00 sec)

对语文进行排序后,每一行的数据也会以语文成绩为基准进行排序; 


   查询同学各门成绩,依次按数学降序,英语升序,语文升序的方式显示     


select name, math, English, Chinese from exam1 order by 
math desc, 
English asc, 
Chinese asc;+-----------+------+---------+---------+
| name      | math | English | Chinese |
+-----------+------+---------+---------+
| 唐三藏    | 98.0 |    56.0 |    67.0 |
| 猪悟能    | 98.0 |    90.0 |    88.0 |
| 刘玄德    | 85.0 |    45.0 |    55.0 |
| 曹孟德    | 84.0 |    67.0 |    82.0 |
| 孙悟空    | 78.0 |    77.0 |    87.0 |
| 孙权      | 73.0 |    78.0 |    70.0 |
| 宋公明    | 65.0 |    30.0 |    75.0 |
+-----------+------+---------+---------+
7 rows in set (0.00 sec)


     可以使用列的别名进行排序     


select name, Chinese + Math + English as total from exam1 order by total desc;
+-----------+-------+
| name      | total |
+-----------+-------+
| 猪悟能    | 276.0 |
| 孙悟空    | 242.0 |
| 曹孟德    | 233.0 |
| 唐三藏    | 221.0 |
| 孙权      | 221.0 |
| 刘玄德    | 185.0 |
| 宋公明    | 170.0 |
| NULL      |  NULL |
+-----------+-------+-- null 和任何数的计算结果都为 null


5 分页查询 


  • select *容易查询出太多的数据,导致机器挂掉;
  • 通过指定列查询,虽然查到的结果是变少了很多,但是如果行数足够多的话,仍然是有可能会把机器搞出问题的;
  • 此时更稳妥的做法,就是"分页查询",限制一次查询,最多能查到多少个记录;

5.1 查询第一页数据

select 列名 from 表名 limit num ;

5.2 使用LIMIT子句进行分页查询 

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

  

相关文章:

【MySQL — 数据库增删改查操作】深入解析MySQL的 Retrieve 检索操作

Retrieve 检索 示例 1. 构造数据 创建表结构 create table exam1(id bigint, name varchar(20) comment同学姓名, Chinesedecimal(3,1) comment 语文成绩, Math decimal(3,1) comment 数学成绩, English decimal(3,1) comment 英语成绩 ); 插入测试数据 insert into ex…...

项目开发实践——基于SpringBoot+Vue3实现的在线考试系统(九)(完结篇)

文章目录 一、成绩查询模块实现1、学生成绩查询功能实现1.1 页面设计1.2 前端页面实现1.3 后端功能实现2、成绩分段查询功能实现2.1 页面设计2.2 前端页面实现2.3 后端功能实现二、试卷练习模块实现三、我的分数模块实现1、 页面设计2、 前端页面实现3、 后端功能实现四、交流区…...

离散 VS 流程制造,制造业的 “双生花” 如何绽放

在制造业中&#xff0c;我们常看到两种不同生产景象&#xff1a;有的企业生产一气呵成&#xff0c;有的则由众多环节组合。 这源于离散制造和流程制造两种常见生产模式。它们在生产管理上特点与区别明显。 下面&#xff0c;我们从概念、特点、企业生产管理方式&#xff0c;以…...

freeswtch目录下modules.conf各个模块的介绍【freeswitch版本1.6.8】

应用模块&#xff08;applications&#xff09; mod_abstraction&#xff1a; 为其他模块提供抽象层&#xff0c;有助于简化模块开发&#xff0c;让开发者能在统一框架下开发新功能&#xff0c;减少与底层系统的直接交互&#xff0c;提高代码可移植性和可维护性。 mod_av&#…...

循序渐进kubernetes-RBAC(Role-Based Access Control)

文章目录 概要Kubernetes API了解 Kubernetes 中的 RBACRoles and Role Bindings:ClusterRoles and ClusterRoleBindings检查访问权限&#xff1a;外部用户结论 概要 Kubernetes 是容器化应用的强大引擎&#xff0c;但仅仅关注部署和扩展远远不够&#xff0c;集群的安全同样至…...

第3章 基于三电平空间矢量的中点电位平衡策略

0 前言 在NPC型三电平逆变器的直流侧串联有两组参数规格完全一致的电解电容,由于三电平特殊的中点钳位结构,在进行SVPWM控制时,在一个完整开关周期内,直流侧电容C1、C2充放电不均匀,各自存储的总电荷不同,电容电压便不均等,存在一定的偏差。在不进行控制的情况下,系统无…...

基于SpringBoot的阳光幼儿园管理系统

作者&#xff1a;计算机学姐 开发技术&#xff1a;SpringBoot、SSM、Vue、MySQL、JSP、ElementUI、Python、小程序等&#xff0c;“文末源码”。 专栏推荐&#xff1a;前后端分离项目源码、SpringBoot项目源码、Vue项目源码、SSM项目源码、微信小程序源码 精品专栏&#xff1a;…...

Python 数据分析 - Matplotlib 绘图

Python 数据分析 - Matplotlib 绘图 简介绘图折线图单线多线子图 散点图直方图条形图纵置横置多条 饼图 简介 Matplotlib 是 Python 提供的一个绘图库&#xff0c;通过该库我们可以很容易的绘制出折线图、直方图、散点图、饼图等丰富的统计图&#xff0c;安装使用 pip install…...

uniapp版本升级

1.样式 登录进到首页&#xff0c;弹出更新提示框&#xff0c;且不可以关闭&#xff0c;侧边返回直接退出&#xff01; 有关代码&#xff1a; <uv-popup ref"popupUpdate" round"8" :close-on-click-overlay"false"><view style"…...

Django ORM解决Oracle表多主键的问题

现状 以Django 3.2为例 Django ORM 设计为默认使用单一主键&#xff08;通常是自增的 id 字段&#xff09;&#xff0c;这一选择主要基于以下核心原因&#xff1a; 简化ORM设计与操作 统一访问方式外键关联简化 避免歧义冲突 主键语义明确防止隐式依赖 性能与数据库兼容 索引…...

机器学习2 (笔记)(朴素贝叶斯,集成学习,KNN和matlab运用)

朴素贝叶斯模型 贝叶斯定理&#xff1a; 常见类型 算法流程 优缺点 集成学习算法 基本原理 常见方法 KNN&#xff08;聚类模型&#xff09; 算法性质&#xff1a; 核心原理&#xff1a; 算法流程 优缺点 matlab中的运用 朴素贝叶斯模型 朴素贝叶斯模型是基于贝叶斯…...

ubuntu解决普通用户无法进入root

项目场景&#xff1a; 在RK3566上移植Ubuntu20.04之后普通用户无法进入管理员模式 问题描述 在普通用户使用sudo su试图进入管理员模式的时候报错 解决方案&#xff1a; 1.使用 cat /etc/passwd 查看所有用户.最后一行是 若无用户&#xff0c;则使用 sudo useradd -r -m -s /…...

Time Constant | RC、RL 和 RLC 电路中的时间常数

注&#xff1a;本文为 “Time Constant” 相关文章合辑。 机翻&#xff0c;未校。 How To Find The Time Constant in RC and RL Circuits June 8, 2024 &#x1f4a1; Key learnings: 关键学习点&#xff1a; Time Constant Definition: The time constant (τ) is define…...

数据结构测试题2

一、单选题&#xff08;每题 2 分&#xff0c;共20分&#xff09; 1. 栈和队列的共同特点是( A )。 A.只允许在端点处插入和删除元素 B.都是先进后出 C.都是先进先出 D.没有共同点 2. 用链接方式存储的队列&#xff0c;在进行插入运算时( C ) A. 仅修改头指针 B. 头…...

在虚拟机里运行frida-server以实现对虚拟机目标软件的监测和修改参数(一)(android Google Api 35高版本版)

frida-server下载路径 我这里选择较高版本的frida-server-16.6.6-android-x86_64 以root身份启动adb 或 直接在android studio中打开 adb root 如果使用android studio打开的话&#xff0c;最好选择google api的虚拟机&#xff0c;默认以root模式开启 跳转到下载的frida-se…...

mysql_store_result的概念和使用案例

mysql_store_result() 是 MySQL C API 中的一个函数&#xff0c;用于检索一个完整的结果集到一个客户端。当执行一个查询&#xff08;通常是 SELECT 查询&#xff09;并希望处理所有返回的数据时&#xff0c;可以使用此函数。 概念 mysql_store_result() 函数的原型如下&…...

Linux进程调度与等待:背后的机制与实现

个人主页&#xff1a;chian-ocean 文章专栏-Linux 前言&#xff1a; 当一个进程发起某种操作&#xff08;如I/O请求、信号、锁的获取等&#xff09;&#xff0c;但该操作需要的资源暂时不可用时&#xff0c;进程会被操作系统挂起&#xff0c;进入“等待队列”或“阻塞状态”。…...

网易云音乐歌名可视化:词云生成与GitHub-Pages部署实践

引言 本文将基于前一篇爬取的网易云音乐数据, 利用Python的wordcloud、matplotlib等库, 对歌名数据进行深入的词云可视化分析. 我们将探索不同random_state对词云布局的影响, 并详细介绍如何将生成的词云图部署到GitHub Pages, 实现数据可视化的在线展示. 介绍了如何从原始数据…...

单片机基础模块学习——DS18B20温度传感器芯片

不知道该往哪走的时候&#xff0c;就往前走。 一、DS18B20芯片原理图 该芯片共有三个引脚&#xff0c;分别为 GND——接地引脚DQ——数据通信引脚VDD——正电源 数据通信用到的是1-Wier协议 优点&#xff1a;占用端口少&#xff0c;电路设计方便 同时该协议要求通过上拉电阻…...

《网络数据安全管理条例》施行,企业如何推进未成年人个人信息保护(下)

文章目录 前言三、全流程推进未成年人个人信息保护1、处理前:未成年人个人信息处理的告知同意2、处理中:加强个人信息处理流程管理3、处理后:落实个人信息保护合规审计四、大型网络平台应每年发布社会责任报告前言 《网数条例》颁布前,我国已针对未成年人个人信息保护陆续…...

XML Group端口详解

在XML数据映射过程中&#xff0c;经常需要对数据进行分组聚合操作。例如&#xff0c;当处理包含多个物料明细的XML文件时&#xff0c;可能需要将相同物料号的明细归为一组&#xff0c;或对相同物料号的数量进行求和计算。传统实现方式通常需要编写脚本代码&#xff0c;增加了开…...

springboot 百货中心供应链管理系统小程序

一、前言 随着我国经济迅速发展&#xff0c;人们对手机的需求越来越大&#xff0c;各种手机软件也都在被广泛应用&#xff0c;但是对于手机进行数据信息管理&#xff0c;对于手机的各种软件也是备受用户的喜爱&#xff0c;百货中心供应链管理系统被用户普遍使用&#xff0c;为方…...

python/java环境配置

环境变量放一起 python&#xff1a; 1.首先下载Python Python下载地址&#xff1a;Download Python | Python.org downloads ---windows -- 64 2.安装Python 下面两个&#xff0c;然后自定义&#xff0c;全选 可以把前4个选上 3.环境配置 1&#xff09;搜高级系统设置 2…...

AtCoder 第409​场初级竞赛 A~E题解

A Conflict 【题目链接】 原题链接&#xff1a;A - Conflict 【考点】 枚举 【题目大意】 找到是否有两人都想要的物品。 【解析】 遍历两端字符串&#xff0c;只有在同时为 o 时输出 Yes 并结束程序&#xff0c;否则输出 No。 【难度】 GESP三级 【代码参考】 #i…...

NFT模式:数字资产确权与链游经济系统构建

NFT模式&#xff1a;数字资产确权与链游经济系统构建 ——从技术架构到可持续生态的范式革命 一、确权技术革新&#xff1a;构建可信数字资产基石 1. 区块链底层架构的进化 跨链互操作协议&#xff1a;基于LayerZero协议实现以太坊、Solana等公链资产互通&#xff0c;通过零知…...

select、poll、epoll 与 Reactor 模式

在高并发网络编程领域&#xff0c;高效处理大量连接和 I/O 事件是系统性能的关键。select、poll、epoll 作为 I/O 多路复用技术的代表&#xff0c;以及基于它们实现的 Reactor 模式&#xff0c;为开发者提供了强大的工具。本文将深入探讨这些技术的底层原理、优缺点。​ 一、I…...

精益数据分析(97/126):邮件营销与用户参与度的关键指标优化指南

精益数据分析&#xff08;97/126&#xff09;&#xff1a;邮件营销与用户参与度的关键指标优化指南 在数字化营销时代&#xff0c;邮件列表效度、用户参与度和网站性能等指标往往决定着创业公司的增长成败。今天&#xff0c;我们将深入解析邮件打开率、网站可用性、页面参与时…...

20个超级好用的 CSS 动画库

分享 20 个最佳 CSS 动画库。 它们中的大多数将生成纯 CSS 代码&#xff0c;而不需要任何外部库。 1.Animate.css 一个开箱即用型的跨浏览器动画库&#xff0c;可供你在项目中使用。 2.Magic Animations CSS3 一组简单的动画&#xff0c;可以包含在你的网页或应用项目中。 3.An…...

AI+无人机如何守护濒危物种?YOLOv8实现95%精准识别

【导读】 野生动物监测在理解和保护生态系统中发挥着至关重要的作用。然而&#xff0c;传统的野生动物观察方法往往耗时耗力、成本高昂且范围有限。无人机的出现为野生动物监测提供了有前景的替代方案&#xff0c;能够实现大范围覆盖并远程采集数据。尽管具备这些优势&#xf…...

打手机检测算法AI智能分析网关V4守护公共/工业/医疗等多场景安全应用

一、方案背景​ 在现代生产与生活场景中&#xff0c;如工厂高危作业区、医院手术室、公共场景等&#xff0c;人员违规打手机的行为潜藏着巨大风险。传统依靠人工巡查的监管方式&#xff0c;存在效率低、覆盖面不足、判断主观性强等问题&#xff0c;难以满足对人员打手机行为精…...