SQL和excle對比
?學習目標
單表查詢
項目背景
?SQL?練習環境?SQL Online Compiler - Next gen SQL Editor
商品信息表:https://study-zhibo.oss-cn-shanghai.aliyuncs.com/test/%E5%95%86%E5%93%81%E4%BF%A1%E6%81%AF%E8%A1%A8.csv
訂單明細表:https://study-zhibo.oss-cn-shanghai.aliyuncs.com/test/%E8%AE%A2%E5%8D%95%E6%98%8E%E7%BB%86%E8%A1%A8.csv
點擊連接MariaDB(屬于mysql的變種)?
點擊import將兩個表導入sql練習環境中?
注意更改命名和更改column name
在空白區域輸入以下代碼?
SELECT *
FROM test2
WHERE sku_name = '香蕉'
;
然后點擊旁邊的run按鈕(或者按shift+enter)
SQL語句解釋
-
SELECT *
:表示選擇表中的所有列。 -
FROM test2
:指定從表test2
中查詢數據。這里test2是我在導入到sql里面的時候我將訂單明細表中將他命名為test2,根據你實際的來 -
WHERE sku_name = '香蕉'
:表示篩選條件,只返回sku_name
列值為“香蕉”的記錄。 -
;?
:表示SQL語句的結束。
AS重命名字段名
注意:字段名重命名是在執行完代碼后才重命名的,所以where查詢的時候需要使用原字段名
OR和AND語句
查詢嵌套
先進行第一個查詢,然后將查詢結果重命名為字段,再到對應的字段進行查詢由此完成嵌套的子表查詢
來道思考題驗證一下前面學習的內容吧?
我們來將需求實現步驟拆解一下
1.首先是要查詢商品訂單表
select
sku code as 商品編碼,
sku name AS 商品名稱,
price AS 價格,
origin_country AS 原產國
from test2 #改成你自己的文件名
;
2.查詢張三相關的信息
select
sku code as 商品編碼,
sku name AS 商品名稱,
price AS 價格,
origin_country AS 原產國
from test1 #改成你自己的文件名
where buyer_name ='張三'#找出所有購買者是張三的數據
;
3.有張三買過的商品的信息作為一個子表
select sku code
from order detail
where buyer_name ='張三'
;
3.將子表作為篩選條件反向篩選出張三沒買過的商品的信息輸出
select
sku code as 商品編碼,
sku name AS 商品名稱,
price AS 價格,
origin_country AS 原產國
from test1 #改成你自己的文件名
where sku code not in(select sku code from order detailwhere buyer_name ='張三')
;
?