sql怎样用NOT否定查询条件 sql否定查询的简单语句教程

sql怎样用not否定查询条件 sql否定查询的简单语句教程

在SQL中,

NOT

操作符的核心作用,说白了,就是把一个条件的“真”变成“假”,把“假”变成“真”。它就像一个逻辑上的“反转开关”,让你能精确地筛选出那些不符合特定要求的数据,而不是去关注符合条件的。当你需要排除某些情况,或者想找出“除了这些以外”的所有记录时,

NOT

就显得尤为重要。

解决方案

要使用

NOT

否定查询条件,最直接的方式就是将其放在你想要否定的条件表达式之前。这通常会结合

WHERE

子句来实现,当然,它也可以用在其他需要布尔表达式的地方,比如

HAVING

子句。

最常见的几种用法包括:

否定相等性或不相等性: 虽然我们有

!=


来表示不等于,但

NOT

可以配合

=

来表达“不等于”,例如

WHERE NOT (column = value)

。但通常我们会直接用

!=


,因为更简洁。否定空值检查:

WHERE NOT (column IS NULL)

,这等同于

WHERE column IS NOT NULL

。后者是更常用的写法,因为它更直观。否定模式匹配:

WHERE NOT (column LIKE 'pattern%')

。这会找出那些不以

pattern

开头的字符串。否定集合成员:

WHERE NOT (column IN (value1, value2))

。这会找出

column

的值不在指定列表中的所有记录。否定范围:

WHERE NOT (column BETWEEN value1 AND value2)

。这会找出

column

的值不在指定范围内的记录。否定子查询结果:

WHERE NOT EXISTS (SELECT 1 FROM another_table WHERE ...)

。这会找出那些在另一个表中找不到匹配记录的行。

示例:

假设我们有一个

products

表,里面有

product_name

price

字段。

-- 找出价格不为空的产品SELECT product_name, priceFROM productsWHERE NOT (price IS NULL);-- 找出产品名称不以'Apple'开头的,或者不包含'Pro'的产品SELECT product_nameFROM productsWHERE NOT (product_name LIKE 'Apple%' OR product_name LIKE '%Pro%');-- 找出价格不在100到500之间的产品SELECT product_name, priceFROM productsWHERE NOT (price BETWEEN 100 AND 500);-- 找出除了'Laptop'和'Mouse'之外的所有产品SELECT product_nameFROM productsWHERE NOT (product_name IN ('Laptop', 'Mouse'));

你看,

NOT

就是这么直接,它把你的“想要”变成了“不想要”。

NOT

操作符在SQL查询中的常见应用场景有哪些?

在我日常写SQL的时候,

NOT

操作符简直是我的得力助手,尤其是在需要做“排除法”的时候。我觉得它最常见的应用场景,往往都围绕着几种核心的排除需求。

首先,最直观的就是排除特定值或集合。比如,你有一批订单数据,想找出除了“已取消”和“已完成”状态之外的所有订单,这时候

NOT IN ('已取消', '已完成')

就非常方便。如果只是排除一个值,

NOT (status = '已取消')

当然可以,但我们通常会写成

status != '已取消'

,更简洁。不过,一旦要排除多个,

NOT IN

的优势就体现出来了,比写一堆

AND status != ...

要清晰得多。

其次,是排除空值。虽然我们有

IS NOT NULL

,但本质上它就是

NOT (column IS NULL)

的简写。在数据清洗或者报表生成时,很多时候我们不希望看到那些关键信息缺失的记录,比如地址为空的客户,或者电话号码为空的联系人。这时候,

WHERE column IS NOT NULL

(即

NOT (column IS NULL)

)就成了标配。

再来,排除不符合特定模式的字符串。如果你在处理文本数据,比如产品描述或者用户评论,想找出那些不包含某个关键词,或者不以某个前缀开头的记录,

NOT LIKE

就派上用场了。比如,我需要找出所有不是以“优惠券”开头的营销邮件,

WHERE email_subject NOT LIKE '优惠券%'

,一目了然。

还有就是排除特定范围的数据。比如,我想找出那些年龄不在18到60岁之间的用户,

WHERE age NOT BETWEEN 18 AND 60

。这在做用户画像分析或者数据分层时,非常实用。

最后,也是我觉得最强大、但也最容易让人犯迷糊的,是基于子查询结果的排除

NOT EXISTS

NOT IN (subquery)

