【SQL】6 SQL WHERE 子句

2023-11-19

WHERE 子句用于过滤记录。


SQL WHERE 子句

WHERE 子句用于提取那些满足指定标准的记录。

SQL WHERE 语法

SELECT column_name,column_name
FROM table_name
WHERE column_name operator value;

 


演示数据库

在本教程中,我们将使用 RUNOOB 样本数据库。

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

+----+--------------+---------------------------+-------+---------+
| id | name         | url                       | alexa | country |
+----+--------------+---------------------------+-------+---------+
| 1  | Google       | https://www.google.cm/    | 1     | USA     |
| 2  | 淘宝          | https://www.taobao.com/   | 13    | CN      |
| 3  | 菜鸟教程      | http://www.runoob.com/    | 4689  | CN      |
| 4  | 微博          | http://weibo.com/         | 20    | CN      |
| 5  | Facebook     | https://www.facebook.com/ | 3     | USA     |
+----+--------------+---------------------------+-------+---------+

 


WHERE 子句实例

下面的 SQL 语句从 "Websites" 表中选取国家为 "CN" 的所有网站:

实例

SELECT * FROM Websites WHERE country='CN';

执行输出结果:

 


文本字段 vs. 数值字段

SQL 使用单引号来环绕文本值(大部分数据库系统也接受双引号)。

在上个实例中 'CN' 文本字段使用了单引号。

如果是数值字段,请不要使用引号。

实例

SELECT * FROM Websites WHERE id=1;

执行输出结果:

 


WHERE 子句中的运算符

下面的运算符可以在 WHERE 子句中使用:

运算符 描述
= 等于
<> 不等于。注释:在 SQL 的一些版本中,该操作符可被写成 !=
> 大于
< 小于
>= 大于等于
<= 小于等于
BETWEEN 在某个范围内
LIKE 搜索某种模式
IN 指定针对某个列的多个可能值

 


  1. Where 子句

    搜索 empno 等于 7900 的数据:

    Select * from emp where empno=7900;

    Where +条件(筛选行)

    条件:列,比较运算符,值

    比较运算符包涵:= > < >= ,<=, !=,<> 表示(不等于)

    Select * from emp where ename='SMITH';

    例子中的 SMITH 用单引号引起来,表示是字符串,字符串要区分大小写。

    逻辑运算

    And:与 同时满足两个条件的值。

    Select * from emp where sal > 2000 and sal < 3000;

    查询 EMP 表中 SAL 列中大于 2000 小于 3000 的值。

    Or:或 满足其中一个条件的值

    Select * from emp where sal > 2000 or comm > 500;

    查询 emp 表中 SAL 大于 2000 或 COMM 大于500的值。

    Not:非 满足不包含该条件的值。

    select * from emp where not sal > 1500;

    查询EMP表中 sal 小于等于 1500 的值。

    逻辑运算的优先级:

    ()    not        and         or

     

    特殊条件

    1.空值判断: is null

    Select * from emp where comm is null;

    查询 emp 表中 comm 列中的空值。

    2.between and (在 之间的值)

    Select * from emp where sal between 1500 and 3000;

    查询 emp 表中 SAL 列中大于 1500 的小于 3000 的值。

    注意:大于等于 1500 且小于等于 3000, 1500 为下限,3000 为上限,下限在前,上限在后,查询的范围包涵有上下限的值。

    3.In

    Select * from emp where sal in (5000,3000,1500);

    查询 EMP 表 SAL 列中等于 5000,3000,1500 的值。

    4.like

    Like模糊查询

    Select * from emp where ename like 'M%';

    查询 EMP 表中 Ename 列中有 M 的值,M 为要查询内容中的模糊信息。

    •  % 表示多个字值,_ 下划线表示一个字符;
    •  M% : 为能配符,正则表达式,表示的意思为模糊查询信息为 M 开头的。
    •  %M% : 表示查询包含M的所有内容。
    •  %M_ : 表示查询以M在倒数第二位的所有内容。
    tin

       tin

      cxt***qq.com

    1年前 (2017-03-06)
  2.    张耘翡

      869***43@qq.com

    不带比较运算符的 WHERE 子句:

    WHERE子句并不一定带比较运算符,当不带运算符时,会执行一个隐式转换。当0时转化为 false,当其他值是转化为true。例如:

    SELECT studentNO FROM student WHERE 0

    则会返回一个空集,因为每一行记录WHERE都返回false。

    SELECT  studentNO  FROM student WHERE 1

    或者

    SELECT studentNO FROM student WHERE 'abc'

    都将返回student表所有行记录的studentNO列。因为每一行记录WHERE都返回true。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

