过滤数据库数据

本文介绍了如何使用SQL语句在数据库中高效地查询数据,包括使用Distinct去除重复项,利用Where字句设置查询条件,结合AND、OR逻辑运算符处理复杂查询,以及使用Between和IN运算符进行范围和列表查找。这些技巧对于处理大量数据时提高查询效率至关重要。
摘要由CSDN通过智能技术生成

在数据库中当我们想要查找某些数据时,我们可以找到数据所在的表,点击编辑前 200 行 或 选择前 1000 行。这样虽然可以找到想要的数据,但如果数据量多了,仅仅通过这种方法来查找数据就会占用我们的大部分时间,而且效率也低。

下面我们就使用 SQL Server 语句 来进行查询。

本章节主要内容:

目录

1.Distinct (去重复)

2.Where 字句

3.AND(与)查找满足两个条件的行

4.OR(或)查找满足任意一个条件的行

5. Between查找两个值之间的值的行

6. IN查找值列表中具有值的行



1.Distinct (去重复)

    在查找数据时,当我们需要查找不重复的数据时,可以使用 Distnct 。

Select Distinct 句检索指定列列表中的唯一不同值,换句话说,它从结果集中删除列中的重复值。

语法:

   

 Select Distinct * from 表名

注:Distinct子句将所有NULL值视为相同的值,只返回一个null。

例:查找客户的不同(唯一)电话号码

   Select Distinct phone From sales.customers

   Order by phone;

在上面示例中phone 是表的列名,sales.customers 是表的名称。

2.Where 字句

Where 字句主要是用来为查询的数据,添加查询条件。

在WHERE子句中,指定搜索条件以过滤FROM子句返回的行。

语法:

Select 字段 from 表名

Where 查询条件

Order by 字段

WHERE子句仅返回导致搜索条件计算为TRUE的行。

搜索条件是逻辑表达式或多个逻辑表达式的组合。

下面我们通过一个例子来理解where 的使用

例:查找编号为520 的同学

Select  userID,studerName,studerID  From  SYS_User

Where  studerID = 520

Order by  studerID desc;

在数据库中where 字句的使用比较常见,在后面我们学习了子查询后,可以对它进行嵌套来查询多个条件。

3.AND(与)查找满足两个条件的行

AND是一个逻辑运算符,用于组合两个布尔表达式,要满足两个条件。

语法:

Select * Form 表名

Where 列名 = ‘…...’ And 列名 = ‘……’

它使用逻辑运算符AND来组合这两个条件。

例:查找学号为 03 且 分数为99 的同学

    Select  sno,studerName,score

    From SYS_SC

Where sno = 03 and score = 99

Order by sno

注:在上面例子中要同时满足两个条件才能返回数据。

4.OR(或)查找满足任意一个条件的行

OR的使用和and的使用方法大致相同,但他在查询数据时只要有满足它的一个条件就能返回数据。

语法:
Select * Form 表名
Where 列名 = ‘…...’ OR 列名 = ‘……’

OR是一个逻辑运算符,用于组合两个布尔表达式

在语句中使用多个逻辑运算符时,SQL Server将在AND运算符之后计算OR运算符。 但是,可以使用括号更改评估顺序。

例:以下查询查找价格大于3000或型号为2018的产品。满足其中一个条件的任何产品都包含在结果集中。

Select  product_name ,list_price,mdoel_year

From production.products

Where list_price > 3000 or model_year = 2018

Order by list_price Desc;

5. Between查找两个值之间的值的行

BETWEEN运算符是一个逻辑运算符,用于指定要测试值的范围。

语法:

Select * from 表名
Where 字段 between ?? And ??
Order by  字段 ;

例:查询50~100之间的值

Select * from student 
where sno between 50 and 100

6. IN查找值列表中具有值的行

IN运算符是一个逻辑运算符。

IN运算符等效于多个OR运算符,因此,以下两条语法是等效的:

column in (v1,v2,v3)
column = v1 or column = v2 or column = v3

要取消IN运算符,请使用NOT IN运算符,如下所示:

column 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;

例:使用 NOT IN 不查找价格为299.99或466.99或489.99的产品

SELECT
   product_id,
   product_name,
   category_id,
   model_year,
   list_price
FROM
   production.products
WHERE
   list_price NOT IN (299.99, 369.99, 489.99)
ORDER BY
   list_price DESC;

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值