。当你想找出那些在另一个表中没有对应记录的数据时,它们就显得不可或缺。举个例子,我想找出那些从来没有下过订单的客户,那么我就可以用

WHERE NOT EXISTS (SELECT 1 FROM orders WHERE orders.customer_id = customers.id)

。这种场景下的

NOT

,往往能解决一些更复杂的业务逻辑问题。

总的来说,

NOT

的出现,让我们的查询逻辑变得更加灵活,它提供了一种“反向思考”的工具,有时候从“不想要什么”的角度去定义条件,反而比从“想要什么”的角度更容易、更清晰。

NOT

!=


有什么区别,何时应该使用它们?

这个问题我经常被问到,也看到不少初学者在这里犯迷糊。说白了,

!=


是用来表示“不等于”的,它们俩在功能上几乎是完全等价的,具体用哪个取决于你使用的SQL方言(比如SQL Server倾向于


,MySQL和PostgreSQL两者都支持,

!=

更常见)。它们就是为了否定一个简单的等值比较而生。

NOT

则是一个逻辑操作符,它的能力远不止于“不等于”。

NOT

可以否定任何一个布尔表达式,也就是说,任何一个结果为真或假的条件,前面都可以加上

NOT

来反转它的结果。

举个例子你就明白了:

蓝心千询 蓝心千询

蓝心千询是vivo推出的一个多功能AI智能助手

蓝心千询 34 查看详情 蓝心千询

!=


只能用于比较,比如

price != 100

(价格不等于100)。你不能写

NOT price

,那是语法错误。

NOT

它可以否定一个复杂的条件,比如

NOT (price > 100 AND stock_quantity < 10)

(价格不大于100或者库存不小于10)。它也可以否定

IS NULL

LIKE

IN

BETWEEN

,甚至

EXISTS

这样的操作符。

那么,何时应该使用它们呢?

我的经验是,如果你只是简单地想表达“不等于某个值”,那么

!=


是你的首选,因为它更简洁,也更符合直觉。比如:

-- 找出产品ID不等于100的产品SELECT * FROM products WHERE product_id != 100;-- 或者SELECT * FROM products WHERE product_id  100;

这种情况下,用

NOT (product_id = 100)

当然也行,但显得有点啰嗦,不是吗?

然而,当你的否定需求变得复杂,或者你需要否定除了等值比较之外的任何条件时,

NOT

就是不可替代的了。

否定空值:

WHERE NOT (email IS NULL)

或者更常用的

WHERE email IS NOT NULL

否定模式匹配:

WHERE NOT (product_name LIKE '%限定版%')

否定集合:

WHERE NOT (category IN ('电子产品', '图书'))

否定范围:

WHERE NOT (order_date BETWEEN '2023-01-01' AND '2023-01-31')

否定多个逻辑组合:

WHERE NOT (status = '已完成' OR amount < 50)

。这里

NOT

会把整个括号里的条件反转。

所以,总结一下:

!=


NOT

在特定场景(否定等值比较)下的快捷方式。在其他更广泛的否定场景中,

NOT

才是那个真正拥有“反转乾坤”能力的通用逻辑操作符。理解它们的区别和适用场景,能让你写出更准确、更高效的SQL查询。

在使用

NOT

进行复杂条件否定时,有哪些需要注意的陷阱或最佳实践?

NOT

来否定复杂条件,确实是SQL查询中一个很有意思也很有挑战的部分。我个人在写这类查询时,没少踩坑,也总结了一些心得。它不像看起来那么简单,尤其是在涉及

NULL

和多重逻辑组合时。

首先,也是最最重要的一点:括号是你的救星! 很多人在用

NOT

否定多个条件组合时,会忘记或者错误地使用括号。记住,

NOT

的优先级很高,它只会否定紧随其后的那个“最小”的表达式。

比如:

WHERE NOT condition_A AND condition_B

:这会被解析为

WHERE (NOT condition_A) AND condition_B

。它只否定了

condition_A

,然后用

AND

连接

condition_B

。如果你想否定整个组合条件,比如“不是A并且不是B”,你应该写成

WHERE NOT (condition_A AND condition_B)

。这和

WHERE NOT condition_A OR NOT condition_B

是等价的(德摩根定律)。

这个细节,我见过太多次导致查询结果不符合预期的案例了,通常都是因为括号没用对。

其次,

NULL

值的行为是个大陷阱。这是SQL中一个非常独特的点。在SQL里,

