sql如何使用in和not in筛选特定值 sqlin与not in筛选值的基础教程

IN 和 NOTIN 查询更简单,但速度更快。
如果需求较大,则存在使用。
临时 JOINT 表,用于大型表。
NOTIN 中的 NULL,解释过滤器。
叠加的列可以加快搜索和搜索的速度。
查看实施计划,查找瓶颈。
Python 中使用的参数化反注入。
输入验证、白名单。
为了避免拼接,请使用参数或 ORM。
ORM 防止注入并简化操作。
最低权限,权限。
MySQL 限制包大小和设置。
PostgreSQL 用于大型表。
SQLServer,NOTIN 注释为 NULL。
对于较大的值,请使用 Oracle。
你自己掂量一下。

数据库原理in的用法

那天,我在图书馆的一角翻着一本关于数据库的老书,突然想到一个例子。
例如,有一个食堂,老板想知道上周哪些顾客卖了“苹果”、“香蕉”或“橙子”。
如果使用传统的OR条件,代码可以这样写:
SELECT customer_id FROM sales WHEREfruit='apple'ORfruit='banana'ORfruit='orange';
但是,如果使用IN子句,代码就会简单很多:
SELECTcustomer_idFROMsalesWHEREfruitIN('apple','banana','Orange');
这让我想起了很多地方在生活中你可以使用这种简化,例如购物清单。
有时候,把你想买的东西一起列出来,比一一写下来要方便得多。
等等,还有一件事。
我突然想到,如果数据量很大,使用IN子句确实可以避免复杂的OR链,但是也需要注意可能出现的性能问题。

数据库中in是什么意思?

哎呀,关于数据库中的IN关键字,当时真的遇到了很多坑。
我记得那是2 01 6 年,我在一家小公司担任数据库管理员。
当时公司的计划是查询某个产品线的所有订单信息。
我认为此订单信息中的产品线字段有多个值。
使用多个OR连接来查询会非常不方便。

我想到用IN关键字来简化查询,于是写了一条SQL语句:SELECT FROMCommandsWHEREproduct_lineIN('A','B','C')。
当时觉得这个东西简单高效,但是运行起来却发现查询速度奇慢无比。
经过进一步验证,发现IN关键字在处理大数据集时性能会受到影响。

我快速优化,缩短了IN关键字中定义的值,并向product_line字段添加了索引。
这样,查询速度就显着提高了。
不过,这也让我意识到,在使用IN关键字时,需要警惕性能问题,不要让它成为查询瓶颈。

还有一次,2 01 8 年,我在一家电商平台担任数据分析师。
当时老板让我分析一下哪些产品销量最好。
当我查看products表中的category字段时,有几十个类别,我认为使用IN关键字查询会很方便。

我写了一条SQL语句:SELECT FROM products WHERE Category IN(“电子产品”,“家居用品”,“服装”)。
结果这个查询语句中出现了重复的类别,但我根本没有注意到。
后来老板说,你这是浪费资源。
查询结果中会存在重复数据,查询效率不高。

这件事提醒了我,在使用IN关键字时,需要小心,避免重复数据,不要让查询结果变得混乱。
回想起来,那些年的数据库经历,我确实经历了很多坑,但也学到了很多东西。
嘿,说到这里,你最近使用数据库有遇到什么问题吗?