SQLServer:《SQL必知必会》一书的读书笔记(四)

第4课 过滤数据

4.1 使用 WHERE 子句:过滤

  只检索所需数据需要指定搜索条件(即过滤条件)。

  WHERE 子句在表名(FROM 子句)后给出,根据 WHERE 子句中指定的条件过滤。

SELECT prod_name, prod_price
FROM Products
WHERE prod_price = 3.49;
--    分析:从 Products 表中检索两个列,只返回 prod_price 值为 3.49 的行

  【提示】SQL 过滤与应用过滤:

    数据也可以在应用层过滤。但是在优化数据库后可以更快速地对数据进行过滤,如果让客户端应用(或开发语言)处理数据库的工作将会极大地影响应用的性能,并且使所创建的应用完全不具备可伸缩性。此外,也可能会导致网络带宽的浪费。

  【注意】WHERE 子句的位置:

    在同时使用 ORDER BY 和 WHERE 子句时,ORDER BY 要位于 WHERE 之后。

4.2 WHERE 子句操作符

--    =====表4-1 WHERE子句操作符=====
--    操作符    说明            操作符    说明
--    =        等于            >        大于
--    <>        不等于        >=        大于等于
--    !=        不等于        !>        不大于
--    <        小于            BETWEEN    在指定的两个值之间
--    <=        小于等于        IS NULL    为NULL值
--    !<        不小于

4.2.1 检查单个值

  列出所有价格小于 10 美元的商品:

SELECT prod_name, prod_price
FROM Products
WHERE prod_price < 10;

  

  检索所有价格小于等于 10 美元的产品:(结果同上图)

SELECT prod_name, prod_price
FROM Products
WHERE prod_price <= 10;

4.2.2 不匹配检查

  列出所有不是供应商 DLL01 制造的产品:

SELECT vend_id, prod_name
FROM Products
WHERE vend_id <> ‘DLL01‘;
--    第二种写法
SELECT vend_id, prod_name
FROM Products
WHERE vend_id != ‘DLL01‘;

4.2.3 范围值检查(BETWEEN)

  检索价格在 5 美元和 10 美元之间的所有产品:

SELECT prod_name, prod_price
FROM Products
WHERE prod_price BETWEEN 5 AND 10

4.2.4 空值检查(NULL)

  在一个列不包含值时,称其包含空值 NULL

  NULL:无值,与字段包含0、空字符串或仅仅包含空格不同

  【注意】确定值是否为 NULL,不能简单地检查是否 =NULL,应该使用 IS NULL

  检索没有电子邮件的顾客:

SELECT cust_name, cust_email
FROM Customers
WHERE cust_email IS NULL

4.3 小结

  • 使用 WHERE 过滤数据
  • 学习检验相等、不等、大于、小于、值的范围及 NULL 值等

续集:

  SQLServer:《SQL必知必会》一书的读书笔记(三)

时间: 2024-11-05 18:22:27

SQLServer:《SQL必知必会》一书的读书笔记(四)的相关文章

《安卓开发必知的50个技巧》读书笔记

记录一下看<安卓开发必知的50个技巧>觉得有用的一下技巧. include标签使用注意事项 如果想在标签中覆盖被包含布局所指定的任何android:layout_*属性,必须在标签中同时指定android:layout_width和android:layout_height属性,我们可以通过指定被包含布局的layout_width和layout_height属性都为0dp,这样做的目的是由被包含布局的使用者在标签中指定layout_width和layout_height属性,如果使用者不指定这

SQLServer:《SQL必知必会》一书的读书笔记(五)

第5课 高级数据过滤 5.1 组合 WHERE 子句 第4课介绍的 WHERE 子句在过滤数据时都是用单一的条件. 5.1.1 AND 操作符 检索由供应商 DLL01 制造且价格小于等于 4 美元的所有产品的名称和价格: SELECT prod_id, prod_price, prod_name FROM Products WHERE vend_id = 'DLL01' AND prod_price <= 4; 5.1.2 OR 操作符 检索任一个指定供应商制造的所有产品的名称和价格: SEL

SQLServer:《SQL必知必会》一书的读书笔记(八)