NULL

表示“未知”,任何与

NULL

的比较(除了

IS NULL

IS NOT NULL

)结果都是

UNKNOWN

,而不是

TRUE

FALSE

。而

WHERE

子句只返回

TRUE

的记录。

这意味着什么呢?

WHERE NOT (column = 'value')

:这条语句会排除

column

等于’value’的记录。但是,它不会包含

column

NULL

的记录!因为

column = 'value'

对于

NULL

来说是

UNKNOWN

NOT UNKNOWN

还是

UNKNOWN

,所以这些行不会被返回。如果你想排除某个值,同时包含

NULL

值,你可能需要写成

WHERE column != 'value' OR column IS NULL

。如果你想排除某个值,并且也排除

NULL

值,那么

WHERE NOT (column = 'value') AND column IS NOT NULL

会更准确,或者直接用

WHERE column != 'value'

(因为

!=

本身就排除了

NULL

)。

这个

NULL

的“顽固”特性,真的让人头疼,但理解它至关重要。

再者,性能考量。虽然现代SQL优化器已经非常智能了,但在某些情况下,使用

NOT

可能会导致查询无法有效利用索引。比如,

WHERE NOT column LIKE 'prefix%'

这样的条件,可能无法走上

column

上的索引,因为它需要扫描所有不匹配的行。而如果你能把条件转换为“正向”的(比如,如果知道所有可能的非匹配模式,虽然这通常不现实),有时能获得更好的性能。不过,这通常是高级优化范畴了,对于大多数日常查询,不用过度担心。

最后,从可读性的角度来说,过度嵌套的

NOT

或者过于复杂的否定逻辑,会让你的SQL查询变得非常难以理解和维护。我个人建议,如果一个

NOT

条件让你自己都觉得绕,那么尝试用德摩根定律(

NOT (A AND B)

等价于

NOT A OR NOT B

NOT (A OR B)

等价于

NOT A AND NOT B

)去重写它,或者干脆把逻辑拆解成多个步骤(比如使用CTE或子查询),往往能让代码更清晰。有时候,换个角度,从“我要什么”而不是“我不要什么”来思考问题,也能简化逻辑。

掌握这些,你在使用

NOT

进行复杂条件否定时,会少走很多弯路。

以上就是sql怎样用NOT否定查询条件 sql否定查询的简单语句教程的详细内容,更多请关注创想鸟其它相关文章!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 chuangxiangniao@163.com 举报,一经查实,本站将立刻删除。
发布者:程序猿,转转请注明出处:https://www.chuangxiangniao.com/p/596865.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
win8系统wifi开关在哪_win8系统wifi功能开启位置
上一篇 2025年11月10日 18:39:51
电脑上怎样卸载360浏览器(快速卸载360浏览器的方法与技巧)
下一篇 2025年11月10日 18:39:59