【SQL】6 SQL WHERE 子句 的相关文章

  • 如何使用内联 SQL 参数化 IN 语句的集合? [复制]

    这个问题在这里已经有答案了 可能的重复 参数化 SQL IN 子句 https stackoverflow com questions 337704 parameterizing a sql in clause 你好 我有一个查询 如下所示
  • 对带有空白 NVARCHAR 或 NULL 检查的 VARCHAR 索引进行 Count(*) 会导致返回的行数加倍

    我有一张桌子 上面有VARCHAR列及其上的索引 每当一个SELECT COUNT 是在这张表上完成的 该表检查了COLUMN N OR COLUMN IS NULL它返回双倍的行数 SELECT 与相同的where子句将返回正确的记录数
  • SELECT DISTINCT HAVING 计算唯一条件

    我已经搜索过这个问题的答案 但找不到如何根据条件获取这个不同的记录集 我有一个包含以下示例数据的表 Type Color Location Supplier Apple Green New York ABC Apple Green New
  • 如何将列中的天数添加到 DB2 中的当前日期?

    我正在编写此 SQL 来动态计算一定的天数 如下所示 但我不知道如何让它工作 因为我不断收到错误 select Current Date Dynamic numbr of days calculation here from TableNa
  • db2中如何删除所有非数字字母

    我在 DATA 列 varchar 中有一些数据 如下所示 Nowshak 7 485 m Maja e Korabit Golem Korab 2 764 m Tahat 3 003 m Morro de Moco 2 620 m Cer
  • MySQL 跨表计数(*) 查询帮助

    SELECT name COUNT AS count FROM t1 t2 WHERE t2 id t1 id GROUP BY t2 id 我想从 t1 获取名称以及 t2 中 id 与 t1 相同的行数 到目前为止我已经得到了上面的内容
  • 在 SQL Server 中通过标准差消除异常值

    我试图通过标准差消除 SQL Server 2008 中的异常值 我只想要特定列中包含该列平均值的 1 标准差范围内的值的记录 我怎样才能做到这一点 如果您假设事件呈钟形曲线分布 则只有 68 的值与平均值相差 1 个标准差以内 95 的值
  • SQL Server 中的嵌套事务

    sql server 允许嵌套事务吗 如果是的话那么交易的优先级是什么 来自 SQL Server 上的 MSDN 文档 嵌套交易 http msdn microsoft com en us library ms189336 SQL 90
  • MySQL 最佳实践:SELECT 子递归尽可能提高性能?

    我想选择一个根项目及其子项 使其性能尽可能高 我更喜欢使用嵌套集模型 但这次表结构遵循邻接模型 有关嵌套集和邻接模型的更多信息 http mikehillyer com articles managing hierarchical data
  • 如何根据条件删除结果以计算平均值

    我有下面的架构 对其的快速解释是 鲍勃评分为 5 5 詹姆斯评分 1 5 梅西百货评分高达 5 5 逻辑 如果我是 A 请查找我屏蔽的所有人 查阅所有电影评论 任何留下电影评论且 personA 已屏蔽的人 请将其从计算中删除 计算电影的平
  • 从 json 数组获取值并执行 sql 插入

    这是我的数组 json 1 Device ID a9a3346be4375a92 Date 2012 05 31 Time 15 22 59 Latitude 51 4972912 Longitude 0 1108178 2 Device
  • 在 azure Devops 管道中部署 SQL 时遇到错误

    我在 azure Devops 的发布管道中使用 sql DACPAC 类型的部署 但出现以下错误 我对 SQL 不了解 有什么建议吗 Publishing to database database name on server Serve
  • Postgresql 串行错误自动增量

    我在 postgresql 上遇到问题 我认为 postgresql 中有一个错误 我错误地实现了一些东西 有一个表包括colmn1 primary key colmn2 unique colmn3 插入一行后 如果我尝试使用现有的另一次插
  • 如何搜索表中的所有列?

    如何在 SQL Server 中搜索表的所有列 SELECT FROM yourtable WHERE val IN field1 field2 field3 field4 如果您正在寻找精确的全场比赛 如果你正在寻找子字符串匹配 你将不得
  • 与 SQL 中的 IN 运算符相反

    我怎么能做相反的事情 换句话说 选择所有姓氏不是 Hansen 或 Pettersen 的人 WHERE lastname NOT IN Hansen Pettersen 请参阅 IN 和 NOT IN 运算符 部分SQLite 所理解的
  • 如何将彼此“接近”的纬度/经度点分组?

    我有一个用户提交的纬度 经度点的数据库 并且正在尝试将 接近 点分组在一起 接近 是相对的 但目前看来约为 500 英尺 起初 我似乎只能按前 3 个小数位具有相同纬度 经度的行进行分组 大约是一个 300x300 的盒子 了解当您远离赤道
  • SQL Server Like 查询不区分大小写

    Query SELECT from Table 2 WHERE name like Joe Output 1 100 Joe 2 200 JOE 3 300 jOE 4 400 joe 为什么不区分大小写 Problem 查询不区分大小写
  • Oracle 按月滚动或运行总计

    目标 每个月末所有报表的滚动 运行总计 Code select TRUNC ACTHX STMT HX STMT DATE MM AS MNTH COUNT ACTHX INVOICE as STMTS from ACTHX group b
  • 创建日期范围表

    我正在编写一份需要显示每天值的报告 我有查询的开始日期和结束日期 但我希望避免丢失日期 以防表不包含特定日期的值 我正在考虑创建一个基本日期范围表 其中包含开始和结束之间的所有日期 然后将其与数据表左连接以显示每一天的值 我找到了一些适用于
  • 最近邻居的 Postgis SQL

    我正在尝试计算最近的邻居 为此 我需要传递一个参数来限制与邻居的最大距离 例如 半径1000米内最近的邻居是哪些 我做了以下事情 我用数据创建了表 id name latitude longitude 之后 我执行了以下查询 SELECT

