iT邦幫忙

2022 iThome 鐵人賽

DAY 12
1

很多時候使用者會需要看某些條件之下的資料,因此取出的資料就必須過濾一下了,
可以試想一下使用者可能會提出哪些條件呢?這邊就列出幾個條件當作例子。

  • 找出保養費用大於等於(≥)300美金的資料
  • 找出正在生產中的探針卡
  • 找出正在生產V100AS產品的探針卡
  • 找出2019年所建檔的探針卡資料
  • 找出維修費最貴的前三名
  • 列出有哪幾種產品

過濾會用到的運算子

= 等於
<> 不等於
不等於
IS
NOT IS 不是
> 大於
大於等於
< 小於
小於等於
BETWEEN 之間
IN 找出符合
NOT IN 找出不符合

大於(>)

老闆想算成本的時候,可能會想找出花錢花的很兇的保養費是哪些探針卡,
所以找出保養費用大於等於(≥)300美金的資料,好好解釋這些探針卡費用吧!

SELECT *
FROM probe_card
WHERE cost >= 300;

是(IS)

生產線上的班長,找出不是生產中的探針卡,
再來判斷要不要保養探針卡、或是進行產品調機。

SELECT *
FROM probe_card
WHERE is_running NOT IS TRUE;

且(AND)

要判斷的條件如果是複合式的,那就要用到AND運算子,
找出正在生產V100AS產品的探針卡包含兩個條件:

  1. 正在生產
  2. 產品別是 V100AS
SELECT *
FROM probe_card
WHERE product_name = 'V100AS' AND is_running IS TRUE;

之間(BETWEEN)

找出2019年所建檔的探針卡資料,要找出2019年的資料就等同於
找出2019年1月1日到2019年12月31日之間的資料。

SELECT *
FROM probe_card
WHERE date_created BETWEEN '2019-01-01' AND '2019-12-31';

排序(ORDER BY)

找出維修費最貴的前三名,要取出這樣的資料,要先排序而且要由小到大,
然後再告訴資料庫要取出幾筆資料。

  • ORDER BY : 排序
  • DESC : 由大到小
  • LIMIT : 顯示數量
SELECT *
FROM probe_card
ORDER BY cost DESC
LIMIT 3;

不重復資料(DISTINCT)

列出有哪幾種產品,DISTINCT 欄位會把重覆的值給去掉,
最後資料只會取出不同的值,所以獲得我們要的內容。

SELECT DISTINCT product_name
FROM probe_card;

找出符合(IN)

除了等於之外,有時候想要抓的條件不只一個,
例如希望把產品V100A跟V100AS都抓出來,可以使用IN。

SELECT *
FROM probe_card
WHERE product_name IN ('V100A','V100AS');

上一篇
Day 11 資料怎麼弄(CRUD)
下一篇
Day 13 權限
系列文
資料庫新手入門--以PostgreSQL為例30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言