MySQL - NOT 操作符
你好啊,未来的数据库大师们!今天,我们将要深入MySQL NOT操作符的神奇世界。如果你是新手,不用担心——我会作为你的友好向导,带领你完成这次冒险,到了最后,你将会像一个专业人士一样熟练使用NOT操作符!
MySQL NOT 操作符
NOT操作符就像是MySQL世界的叛逆者。它关于否定,颠覆事物,并对条件说“不”。想象你是一名老师(就像我一样!),你想找到所有没有提交作业的学生。这时NOT就派上用场了!
让我们从一个简单的例子开始:
SELECT * FROM students WHERE NOT grade = 'A';
这个查询会获取所有没有得到A的学生。就像说:“展示给我除了A学生以外的所有人。”很酷吧?
下面是另一个例子:
SELECT * FROM products WHERE NOT price > 100;
这个查询会给我们所有不超过100美元的产品。这是一种狡猾的说法,意思是“展示给我100美元或以下的产品。”
NOT 与 IN 操作符结合
现在,让我们升级一下,将NOT与IN操作符结合起来。IN操作符就像是一个VIP名单,而NOT IN则是说“名单上没有的每个人”。
SELECT * FROM fruits WHERE name NOT IN ('apple', 'banana', 'orange');
这个查询会显示除了苹果、香蕉和橙子之外的所有水果。就像有一个水果碗,然后挑出不是那三种水果的所有东西。
NOT 与 IS NULL 操作符结合
数据库中的NULL值就像幽灵一样——它们在那里,但又不在。NOT IS NULL操作符帮助我们找到所有非幽灵值。
SELECT * FROM customers WHERE phone_number IS NOT NULL;
这个查询会找到所有提供了电话号码的客户。就像是喊出“Marco!”然后等待那些能回应“Polo!”的人。
NOT 与 LIKE 操作符结合
LIKE操作符用于模式匹配,而NOT LIKE是它的淘气双胞胎。它非常适合用于查找不符合特定模式的事物。
SELECT * FROM books WHERE title NOT LIKE 'The%';
这个查询会找到所有标题不是以“The”开头的书籍。就像是整理书架,把所有以“The”开头的书放在一边,其余的放在另一边。
NOT 与 BETWEEN 操作符结合
BETWEEN帮助我们找到范围内的值,而NOT BETWEEN则相反。就像设置一个“儿童专属”区域,然后找到所有不允许进入的人。
SELECT * FROM employees WHERE age NOT BETWEEN 25 AND 35;
这个查询会找到所有年龄小于25岁或大于35岁的员工。这是分割数据的好方法!
NOT 与 UPDATE 语句结合
NOT操作符不仅用于SELECT语句。我们也可以在UPDATE语句中使用它!让我们看一个例子:
UPDATE inventory SET in_stock = 0 WHERE NOT product_id IN (101, 102, 103);
这个查询更新库存,将所有产品设置为缺货,除了产品ID为101、102和103的产品。就像是清空你的商店,但保留几个特殊物品。
NOT 与 DELETE 语句结合
我们也可以在DELETE语句中使用NOT。使用这个时要小心——它很强大!
DELETE FROM old_records WHERE NOT date_created > '2020-01-01';
这个会删除所有在2020年之前创建的记录。就像是进行一次大清理,只保留较新的东西。
在客户端程序中使用 NOT 操作符
现在,让我们看看如何在客户端程序中使用NOT操作符。这里有一个简单的Python例子,使用MySQL连接器:
import mysql.connector
# 连接到数据库
cnx = mysql.connector.connect(user='your_username', password='your_password',
host='127.0.0.1', database='your_database')
cursor = cnx.cursor()
# 执行一个带有NOT的查询
query = "SELECT * FROM students WHERE NOT grade = 'F'"
cursor.execute(query)
# 获取并打印结果
for (id, name, grade) in cursor:
print(f"学生 {id}: {name} - 成绩: {grade}")
# 关闭连接
cursor.close()
cnx.close()
这个脚本连接到一个MySQL数据库,运行一个查询来找到所有没有得到F的学生,并打印出他们的信息。就像是报告卡日,但只针对那些通过考试的学生!
就这样,伙计们!你们刚刚完成了MySQL NOT操作符的旋风之旅。记住,在数据库的世界里,有时候知道你不需要什么和需要什么是同样重要的。NOT操作符在这些情况下是你的忠实助手。
继续练习,保持好奇心,在你意识到之前,你将能够像专业人士一样在数据库中熟练使用NOT操作符!快乐查询!
操作符组合 | 示例 | 描述 |
---|---|---|
NOT | WHERE NOT condition |
否定一个条件 |
NOT IN | WHERE column NOT IN (value1, value2, ...) |
排除指定的值 |
IS NOT NULL | WHERE column IS NOT NULL |
查找非空值 |
NOT LIKE | WHERE column NOT LIKE pattern |
排除匹配模式的值 |
NOT BETWEEN | WHERE column NOT BETWEEN value1 AND value2 |
排除范围内的值 |
Credits: Image by storyset