SQL 第五章 (IN, BETWEEN, LIKE运算符)

  • 🚀上一章练习答案

题目:查询sql_store数据库下的orders表,要求非comments字段不能为NULL,或者order_date大于2018年1月1日,并且status等于1的所有列数据。并使用小括弧给出翻译运行的顺序。

SELECT *
FROM sql_store.orders as o
WHERE NOT (o.comments IS NULL OR o.order_date > '2018-1-1' AND o.`status` = 1)

-- 翻译后:
SELECT *
FROM sql_store.orders as o
WHERE NOT ((o.comments IS NULL) OR (o.order_date > '2018-1-1' AND o.`status` = 1))

IN, BETWEEN, LIKE运算符

本节将演示INBETWEENLIKE三个运算符的使用场景,以及它们的用法。

IN

IN表示一个值是否在一个集合里面。

查询出sql_store数据库中customers表里面state列数据为CA或者FL或者VA的所有数据。

-- 结合之前所学,你可能使用OR
SELECT * 
FROM sql_store.customers AS c 
WHERE c.state = 'CA' OR c.state = 'FL' OR c.state = 'VA';

-- 使用IN运算符
SELECT * 
FROM sql_store.customers AS c 
WHERE c.state IN ( "CA", "FL", "VA" );

-- 结合NOT,则是表示不在这个集合里面
SELECT * 
FROM sql_store.customers AS c 
WHERE c.state NOT IN ( "CA", "FL", "VA" );

效果图

BETWEEN

BETWEEN表示在两个值之间,可以规定一个区间,如:[50, 100],是包含50和100的喔。

查询出sql_store数据库中customers表里面birth_date列1970年1月1日到2000年1月1日的数据。

-- 结合此前学的知识,你可以使用AND实现
SELECT *
FROM sql_store.customers AS c
WHERE c.birth_date > '1970-1-1' AND c.birth_date < '2000-1-1';

-- 巧了,使用BETWEEN也需要结合AND
SELECT *
FROM sql_store.customers AS c
WHERE c.birth_date BETWEEN '1970-1-1' AND '2000-1-1';

-- 加入NOT表示不在这个区间内的数据
SELECT *
FROM sql_store.customers AS c
WHERE c.birth_date NOT BETWEEN '1970-1-1' AND '2000-1-1';

效果图

LIKE

LIKE表示模糊查询,你可以使用%_符号来分别占位信息。%表示N个字符,_表示单个字符。

  • 查询出sql_store数据库中customers表里面last_name中首字母为R的数据。
-- 注意,在Windows下,MySQL中查询值是不区分大小写的
SELECT *
FROM sql_store.customers AS c
WHERE c.last_name LIKE "r%";  

-- 加入NOT,表示查询非r为首字母的数据
SELECT *
FROM sql_store.customers AS c
WHERE c.last_name NOT LIKE "r%";  

效果图

  • 查询出sql_store数据库中customers表里面last_name中末尾字符为y的数据。
SELECT *
FROM sql_store.customers AS c
WHERE c.last_name LIKE "%y";  

效果图

  • 查询出sql_store数据库中customers表里面last_name中第三个字符为s,且不限字符长度的数据。
SELECT *
FROM sql_store.customers AS c
WHERE c.last_name LIKE "__s%";

效果图

练习

以上的三个运算符是比较简单的,相信同学们可以举一反三,多练习即可掌握用法。

题目:查询sql_store数据库中customers表,要求points列的值大于500并且小于2500,并且last_name列数据里存在h字符的数据,或者city为Arlington、Visalia的所有数据。

练习题答案

相关推荐

  1. 使用 SQL Search - 验证 SQL 搜索项字符串

    2024-04-02 07:20:02       47 阅读
  2. 实战

    2024-04-02 07:20:02       56 阅读
  3. 饥饿

    2024-04-02 07:20:02       55 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-04-02 07:20:02       94 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-04-02 07:20:02       101 阅读
  3. 在Django里面运行非项目文件

    2024-04-02 07:20:02       82 阅读
  4. Python语言-面向对象

    2024-04-02 07:20:02       91 阅读

热门阅读

  1. 前端安全-面试题(2024)

    2024-04-02 07:20:02       44 阅读
  2. Stable Diffusion本地部署全攻略:从概念到实战

    2024-04-02 07:20:02       34 阅读
  3. AutoGluon

    2024-04-02 07:20:02       34 阅读
  4. jvm 调优的方式

    2024-04-02 07:20:02       36 阅读
  5. 【C/C++】C语言实现串

    2024-04-02 07:20:02       27 阅读
  6. ChatGPT:打破学术写作束缚

    2024-04-02 07:20:02       33 阅读
  7. 图论做题笔记:bfs

    2024-04-02 07:20:02       39 阅读
  8. APP自动化测试-Appium元素定位之元素等待

    2024-04-02 07:20:02       36 阅读
  9. 工业互联网和云计算有关联吗

    2024-04-02 07:20:02       31 阅读
  10. 【BUG】No module named ‘dnf‘

    2024-04-02 07:20:02       36 阅读