随机推荐

  • 40个学术网站

    40个学术网站 满足你的科研需求 2018 03 06 美国留学那点事 文 中外学术情报 微信号 Academic Information 科研工作者每天日常莫过于看文献 做实验 写论文 人生最郁闷的事情不过于是导师说 那个XX 帮我下载下
  • java secretkey用法_Java SecretKeyFactory.generateSecret方法代码示例

    本文整理汇总了Java中javax crypto SecretKeyFactory generateSecret方法的典型用法代码示例 如果您正苦于以下问题 Java SecretKeyFactory generateSecret方法的具体
  • Rust- 类型转换

    Rust is a statically typed language which means that it emphasizes on knowing the types of all variables at compile time
  • Python全栈开发【基础-05】基本数据类型

    专栏介绍 本专栏为Python全栈开发系列文章 技术包括Python基础 函数 文件 面向对象 网络编程 并发编程 MySQL数据库 HTML JavaScript CSS JQuery bootstrap WSGI Django Flas
  • LeetCode 124. 二叉树中的最大路径和 Python

    给定一个非空二叉树 返回其最大路径和 本题中 路径被定义为一条从树中任意节点出发 达到任意节点的序列 该路径至少包含一个节点 且不一定经过根节点 示例 1 输入 1 2 3 1 2 3 输出 6 示例 2 输入 10 9 20 null n
  • n-gram模型中的平滑方法

    当使用n gram模型对测试语料中的句子进行评估时 如果句子中包含在训练集中未出现的n元语法 则计算出来句子出现的概率为0 例如上一篇博客语言模型和n元语法中的例子 此时用该模型来计算下面句子的概率 因此 必须分配给所有可能出现的字符串一个
  • 关于Vue.js和React.js,听听国外的开发者怎么说?

    VueJS 与 ReactJS 到底怎么样如何 听听别人怎么说 使用所有新的库和框架 很难跟上所有这些库和框架 也就是说 这就需要您决定哪些是值得花时间的 让我们看看人们说什么 和Vue JS一起工作是很愉快的 我发现学习曲线很浅 然而 这
  • 【LeetCode75】第五十九题 第N个泰波那契数

    目录 题目 示例 分析 代码 题目 示例 分析 题目顾名思义 让我们求出第N个泰波那契数 也就是除了开头三个数之外 第四个数开始就是等于前三个数之和 不要和斐波那契数弄混了 斐波那契是前两个数的和 泰波那契是前三个数的和 也就是说当前数 我
  • docker容器内修改文件

    1 找到容器对应的ID 使用docker ps命令找到对应的镜像id 2 根据容器id进入到对应文件夹 执行命令 docker exec it 镜像id bin bash 3 进入对应目录 以MySQL为例 执行命令cd etc mysql
  • HTML学习

    HTML 我的第一个网页 基本标签 图片标签 链接标签 列表 表格 媒体元素 页面结构分析 iframe内联框架 表单 我的第一个网页
  • Hystrix 简单请求合并

    频繁的调用provider接太浪费了 就有了将多个请求合并为一个请求的方式 首先在provider中提供一个请求合并的接口 RestController public class UserController 既可以处理多个 也可以处理单个
  • elk之查询(单个或多个)type所有数据,条件查询,分页查询,排序

    java连接es 1 接口 查询 单个或多个 type所有数据 条件查询 分页查询 排序 param client param indexName param typeName public void searchAllStudent Tr
  • 服务计算hw7

    任务目标 设计一个 web 小应用 展示静态文件服务 js 请求支持 模板输出 表单处理 Filter 中间件设计等方面的能力 不需要数据库支持 基本要求 支持静态文件服务 支持简单 js 访问 提交表单 并输出一个表格 对 unknown
  • 服务器乱码专栏问题一:String.getBytes()获取值乱码

    本文建议阅读时长 15mins 前记 最近笔者工作比较繁忙 导致本来应该有很多博客需要填坑 一直也没有静下心来好好整理下 今天蹭着夜深人静加之阵阵柔和的轻音乐正好先写上一篇 也算是为自己乱码专栏开个头 当然本专栏主要解决Tomcat服务器以
  • 『虫无涯→_→读书推荐02期』|全面系统的〖Effective软件测试〗带你完成所有不同类型的测试,GO

    目录 我看的书 我的书评 推荐理由 书籍的作者 书籍内容 赠书活动 我看的书 首次看到这本书的封面的时候 我被那个数字惊呆了 助理软件研发提升10倍质量 这对我产生了足够了吸引力 因为这个数字是非常的客观的 至于书籍内容 大家别急 且听我慢
  • QPainter::setPen: Painter not active 解决方案

    今天在写代码的时候用到QPainter在窗口中绘制一些图形 出现错误 QPainter setPen Painter not active 百度上搜了也问了chatGPT没有很好的答案 无奈只好打开Qt API找问题 在Qt 文档中发现如下
  • Kerberos

    kerberos身份认证过程 第一步 账号和KDC互相认证 账号A向KDC证明自己的身份 1 账号A首先会把自己的密码hash 得到一把秘钥Kclt 2 Kclt会把当前的时间戳加密 生成一个字符串 使用 时间戳 Kclt来表示 3 将生成
  • SpringBoot打包docker镜像发布

    1 首先构建一个SpringBoot项目 只需要添加web依赖 2 编写一个controller用于测试 3 本机启动观察是否能够成功访问 4 打包 5 找到生成的jar包位置 6 jar包的启动运行测试 7 编写Dockerfile文件
  • 游戏服务器内存修改,修改游戏服务器内存

    修改游戏服务器内存 内容精选 换一换 实例支持自动化发放裸金属服务器 远程Console登录 支持租户自主管理裸金属服务器生命周期 查询 启动 关机 重启 删除 导出服务器列表 将租户名下的所有裸金属服务器信息 以CSV文件的形式导出至本地
  • 【SQL】6 SQL WHERE 子句

    WHERE 子句用于过滤记录 SQL WHERE 子句 WHERE 子句用于提取那些满足指定标准的记录 SQL WHERE 语法 SELECT column name column name FROM table name WHERE co