SQL中 and or in的用法

1 .SQL IN 运算符


IN运算符允许您在WHERE子句中指定多个值。

IN运算符是多个OR条件的简写。


SELECT "栏位名
FROM "表格名
WHERE "栏位名" IN('值一', '值二', ...)

假设我们有两个表格:

tb_Teachers_info


tb_City_info


然而我们要在tb_Teachers_info中找出所有来自American的教师姓名

SQL语句: select TeachersName from tb_Teachers_info whereCity in('American');

结果:

如果我们要从tb_Teachers_info中找出与tb_City_info中同名教师的TeachersId

SQL 语句: select TeachersId from tb_Teachers_info whereTeachersName in(selectTeachersName from tb_City_info);

结果:


2.SQL BETWEEN 运算符

BETWEEN运算符选择给定范围内的值。值可以是数字,文本或日期。

BETWEEN运算符是包含性的:包括开始和结束值。 

SELECT column_name(s)
FROM table_name
WHERE column_name BETWEEN value1 AND value2;

演示数据库

在本教程中,我们将使用著名的Northwind示例数据库。

以下是"Products"表中的数据:

ProductIDProductNameSupplierIDCategoryIDUnitPrice
1Chais1110 boxes x 20 bags18
2Chang1124 - 12 oz bottles19
3Aniseed Syrup1212 - 550 ml bottles10
4Chef Anton's Cajun Seasoning1248 - 6 oz jars22
5Chef Anton's Gumbo Mix1236 boxes21.35


BETWEEN 运算符实例

以下SQL语句选择价格在10到20之间的所有产品:

实例

SELECT * FROM Products
WHERE Price BETWEEN 10 AND 20;


NOT BETWEEN 操作符实例

要显示前面示例范围之外的产品,请使用NOT BETWEEN:

实例

SELECT * FROM Products
WHERE Price NOT BETWEEN 10 AND 20;


带有 IN 的 BETWEEN 操作符实例

以下SQL语句选择价格在10到20之间但CategoryID不是1、2或3的所有产品:

实例

SELECT * FROM Products
WHERE (Price BETWEEN 10 AND 20)
AND NOT CategoryID IN (1,2,3);


带有文本值的 BETWEEN 操作符实例

以下SQL语句选择所有带有ProductName BETWEEN'Carnarvon Tigers'和'Mozzarella di Giovanni'的产品:

实例

SELECT * FROM Products
WHERE ProductName BETWEEN 'Carnarvon Tigers' AND 'Mozzarella di Giovanni'
ORDER BY ProductName;


带有文本值的 NOT BETWEEN 操作符实例

以下SQL语句选择ProductName不是BETWEEN'Carnarvon Tigers'和'Mozzarella di Giovanni'的所有产品:

实例

SELECT * FROM Products
WHERE ProductName NOT BETWEEN 'Carnarvon Tigers' AND 'Mozzarella di Giovanni'
ORDER BY ProductName;


示例表

下面是选自 "Orders" 表的数据:

OrderIDCustomerIDEmployeeIDOrderDateShipperID
102489057/4/19963
102498167/5/19961
102503447/8/19962
102518437/9/19961
102527647/10/19962


带有日期值的 BETWEEN 操作符实例

以下 SQL 语句选取 OrderDate 介于 '04-July-1996' 和 '09-July-1996' 之间的所有订单:

实例

SELECT * FROM Orders
WHERE OrderDate BETWEEN #07/04/1996# AND #07/09/1996#;

SQL OR 运算符

WHERE子句可以与OR运算符结合使用。

OR运算符用于根据多个条件筛选记录:

  • 如果由OR分隔的任何条件为真,则OR运算符显示记录。
OR语法
SELECT column1, column2, ...
FROM table_name
WHERE condition1 OR condition2 OR condition3 ...;

OR 运算符实例

以下SQL语句选择城市为“Berlin”或“München”的“Customers”的所有字段:

实例

SELECT * FROM Customers
WHERE City='Berlin' OR City='München';
  • 6
    点赞
  • 49
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
引用\[1\]: 一个 IN 只能对一个字段进行范围比对,如果要指定更多字段,可以使用 AND 或 OR 逻辑运算符: SELECT * FROM user WHERE uid IN(1,2) OR username IN('admin','5idev') 使用 AND 或 OR 逻辑运算符后,IN 还可以和其他如 LIKE、>=、= 等运算符一起使用。\[1\] 引用\[2\]: 通常在写SQL语句我们时不时就会用到between或者in,或者两者组合在一起,between的运算符用于 WHERE 表达式,选取介于两个值之间的数据范围。BETWEEN 同AND 一起搭配使用;in的运算符用于WHERE表达式,以列表项的形式支持多个选择。\[2\] 引用\[3\]: 同事写了一条SQL语句,我一看,哦买糕的,居然用了4层嵌套的in。 SELECT * FROM "publicDB"."system_action" WHERE ACTION_ID IN( SELECT ACTION_ID FROM "publicDB"."system_action_role" WHERE ROLE_ID IN ( SELECT ROLE_ID FROM "publicDB".base_role_user WHERE USER_ID IN(SELECT USER_ID FROM "publicDB"."base_user" WHERE USER_NAME='huxin'))) 。\[3\] 问题: sql语句in 或者or 运算符的用法和区别是什么? 回答: 在SQL语句,IN和OR运算符都用于WHERE表达式,用于选择满足特定条件的数据。不同之处在于它们的使用方式和逻辑。IN运算符用于以列表项的形式支持多个选择,可以对一个字段进行范围比对,也可以与其他运算符如LIKE、>=、=等一起使用。例如,可以使用IN运算符选择uid为1或2的用户,或者选择username为'admin'或'5idev'的用户。而OR运算符用于逻辑运算,可以将多个条件组合在一起,满足其任意一个条件即可。例如,可以使用OR运算符选择uid为1或2的用户,或者选择username为'admin'或'5idev'的用户。\[1\] \[2\] #### 引用[.reference_title] - *1* *2* [Sql语句between与in的用法详解](https://blog.csdn.net/m0_70059366/article/details/127890123)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] - *3* [为什么说SQL语句使用IN性能不高?](https://blog.csdn.net/leftfist/article/details/121081056)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

香煎三文鱼

你的鼓励将是我创作的最大动力!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值