第8课 使用函数处理数据 8.1 函数 [名词]可移植:所编写的代码可以在多个系统上运行 8.2 使用函数 8.2.1 文本处理函数 例1:使用 UPPER() 函数--将文本转换为大写 SELECT vend_name, UPPER(vend_name) AS vend_name_upcase FROM Vendors ORDER BY vend_name; 常用的文本处理函数: LEFT():返回字符串左边的字符 DATALENGTH():返回字符串的长度 LOWER():将字符串转换为小写

《SQL必知必会》学习笔记二)

<SQL必知必会>学习笔记(二) 咱们接着上一篇的内容继续.这一篇主要回顾子查询,联合查询,复制表这三类内容. 上一部分基本上都是简单的Select查询,即从单个数据库表中检索数据的单条语句,但是实际应用中的业务逻辑往往会非常复杂,所以会用到一些比较复杂的查询,如子查询,联合查询. 1.子查询 当一个查询是另一个查询的条件时,称为子查询.但是说到子查询又不的不说它与嵌套查询两者的区别,下面一张图来说明 下面再用一条sql语句来说明他们的关系. 其中在查询中又分为嵌套子查询和相关子查询,他们之间

走向面试之经典的数据库笔试题:一、你必知必会的SQL语句练习-Part 2

本文是在Cat Qi的参考原帖的基础之上经本人一题一题练习后编辑而成,非原创,仅润色而已.另外,本文所列题目的解法并非只有一种,本文只是给出比较普通的一种而已,也希望各位园友能够自由发挥. 一.书到用时方恨少:"图书-读者-借阅"类题目 1.1 本题目的表结构 本题用到下面三个关系表: CARDS 借书卡. CNO 卡号,NAME 姓名,CLASS 班级 BOOKS 图书. BNO 书号,BNAME 书名,AUTHOR 作者,PRICE 单价,QUANTITY 库存册数 BORROW

《SQL必知必会(第4版)》中英文PDF及代码+《SQL进阶教程》中文PDF及代码 (学习总结)

下载:https://pan.baidu.com/s/1hRb-TS_R-0fnXPodS5OoDg <SQL必知必会(第4版)>高清中文PDF+高清英文PDF+代码 下载:https://pan.baidu.com/s/11-MnDu0khzwO4tiJqHznnA <SQL进阶教程>高清中文PDF+源代码 <SQL必知必会(第4版)>高清中文PDF+高清英文PDF+代码 高清中文PDF,258页,带书签目录,文字可以复制粘贴:高清英文PDF,497页,带书签目录,文

sql必知必会的简单总结

看了sql必知必会,简单总结一下 一基本概念 数据库database:保存有组织数据的一组文件或一个文件 数据库管理系统dbms:有mysql,sql server,access等 表Table:同一类型数据的结构化清单 模式:描述数据在表中如何存储,包含怎样的信息等内容 列:表的一个字段,表由一个和多个字段组成.列都有自己的数据类型,定义了该列可以存储哪些数据种类. 行:表中数据是按行存储的,每一行是一个记录 主键:每一行都应该有一列可以唯一的标识自己.任意两行的主键值不相同,每一行至少有一个

数据库学习之一: 在 Oracle sql developer上运行SQL必知必会脚本

1 首先在开始菜单中打开sql developer: 2. 创建数据库连接 点击左上角的加号 在弹出的对话框中填写用户名和密码 测试如果成功则点击连接,记得角色要写SYSDBA 3. 运行脚本 之后把SQL必知必会的脚本拷到工作表中并点击运行脚本 首先进行表的创建 输入代码: --------------------------------------------- -- Sams Teach Yourself SQL in 10 Minutes -- http://www.forta.com/

《SQL必知必会》学习笔记(一)

<SQL必知必会>学习笔记(一) 下面变列出我新学到的知识. 这个是数据库的全部记录 1.order by   语句: select * from Scores order by name , Score desc 执行结果: ①order by在执行排序功能时,会先对排序字段按abcd这样的顺序进行,汉字的话是按拼音的首字母,默认是正序. ②例子中先按name字段进行正序排序,当name相同时,又按score倒叙排,例如拜仁两条数据,胜的开头字母是s,负的是f,因为是倒叙,所以胜的那条数据排