這是線上平台課程的筆記內容,就是讓自己方便複習用。
老師講課的進度掌握得很好,教得也很淺寫易懂。
線上平台課程內有提供 SQL套件,如果有興趣的朋友一定要去支持老師的課程。
這樣才能取得老師提供的套件包做練習使用。
如果有想要知道老師的課程,再詢問我。
CH4 用where選擇紀錄
之前都是搜尋到所有的紀錄,但是我們不想要所有的,想要其中的紀錄的話。
要透過where來調整。
SELECT <column1>,<column2>
FROM <table_name>
WHERE <condition>;
Condition的設定法
WHERE 欄位=’關鍵字’
或者
WHERE 欄位=”關鍵字”
SELECT *
FROM suppliers
WHERE city=’Berlin’;
數字字段的選擇
WHERE 的數字用法可以用運算符號
WHERE customerid(關鍵字)=1
WHERE unitprice(關鍵字)>=2.50
WHERE unitprice(關鍵字)<2.50
WHERE quantity(關鍵字)>20
WHERE quantity(關鍵字)<=10
這邊要找一個員工ID是3的人的資料。
SELECT *
FROM employees
WHERE employeeid=3;
找一下訂單是由employeeid=3的人處理的數量。
這邊想知道有多少個訂單,訂購的商品超過20個。
表:order_details 欄位:quantity
SELECT COUNT (*)
FROM order_details
WHERE quantity>=20
這邊的超過是有包含20個的。
多少的訂單數,運費是超過(包含)250元。
表:orders 欄位:freight
SELECT COUNT (*)
FROM orders
WHERE freight>=250;
尋找日期
WHERE orderdate = ‘1999-09-21’
WHERE orderdate > ‘1999-09-21’
WHERE orderdate <= ‘1999-09-21’
日期格式須以XXXX-XX-XX表示。
這邊找訂單日期orderdate是在1998-01-01之後的訂單數量。
SELECT COUNT(*)
FROM orders
WHERE orderdate >= '1998-01-01';
多個選擇邊準的搜尋AND
AND表示兩個搜尋條件都要符合才可以。
SELECT <column1>
FROM <table_name>
WHERE <條件> AND <條件> AND …
尋找訂單數量,寄送地點是德國,且運費超過150圓以上的筆數。
SELECT COUNT (*)
FROM orders
WHERE shipcountry='Germany' AND freight >150;
多個選擇邊準的搜尋OR
與AND不同的是,OR是二擇一的概念。
多個條件只要一個符合就可以。
例如我們要找美國OR加拿大的客戶數量。
SELECT COUNT(*)
FROM customers
WHERE country = 'USA' OR country = 'Canada';
多個選擇邊準的搜尋NOT
非運算
我有多少客戶[不在]法國
SELECT COUNT(*)
FROM customers
WHERE NOT country='France';
結合NOT、AND、OR
要結合的時候建議,好好的使用(),不然你的意思會被曲解。
WHERE ( 條件1 AND 條件2) OR 條件3;
向德國Germany 運送了多少訂單,它們的運費低於50或者高於175
SELECT COUNT (*)
FROM orders
WHERE shipcountry = 'Germany' AND ( freight<50 OR freight>175);
寄送到Canada 或Spain 的訂單數量,且時間在1997-05-01之後。
SELECT COUNT(*)
FROM orders
WHERE shippeddate >= '1997-05-01'
AND (shipcountry='Canada' OR shipcountry='Spain');
學著使用between
Between是個捷徑
WHERE freight BETWEEN 50 AND 100;
等同於
WHERE freight >=50 AND freight <= 100;
訂單詳情內找到商品單價。找單價unitproce在10 到20間的商品數量。
SELECT COUNT(*)
FROM order_details
WHERE unitprice BETWEEN 10 AND 20;
學習使用 IN
剛剛的BETWEEN 是大於等於 小於等於的概念,範圍區間。
這邊的IN 有OR的感覺。
WHERE id IN (2,3,22);
等同於
WHERE id=2 OR id=3 OR id=22;
尋找我們有多少供應商在Germany、France、Spain、Italy
SELECT COUNT(*)
FROM suppliers
WHERE country IN('Germany','France','Spain','Italy');
我們在1 4 6 7類當中有多少產品。
SELECT COUNT (*)
FROM products
WHERE categoryid IN (1,4,6,7);
<本篇完>
第一篇: IT讀書室-SQL語法學習- postgre安裝與匯入
第四篇: IT讀書室-SQL語法學習- 中間的SELECT語句
如果筆記造成任何法律或者侵權的問題,作者會立即將筆記下架。
留言列表