相关推荐

  • 创建包含列表对象的Java对象时,避免列表为空的技巧

    创建包含列表对象的Java对象时,避免列表为空的技巧创建包含列表对象的Java对象时,避免列表为空的技巧创建包含列表对象的Java对象时,避免列表为空的技巧创建包含列表对象的Java对象时,避免列表为空的技巧

    在Java中,如果一个类的属性是列表类型,在创建该类的实例时,如果没有显式地初始化该列表,那么该属性的默认值将会是null。这可能会导致在后续操作中出现空指针异常。为了避免这种情况,我们需要确保在创建对象时,列表属性被初始化为一个空列表,而不是null。 解决方案一:显式初始化列表 最直接的方法是在…

    2026年9月24日 用户投稿
    000
  • ubuntu compton提高分辨率技巧

    在ubuntu系统中,compton是一个常用的合成器,用于实现窗口的透明度和阴影效果。然而,compton本身并不直接提供调整分辨率的功能。分辨率的调整通常与显示管理器(如lightdm)或桌面环境(如gnome)的显示设置相关。以下是一些提高分辨率的技巧: 通过显示管理器调整分辨率 使用Ligh…

    2026年9月24日
    000
  • windows11的emoji表情面板快捷键是什么_windows11打开emoji表情的方法

    windows11的emoji表情面板快捷键是什么_windows11打开emoji表情的方法windows11的emoji表情面板快捷键是什么_windows11打开emoji表情的方法windows11的emoji表情面板快捷键是什么_windows11打开emoji表情的方法windows11的emoji表情面板快捷键是什么_windows11打开emoji表情的方法

    可通过快捷键Win+.调出表情符号面板,在任务栏设置中开启“表情符号及更多”按钮,或通过触摸屏长按输入区、鼠标右键菜单等方式快速插入表情符号和特殊字符。 如果您想在Windows 11中快速插入表情符号或特殊字符,但不确定如何调出相关面板,则可以通过系统提供的多种方式实现。以下是具体的操作方法: 本…

    2026年9月24日 用户投稿
    000
  • UC浏览器下载的压缩包怎么打开_UC浏览器直接解压ZIP或RAR文件教程

    UC浏览器下载的压缩包怎么打开_UC浏览器直接解压ZIP或RAR文件教程UC浏览器下载的压缩包怎么打开_UC浏览器直接解压ZIP或RAR文件教程UC浏览器下载的压缩包怎么打开_UC浏览器直接解压ZIP或RAR文件教程UC浏览器下载的压缩包怎么打开_UC浏览器直接解压ZIP或RAR文件教程

    首先尝试用UC浏览器预览压缩包内容,若需完整解压则安装ZArchiver等工具,或使用系统文件管理器自带的ZIP解压功能。 如果您在使用UC浏览器下载了ZIP或RAR格式的压缩包,但无法直接查看其中的内容,可能是因为浏览器本身不支持完整的解压功能。此时需要借助系统自带或第三方工具完成解压操作。 本文…

    2026年9月24日 用户投稿
    200
  • 蚂蚁百灵大模型团队开源高性能思考模型 Ring-flash-2.0

    蚂蚁百灵大模型团队开源高性能思考模型 Ring-flash-2.0蚂蚁百灵大模型团队开源高性能思考模型 Ring-flash-2.0蚂蚁百灵大模型团队开源高性能思考模型 Ring-flash-2.0蚂蚁百灵大模型团队开源高性能思考模型 Ring-flash-2.0

    蚂蚁百灵大模型团队宣布正式开源 ring-flash-2.0,这是一款基于 ling-flash-2.0-base 深度优化的高效思考模型。与 ling-flash-2.0 一致,ring-flash-2.0 拥有总计 100b 参数,但在每次推理过程中仅激活 6.1b 参数,显著提升计算效率。 R…

    2026年9月24日 用户投稿
    000
  • mysql的索引有哪些类型

    mysql的索引有哪些类型mysql的索引有哪些类型mysql的索引有哪些类型mysql的索引有哪些类型

    MySQL索引可快速查找数据,通过在键值对中存储列值和数据指针实现。常见的索引类型有:B-Tree索引:支持范围查询,数据量大时性能佳。哈希索引:完全匹配查询快,但更新数据开销大。全文索引:索引文本数据,支持全文搜索。空间索引:索引地理空间数据,支持空间查询。并发B-Tree索引:高并发环境下性能更…

    2026年9月24日 用户投稿
    000
  • 多模态AI如何处理射电望远镜数据 多模态AI深空探测应用

    多模态AI如何处理射电望远镜数据 多模态AI深空探测应用多模态AI如何处理射电望远镜数据 多模态AI深空探测应用多模态AI如何处理射电望远镜数据 多模态AI深空探测应用多模态AI如何处理射电望远镜数据 多模态AI深空探测应用

    多模态ai通过融合多种数据提升射电望远镜数据分析能力。它将无线电信号转化为频谱图、时间序列等形式,并结合光学图像等信息综合判断信号频率、强度、出现时间与方向;1.时空对齐匹配不同设备数据;2.特征级融合提取关键特征;3.决策级融合综合多个模型结果;实际应用于“突破聆听计划”筛选射电信号,面临数据格式…

    2026年9月24日 用户投稿
    200
  • sublime怎么处理SQL文件并高亮_sublime SQL语法高亮设置方法

    sublime怎么处理SQL文件并高亮_sublime SQL语法高亮设置方法sublime怎么处理SQL文件并高亮_sublime SQL语法高亮设置方法sublime怎么处理SQL文件并高亮_sublime SQL语法高亮设置方法sublime怎么处理SQL文件并高亮_sublime SQL语法高亮设置方法

    首先手动设置SQL语法高亮,点击右下角语言模式选择SQL;接着将.sql文件默认关联为SQL语法打开;然后通过Package Control安装SQLTools等插件增强功能;最后可自定义颜色主题优化显示效果。 Sublime Text 默认支持多种编程语言的语法高亮,但对 SQL 文件的支持可能不…

    2026年9月24日 用户投稿
    000
  • mysql下载初始化数据库失败怎么办

    mysql下载初始化数据库失败怎么办mysql下载初始化数据库失败怎么办mysql下载初始化数据库失败怎么办mysql下载初始化数据库失败怎么办

    初始化 MySQL 数据库失败可能是由于以下原因:服务未启动权限不足数据库已存在配置问题磁盘空间不足数据库引擎错误其他未知原因(可查看日志文件) MySQL 下载初始化数据库失败的解决方案 初始化 MySQL 数据库时遇到失败的情况,可能是以下几个原因导致的: 1. MySQL 服务未启动 确保 M…

    2026年9月24日 用户投稿
    100
  • 二手车视频号直播怎么挂载?直播挂载有影响吗?

    二手车视频号直播怎么挂载?直播挂载有影响吗?二手车视频号直播怎么挂载?直播挂载有影响吗?二手车视频号直播怎么挂载?直播挂载有影响吗?二手车视频号直播怎么挂载?直播挂载有影响吗?

    视频号直播中的挂载功能,是推动二手车销售转化的核心利器。通过精准配置商品链接、小程序或留资表单,主播可高效引导观众完成从观看到咨询、下单的全过程。那么,具体该如何操作呢? 一、二手车视频号直播如何实现挂载? 开通直播权限 确保你的视频号已完成实名认证,并满足平台对粉丝数或活跃度的基本要求。进入视频号…

    2026年9月24日 用户投稿
    300
  • MAC外接显示器没有反应_Mac外接显示器连接与故障排除

    首先检查连接线缆和接口是否正常,确认显示器电源及输入源设置正确;通过系统设置中的“检测显示器”功能强制识别;调整分辨率与刷新率为显示器兼容值;重置NVRAM/SMC以清除错误配置;使用安全模式排除软件冲突;最后更新macOS和显示器固件至最新版本。 如果您已将Mac连接至外接显示器,但屏幕显示“无信…

    2026年9月24日
    000
  • 手机淘宝怎么上拍品?手机淘宝怎么上拍品视频

    手机淘宝怎么上拍品?手机淘宝怎么上拍品视频手机淘宝怎么上拍品?手机淘宝怎么上拍品视频手机淘宝怎么上拍品?手机淘宝怎么上拍品视频手机淘宝怎么上拍品?手机淘宝怎么上拍品视频

    首先打开手机淘宝进入“我是商家”,通过“发布宝贝”填写信息并上传图片完成商品发布;接着在“素材中心”上传不超过500MB的MP4格式视频,并将视频链接插入商品详情;也可使用千牛App,在发布商品时直接添加视频,确保封面清晰,最后提交发布即可。 如果您想在手机淘宝上发布商品或上传拍品视频,但不清楚具体…

    2026年9月24日 用户投稿
    200
  • UC浏览器如何设置默认下载工具_UC浏览器调用第三方下载器设置方法

    UC浏览器如何设置默认下载工具_UC浏览器调用第三方下载器设置方法UC浏览器如何设置默认下载工具_UC浏览器调用第三方下载器设置方法UC浏览器如何设置默认下载工具_UC浏览器调用第三方下载器设置方法UC浏览器如何设置默认下载工具_UC浏览器调用第三方下载器设置方法

    首先开启UC浏览器的第三方下载权限,进入设置→下载设置→启用“使用第三方下载工具”;然后在默认下载工具中选择目标应用如IDM+或ADM;若未显示可选应用需确认安装并刷新列表;还可通过系统设置→应用管理→默认应用→下载管理器中指定默认下载器;对于不支持直接绑定的版本,可用Tasker或Auto.js等…

    2026年9月24日 用户投稿
    100
  • 怎样备份和恢复Debian邮件服务器数据

    备份和恢复debian邮件服务器数据的方法取决于邮件服务器的具体配置和使用的软件。以下是一些通用的步骤和建议: 壁纸样机神器 免费壁纸样机生成 0 查看详情 备份步骤 确定备份内容:首先,确定需要备份的数据类型,例如邮件内容、用户信息、配置文件等。使用备份工具:根据邮件服务器的软件选择合适的备份工具…

    2026年9月24日
    100
  • 怎么用豆包AI帮我实现CQRS模式 3步教你用AI分离读写模型

    怎么用豆包AI帮我实现CQRS模式 3步教你用AI分离读写模型怎么用豆包AI帮我实现CQRS模式 3步教你用AI分离读写模型怎么用豆包AI帮我实现CQRS模式 3步教你用AI分离读写模型怎么用豆包AI帮我实现CQRS模式 3步教你用AI分离读写模型

    实现cqrs模式可通过三步借助豆包ai快速完成:一、理清业务场景,将写操作(如用户下单)与读操作(如查看订单列表)分离,可复制代码给豆包ai分析归类;二、让豆包ai生成基础结构代码,输入类似“基于cqrs的订单管理系统,用python flask实现”的指令,获取命令处理器、查询处理器等模块模板;三…

    2026年9月24日 用户投稿
    000
  • WPS如何制作个人简历_WPS简历模板选择与内容填写教程

    WPS如何制作个人简历_WPS简历模板选择与内容填写教程WPS如何制作个人简历_WPS简历模板选择与内容填写教程WPS如何制作个人简历_WPS简历模板选择与内容填写教程WPS如何制作个人简历_WPS简历模板选择与内容填写教程

    使用WPS制作简历需先选择合适模板,填写个人信息、求职意向、教育背景、工作经历等内容,突出成果与技能,调整格式后导出为PDF。关键在于内容真实、条理清晰、重点突出,便于HR快速识别优势。 在求职过程中,一份清晰、专业的简历至关重要。WPS Office 提供了多种简历模板和便捷的编辑功能,帮助用户快…

    2026年9月24日 用户投稿
    300
  • mysql下载初始化数据库失败怎么回事

    mysql下载初始化数据库失败怎么回事mysql下载初始化数据库失败怎么回事mysql下载初始化数据库失败怎么回事mysql下载初始化数据库失败怎么回事

    MySQL 初始化数据库失败的原因包括:1. 系统权限不足;2. 安装文件损坏;3. 防火墙或安全软件阻止连接;4. 数据库端口冲突;5. 磁盘空间不足;6. 操作系统版本不兼容;7. 环境变量问题;8. 损坏的配置文件;9. 之前的 MySQL 安装残留;10. 其他错误。请检查这些原因并采取相应…

    2026年9月24日 用户投稿
    000
  • 星纪魅族万志强回应魅族 22 影像升级:10 月还会有 OTA

    星纪魅族万志强回应魅族 22 影像升级:10 月还会有 OTA星纪魅族万志强回应魅族 22 影像升级:10 月还会有 OTA星纪魅族万志强回应魅族 22 影像升级:10 月还会有 OTA星纪魅族万志强回应魅族 22 影像升级:10 月还会有 OTA

    10 月 13 日,星纪魅族集团中国区 cmo 万志强对用户认可魅族 22 手机影像表现作出回应。他表示,本月还将迎来一次 ota 更新,届时魅族 22 的影像能力有望再度升级。 魅族 22 据 CNMO 消息,有用户反馈称:尽管魅族 22 在拍照方面并非顶尖水准,但在短短几个月内已达到主流影像旗舰…

    2026年9月24日 用户投稿
    000
  • 袋鼠数据库工具 8.90.1 版已上线

    袋鼠数据库工具 8.90.1 版已上线袋鼠数据库工具 8.90.1 版已上线袋鼠数据库工具 8.90.1 版已上线袋鼠数据库工具 8.90.1 版已上线

    袋鼠数据库工具 是一款由 ai 驱动的主流数据库系统客户端,支持多种数据库类型,包括 mariadb、mongodb、mysql、oracle、postgresql、redis、sqlite、sqlserver 等,具备建表、数据查询、模型设计、结构同步、数据导入导出等丰富功能。兼容 windows…

    2026年9月24日 用户投稿
    000
  • 使用 Appium 实现 Gmail OTP 验证自动化

    使用 Appium 实现 Gmail OTP 验证自动化使用 Appium 实现 Gmail OTP 验证自动化使用 Appium 实现 Gmail OTP 验证自动化使用 Appium 实现 Gmail OTP 验证自动化

    本文档旨在指导开发者如何使用 Appium 自动化测试移动应用中的 Gmail OTP (One-Time Password) 验证流程。我们将探讨如何通过 Appium 定位 OTP 输入框,并使用获取到的 OTP 值进行输入,从而完成验证流程的自动化。 定位 OTP 输入框 在 Appium 中…

    2026年9月24日 用户投稿
    200

发表回复

登录后才能评论
关注微信