相册模版网站图片展示,网站建设实施计划书,网站编辑用什么软件,网页编辑打印工具SQL中的IN运算符
IN运算符允许您在WHERE子句中指定多个值#xff0c;它是多个OR条件的简写。
示例#xff1a;获取您自己的SQL Server
返回所有来自’Germany’、France’或’UK’的客户#xff1a;
SELECT * FROM Customers
WHERE Country IN (Germany, France, UK);语…SQL中的IN运算符
IN运算符允许您在WHERE子句中指定多个值它是多个OR条件的简写。
示例获取您自己的SQL Server
返回所有来自’Germany’、France’或’UK’的客户
SELECT * FROM Customers
WHERE Country IN (Germany, France, UK);语法
SELECT column_name(s)
FROM table_name
WHERE column_name IN (value1, value2, ...);演示数据库
以下是示例中使用的Customers表的部分选择
CustomerIDCustomerNameContactNameAddressCityPostalCodeCountry1Alfreds FutterkisteMaria AndersObere Str. 57Berlin12209Germany2Ana Trujillo Emparedados y heladosAna TrujilloAvda. de la Constitución 2222México D.F.05021Mexico3Antonio Moreno TaqueríaAntonio MorenoMataderos 2312México D.F.05023Mexico4Around the HornThomas Hardy120 Hanover Sq.LondonWA1 1DPUK5Berglunds snabbköpChristina BerglundBerguvsvägen 8LuleåS-958 22Sweden
NOT IN
通过在IN运算符前使用NOT关键字您可以返回列表中任何值都不是的所有记录。
示例返回所有不来自’Germany’、France’或’UK’的客户
SELECT * FROM Customers
WHERE Country NOT IN (Germany, France, UK);INSELECT
您还可以在WHERE子句中使用带有子查询的IN。使用子查询您可以返回主查询结果中存在于子查询结果中的所有记录。
示例返回所有在Orders表中有订单的客户
SELECT * FROM Customers
WHERE CustomerID IN (SELECT CustomerID FROM Orders);NOT INSELECT
上面的示例返回了74条记录这意味着有17个客户没有下过任何订单。让我们使用NOT IN运算符来验证是否正确。
示例返回在Orders表中没有下过订单的所有客户
SELECT * FROM Customers
WHERE CustomerID NOT IN (SELECT CustomerID FROM Orders);通过练习测试自己
练习 使用IN运算符选择所有Country为Norway或France的记录。
SELECT * FROM YourTableName
WHERE Country IN (Norway, France);SQL BETWEEN运算符
BETWEEN运算符用于选择给定范围内的值可以是数字、文本或日期。这是一个包容性的运算符包括开始和结束值。
示例获取您自己的SQL Server
选择所有价格在10和20之间的产品
SELECT * FROM Products
WHERE Price BETWEEN 10 AND 20;语法
SELECT column_name(s)
FROM table_name
WHERE column_name BETWEEN value1 AND value2;演示数据库
以下是示例中使用的Products表的部分选择
ProductIDProductNameSupplierIDCategoryIDUnitPrice1Chais1110 boxes x 20 bags182Chang1124 - 12 oz bottles193Aniseed Syrup1212 - 550 ml bottles104Chef Anton’s Cajun Seasoning2248 - 6 oz jars225Chef Anton’s Gumbo Mix2236 boxes21.35
NOT BETWEEN
要显示在前面示例范围之外的产品请使用NOT BETWEEN
示例
SELECT * FROM Products
WHERE Price NOT BETWEEN 10 AND 20;BETWEEN与IN结合使用
以下SQL语句选择所有价格在10和20之间的产品。此外CategoryID必须是1、2或3
示例
SELECT * FROM Products
WHERE Price BETWEEN 10 AND 20
AND CategoryID IN (1,2,3);BETWEEN文本值
以下SQL语句选择所有ProductName在’Carnarvon Tigers’和’Mozzarella di Giovanni’之间的产品
示例
SELECT * FROM Products
WHERE ProductName BETWEEN Carnarvon Tigers AND Mozzarella di Giovanni
ORDER BY ProductName;以下SQL语句选择所有ProductName在’Carnarvon Tigers’和’Chef Anton’s Cajun Seasoning’之间的产品
示例
SELECT * FROM Products
WHERE ProductName BETWEEN Carnarvon Tigers AND Chef Antons Cajun Seasoning
ORDER BY ProductName;NOT BETWEEN文本值
以下SQL语句选择所有ProductName不在’Carnarvon Tigers’和’Mozzarella di Giovanni’之间的产品
示例
SELECT * FROM Products
WHERE ProductName NOT BETWEEN Carnarvon Tigers AND Mozzarella di Giovanni
ORDER BY ProductName;BETWEEN日期
以下SQL语句选择所有OrderDate在’01-July-1996’和’31-July-1996’之间的订单
示例
SELECT * FROM Orders
WHERE OrderDate BETWEEN #07/01/1996# AND #07/31/1996#;或者
SELECT * FROM Orders
WHERE OrderDate BETWEEN 1996-07-01 AND 1996-07-31;示例表
以下是示例中使用的Orders表的部分选择
OrderIDCustomerIDEmployeeIDOrderDateShipperID102489057/4/19963102498167/5/19961102503447/8/19962102518437/9/19961102527647/10/19962
SQL别名
SQL别名用于为表或表中的列提供临时名称通常用于使列名更易读。别名仅在查询的持续时间内存在使用AS关键字创建别名。
示例获取您自己的SQL Server
SELECT CustomerID AS ID
FROM Customers;AS是可选的
实际上在大多数数据库语言中您可以省略AS关键字并获得相同的结果
SELECT CustomerID ID
FROM Customers;语法
在列上使用别名时
SELECT column_name AS alias_name
FROM table_name;在表上使用别名时
SELECT column_name(s)
FROM table_name AS alias_name;演示数据库
以下是示例中使用的Customers和Orders表的部分选择
Customers表
CustomerIDCustomerNameContactNameAddressCityPostalCodeCountry1Alfreds FutterkisteMaria AndersObere Str. 57Berlin12209Germany2Ana Trujillo Emparedados y heladosAna TrujilloAvda. de la Constitución 2222México D.F.05021Mexico3Antonio Moreno TaqueríaAntonio MorenoMataderos 2312México D.F.05023Mexico
Orders表
OrderIDCustomerIDEmployeeIDOrderDateShipperID102489057/4/19963102498167/5/19961102503447/8/19962
列的别名
以下SQL语句为CustomerID列创建两个别名一个是ID另一个是CustomerName
SELECT CustomerID AS ID, CustomerName AS Customer
FROM Customers;在使用空格字符的别名中使用别名
如果要使别名包含一个或多个空格比如My Great Products请用方括号或双引号括起别名。
使用方括号括起带有空格字符的别名的示例
SELECT ProductName AS [My Great Products]
FROM Products;使用双引号括起带有空格字符的别名的示例
SELECT ProductName AS My Great Products
FROM Products;注意某些数据库系统允许使用方括号和双引号而有些只允许其中之一。
连接列
以下SQL语句创建一个名为Address的别名该别名组合了四列Address、PostalCode、City和Country
SELECT CustomerName, Address , PostalCode City , Country AS Address
FROM Customers;注意要使MySQL中的上述SQL语句工作请使用以下内容
SELECT CustomerName, CONCAT(Address,, ,PostalCode,, ,City,, ,Country) AS Address
FROM Customers;注意要使Oracle中的上述SQL语句工作请使用以下内容
SELECT CustomerName, (Address || , || PostalCode || || City || , || Country) AS Address
FROM Customers;表的别名
当您想要为表使用别名时适用相同的规则。
将Customers表称为Persons
SELECT * FROM Customers AS Persons;在表的查询中使用两个表别名时可能会显得没用但是当您在查询中使用多个表时可以使SQL语句更短。
以下SQL语句选择所有CustomerID为4Around the Horn的客户的订单。我们使用Customers和Orders表并分别给它们命名为c和o
SELECT o.OrderID, o.OrderDate, c.CustomerName
FROM Customers AS c, Orders AS o
WHERE c.CustomerNameAround the Horn AND c.CustomerIDo.CustomerID;以下SQL语句与上面相同但没有别名
SELECT Orders.OrderID, Orders.OrderDate, Customers.CustomerName
FROM Customers, Orders
WHERE Customers.CustomerNameAround the Horn AND Customers.CustomerIDOrders.CustomerID;当
查询涉及多个表查询中使用函数列名较大或不太易读两个或更多列合并在一起时
别名可能很有用。
最后
为了方便其他设备和平台的小伙伴观看往期文章公众号搜索Let us Coding或者扫描下方二维码关注公众号即可获取最新文章。
看完如果觉得有帮助欢迎点赞、收藏和关注