Day30 - 述词和完赛结语

述词 ( Predicate ) 的回传值皆为 True / False,因此在撰写 SQL 的筛选条件时,是不可或缺的角色。
以下列举出一些在设定条件时,十分常用的:

LIKE - 搜寻符合的字串

运用 LIKE 可以让资料库进行「部分一致」的搜寻,细分为以下三类:

  1. 开头一致
  2. 中间一致
  3. 结尾一致

关键符号子是 "%":代表所有字串(含空白)的意思

/* 1. 以 ddd 开头的所有字串 */
LIKE 'ddd%'
/* 2. 字串间有 ddd */
LIKE '%ddd%'
/* 3. 以 ddd 结尾的字串 */
LIKE '%ddd'

BETWEEN - 范围搜寻

例如要搜寻 Product 中,sell_price 为 50 到 2000 。

SELECT * FROM Product WHERE sell_price BETWEEN 50 AND 2000;

Day30Result1

IN - 很多 OR 条件的时候就很实用

假设要搜寻 Product 中,sell_price 为 30, 40, 80, 18000。你可以写成以下形式,但会很难维护:

SELECT * FROM Product
WHERE sell_price = 30
OR sell_price = 40
OR sell_price = 80
OR sell_price = 18000;

用 IN 的话,可以简洁的表达:

SELECT * FROM Product
WHERE sell_price IN (30,40,80,18000);

Day30Result2

IS NULL / IS NOT NULL - 找出 NULL 栏位必备

因为 NULL 在 SQL 中是个特别的存在,无法使用 "=" 来判别是否为 NULL,要改用 IS NULL。
例如要找出 INFO 为 NULL 的:

SELECT * FROM Product WHERE info IS NULL;
/*反之则改成 IS NOT NULL*/
SELECT * FROM Product WHERE info IS NOT NULL;

Day30Result3

完赛结语

「每天一篇技术文章,并持续 30 天」看似简单,却是个心智、体力的长期竞赛。撰写完这 30 天的 SQL 相关文章,除帮自己统整一下过往所学以及不足之外,也训练自己输出点东西给大家。这些整理後的文字记录,若能帮助他人在学习程序的路上节省心力,就很值得了。


<<:  [Re:PixiJS - Day43] pixi-particles 粒子效果 1/2:plugin 安装与开始使用

>>:  Day 28 - Kubernetes 第三方好用工具介绍

开源的WebPC让你使用浏览器远程控制 linux or windows

WebPC 是我刚在 github 上开源(MIT)的一个远控工具,可以作爲 TeamViewer ...

Day7 CSV档处理

在经历上一部函数与类别的摧残後,这两天就来教一些比较温和的程序吧~ 今天的影片内容为介绍常见的档案格...

Day26:26 - 优化 - 後端 & 前端 - 忘记密码

γεια σας,我是Charlie! 在Day25当中我们完成了Email订单通知,而今天我们将完...

全端入门Day06_何谓全端之後端前篇

昨天介绍了後端,可能都是字,今天就来放我自己做的图片: 我相信看过就会更了解我昨天说的了,今天的主题...

水深火热CSS Day 1

不难发现,问题在於该用什麽标准来做决定呢?梁晓声曾讲过,友谊,好比一瓶酒,封存的时间越长,价值则越高...