SQL NOT Operator

2024 年 8 月 29 日 | 4 分钟阅读

NOT 是结构化查询语言中的一个逻辑运算符。

SQL 中的此运算符会否定任何布尔表达式的输出。

此运算符将给定值与每个值进行比较,并返回不满足条件的那些值。

NOT 运算符主要与 INSERT、UPDATE、DELETE 和 UPDATE SQL 语句中的 WHERE 子句一起使用。

结构化查询语言中 NOT 运算符的语法

在 SQL 语法中,我们必须在 WHERE 子句中指定 NOT 关键字以及条件。

SQL 中 NOT 运算符的示例

为了理解结构化查询语言中 NOT 运算符的查询,我们需要创建一个名为 Worker_Info 的新表。此表包含在行业中工作的工人的详细信息。

以下查询在 Industry 数据库中创建 Worker_Info

以下 INSERT 查询插入了在行业工作的多名工人的记录

以下查询显示 Worker_Info 表的数据。


Worker_IdWorker_First_NameWorker_Last_NameWorker_Dept_IdWorker_Joining_DateWorker_CityWorker_Salary
5001ArushSharma10012020-01-02德里20000
5002BulbulRoy10022019-12-31德里38000
5004SaurabhRoy10012020-10-10孟买45000
5005ShivaniSinghania10012019-07-15加尔各答42000
5006AvinashSharma10022019-11-11德里28000
5007ShyamBesas10032021-06-21勒克瑙35000

以下查询显示上面表中不属于 Kolkata City 的工人的记录


Worker_IdWorker_First_NameWorker_Last_NameWorker_Dept_IdWorker_Joining_DateWorker_CityWorker_Salary
5001ArushSharma10012020-01-02德里20000
5002BulbulRoy10022019-12-31德里38000
5004SaurabhRoy10012020-10-10孟买45000
5006AvinashSharma10022019-11-11德里28000
5007ShyamBesas10032021-06-21勒克瑙35000

以下查询不显示上面表中薪水大于 30000 的工人的记录。

输出

Worker_IdWorker_First_NameWorker_Last_NameWorker_Dept_IdWorker_Joining_DateWorker_CityWorker_Salary
5001ArushSharma10012020-01-02德里20000
5006AvinashSharma10022019-11-11德里28000

SQL 中 NOT 运算符与 IN 运算符的组合

我们也可以在 SQL 中将 NOT 运算符与 IN 运算符一起使用,以过滤那些不通过 IN 运算符括号中条件的记录。

NOT 运算符与 IN 运算符的语法

NOT 运算符与 IN 运算符的示例

以下查询显示 Worker_ID 未包含在 IN 运算符中的工人的记录

输出

Worker_IdWorker_First_NameWorker_Last_NameWorker_Dept_IdWorker_Joining_DateWorker_CityWorker_Salary
5001ArushSharma10012020-01-02德里20000
5002BulbulRoy10022019-12-31德里38000
5006AvinashSharma10022019-11-11德里28000

SQL 中 NOT 运算符与 LIKE 运算符的组合

我们也可以在 SQL 中将 NOT 运算符与 LIKE 运算符一起使用,以过滤那些不匹配指定模式的值。

NOT 运算符与 LIKE 运算符的语法

NOT 运算符与 LIKE 运算符的示例

示例 1:以下查询显示 worker_Info 表中名字不以 A 开头的工人的记录。

输出

Worker_IdWorker_First_NameWorker_Last_NameWorker_Dept_IdWorker_Joining_DateWorker_CityWorker_Salary
5002BulbulRoy10022019-12-31德里38000
5004SaurabhRoy10012020-10-10孟买45000
5005ShivaniSinghania10012019-07-15加尔各答42000
5007ShyamBesas10032021-06-21勒克瑙35000

示例 2:以下查询不显示 worker_Info 表中城市名以 D 开头并以 i 结尾的工人的记录。

输出

Worker_IdWorker_First_NameWorker_Last_NameWorker_Dept_IdWorker_Joining_DateWorker_CityWorker_Salary
5004SaurabhRoy10012020-10-10孟买45000
5005ShivaniSinghania10012019-07-15加尔各答42000
5007ShyamBesas10032021-06-21勒克瑙35000