C# 数据库查询语句-第4节.过滤数据(2)

本文详细介绍了C#中数据库查询的BETWEEN运算符,用于查找两个值之间的数据,并对比了其与比较运算符的用法。同时讲解了IN运算符,用于查找列表中特定值的数据。接着阐述了LIKE运算符的使用,包括百分比通配符、下划线通配符以及字符列表的匹配。最后讨论了SQL别名的应用,提高查询的可读性和便利性。

C# 数据库查询语句-第4节.过滤数据(2)

作者:陈钰桃
撰写时间:2022 4月27日

第4节.过滤数据(2)
6.Between查找具有两个值之间的值的行
BETWEEN 运算符是一个逻辑运算符,用于指定要测试值的范围。
以下是 BETWEEN 运算符的语法:
column | expression BETWEEN start_expression AND end_expression
可以使用大于或等于( >= )且小于或等于( <= )来替换 BETWEEN 运算符,如下所示
column | expression <= end_expression AND column | expression >= start_expression
使用 BETWEEN 运算符的条件比使用比较运算符 >= , <= 和逻辑运算符AND的条件更具可读性。要取消 BETWEEN 运算符的结果,请使用 NOT BETWEEN 运算符,如下所示:
column | expression NOT BETWEEN start_expression AND end_expresion
A. SQL Server BETWEEN两个数字示例
以下语句查找价格介于 1899 和 1999.99 之间的产品:
SELECT product_id, product_name, category_id, model_year, list_price
FROM production.products
WHERE list_price BETWEEN 1899.00 AND 1999.99
ORDER BY list_price DESC;
*查询结果
在这里插入图片描述

B. SQL Server BETWEEN两个日期示例
以下查询查找客户在2017年1月15日至2017年1月17日期间下的订单:
SELECT order_id, customer_id, order_date, order_status
FROM sales.orders
WHERE order_date BETWEEN ‘20170115’ AND ‘20170117’
ORDER BY order_date;
*查询结果
在这里插入图片描述

  1. IN 查找值列表中具有值的行
    IN 运算符是一个逻辑运算符
    IN 运算符等效于多个 OR 运算符,因此,以下语法是等效的:
    column IN (v1, v2, v3)
    column = v1 OR column = v2 OR column = v3
    要取消 IN 运算符,请使用 NOT IN 运算符,如下所示:
    column | expression NOT IN ( v1, v2, v3, …)
    以下示例使用 IN 运算符查找价格为 299.99 或 466.99 或 489.99 的产品
    SELECT product_id, product_name, category_id, model_year, list_price
    FROM production.products
    WHERE list_price IN (299.99, 369.99, 489.99)
    ORDER BY list_price DESC;
    *查询结果
    在这里插入图片描述

8.Like 查找其值包含字符串的行
SQL Server LIKE 运算符的语法:
… where column | expression [NOT] LIKE pattern [ESCAPE escape_character]
pattern 模式是要在列或表达式中搜索的字符序列。它可以包含以下有效通配符:
通配符百分比( % ):任何零个或多个字符的字符串。
下划线( _ )通配符:任何单个字符。
[list of characters] 通配符:指定集合中的任何单个字符。
[character-character] :指定范围内的任何单个字符。
[^] :不在列表或范围内的任何单个字符。
通配符使 LIKE 运算符比等于( = )和不等于( != )字符串比较运算符更灵活。
转义符:转义字符指示 LIKE 运算符将通配符视为常规字符。转义字符没有默认值,必须仅计算为一个字符。
A. %(百分比)通配符:任意零个或多个字符串
查找姓氏( last_name )以字母 z 开头的客户:
SELECT customer_id, first_name, last_name FROM sales.customers
WHERE last_name LIKE ‘z%’ ORDER BY first_name;
在这里插入图片描述

返回姓氏( last_name )以字符串 er 结尾的客户信息:
SELECT customer_id, first_name, last_name FROM sales.customers
WHERE last_name LIKE ‘%er’ ORDER BY first_name;
在这里插入图片描述

以下示例使用 LIKE 运算符查找名称中包含字符串 Cruiser 的产品:
SELECT product_id, product_name, category_id, model_year, list_price
FROM production.products
WHERE product_name LIKE ‘%Cruiser%’
ORDER BY list_price;
在这里插入图片描述

B. _(下划线)通配符:任意单个字符
下划线代表单个字符。 例如,以下语句返回第二个字符为字母 u 的客户:
SELECT customer_id, first_name, last_name FROM sales.customers
WHERE last_name LIKE ‘_u%’ ORDER BY first_name;
在这里插入图片描述

C. [list of characters]通配符:指定集合中的任何单个字符。
带有字符列表的方括号,例如: [ABC] 表示单个字符,必须是列表中指定的字符之一。
例如,以下查询返回姓氏( last_name )中第一个字符为 Y 或 Z 的客户:
SELECT customer_id, first_name, last_name FROM sales.customers
WHERE last_name LIKE ‘[YZ]%’ ORDER BY last_name;
在这里插入图片描述

D. [character-character]通配符:指定范围内的任何单个字符
具有字符范围的方括号,例如 [A-C] 表示必须在指定范围内的单个字符。
例如,以下查询查找客户,其中姓氏中的第一个字符是范围 A 到 C 中的字母
SELECT customer_id, first_name, last_name FROM sales.customers
WHERE last_name LIKE ‘[A-C]%’ ORDER BY first_name;
在这里插入图片描述

E. [[^]]通配符:不在列表或范围内的任何单个字符
带有插入符号( ^ )后跟范围,例如 [A-C] 或字符列表,例如 [^ABC] 的方括号表示不在指定范围或字符列表中的单个字符。
例如,以下查询返回姓氏中的第一个字符不是范围 A 到 X 中的字母的客户信息:
SELECT customer_id, first_name, last_name FROM sales.customers
WHERE last_name LIKE ‘[^A-X]%’ ORDER BY last_name;
在这里插入图片描述

F. NOT LIKE运算符
以下示例使用 NOT LIKE 运算符查找名字中第一个字符不是字母 A 的客户:
SELECT customer_id, first_name, last_name FROM sales.customers
WHERE first_name NOT LIKE ‘A%’ ORDER BY first_name;
在这里插入图片描述

9.列和表别名
SQL 别名用于为 表 或 表中的列 提供临时名称。
SQL 别名通常用于使 表名 或 列名 更具可读性。
SQL 一个别名只存在于查询期间。
别名使用 AS 关键字赋予。
建议在下列情况下使用别名
查询涉及多个表
用于查询函数
需要把两个或更多的列放在一起
列名长或可读性差
语法:
1、表名的别名语法
SELECT 列名 FROM 表名 AS 别名;
2、列名的别名语法
SELECT 列名 AS 别名 FROM 表名;
3、表名 和 列名 的别名混合使用语法
SELECT 列名 AS 别名 FROM 表名 AS 别名;
示例:
不加别名
select first_name,last_name from sales.customers
where customers.first_name like ‘a%’

表名的别名语法
select first_name,last_name from sales.customers as c
where c.first_name like ‘a%’

字段(列)别名 as 可以省略
select first_name as 姓氏,last_name as 名字 from sales.customers as c
where c.first_name like ‘a%’
order by first_name

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值