<style> .command { display: inline-block; font-size: 24px; color: black; background-color: white; padding: 7px; border-radius: 10px; margin: 5px; } </style> ## 計算機概論Lab-12 ### SQL ![image](https://hackmd.io/_uploads/rJ8EGF-NJe.png) <p>https://hackmd.io/@IMOK/Lab12</p> --- <img src="https://hackmd.io/_uploads/ryUSIqnJT.jpg" width=400 style="border-radius:1000px;"/> 講師: 賴昱有 --- ## BEFORE CLASS <font size = 6 >http://140.121.197.13/tutorial</font> <font size = 6 >先下載解壓縮後執行安裝</font> <font size = 6 ><span class="command">SQLServer2017-SSEI-Expr.exe</span></font> --- ## 什麼是資料庫 + <font size = 7 >結構</font> + <font size = 6 >Database</font> + <font size = 6 >Table</font> + <font size = 6 >Field</font> + <font size = 6 >Record</font> + <font size = 7 >CRUD</font> + <font size = 6 >Create</font> + <font size = 6 >Read</font> + <font size = 6 >Update</font> + <font size = 6 >Delete</font> ---- ![image](https://hackmd.io/_uploads/BkTiCnmVJe.png) ---- ## 關聯式資料庫 <font size = 5 >Relational Database Management System(RDBMS)</font> <img src= "https://hackmd.io/_uploads/rkrV5iXE1x.png" width=650 style="margin : 0px 0px 0px 0px"/> ---- ## 非關聯式資料庫 <font size = 5 >NoSQL (Not Only SQL)</font> + <font size = 7 >Key-Value Database</font> + <font size = 7 >Large-Scale Database</font> + <font size = 7 >Document Database</font> + <font size = 7 >Graph Database</font> + <font size = 7 >Time series database</font> + <font size = 7 >…</font> --- ## 匯入範例資料庫 + <font size = 6 >打開並複製 [instnwnd.sql](https://raw.githubusercontent.com/microsoft/sql-server-samples/master/samples/databases/northwind-pubs/instnwnd.sql) 中所有內容</font> + <font size = 6 >打開 SSMS</font> + <font size = 6 >連接到 MYSQL Server</font> + <font size = 6 >Ctrl+N 打開指令編輯器</font> + <font size = 6 >貼上範例資料庫內容</font> + <font size = 6 >F5 執行所有指令</font> ---- ![image](https://hackmd.io/_uploads/BJI_ssmEyg.png) --- ## CRUD IN MYSQL + <font size = 6 >Create</font> + <font size = 6 ><span class="command">INSERT</span></font> + <font size = 6 >Read</font> + <font size = 6 ><span class="command">SELECT</span></font> + <font size = 6 >Update</font> + <font size = 6 ><span class="command">UPDATE</span></font> + <font size = 6 >Delete</font> + <font size = 6 ><span class="command">DELETE</span></font> ---- ## SELECT <font size = 6 >基本指令形式</font> ```sql= SELECT column1, column2 FROM table_name [WHERE conditions] [ORDER BY column1 order]; ``` <font size = 6 >e.g.</font> ```sql= SELECT CategoryID, CategoryName, Description, Picture FROM Northwind.dbo.Categories ``` ---- ```sql= SELECT * FROM Northwind.dbo.Categories WHERE CategoryID=1; ``` <img src= "https://hackmd.io/_uploads/HJB16smVkg.png" width=800 style="margin : 0px 0px 0px 0px"/> ---- <font size = 5 >查找 Description 是 S 開頭的</font> ```sql= SELECT * FROM Northwind.dbo.Categories WHERE Description LIKE 'S%'; ``` <font size = 5 >降序排序(DESC)、升序排列(ASC)</font> ```sql= SELECT * FROM Northwind.dbo.Categories WHERE Description LIKE 'S%' ORDER BY CategoryName DESC; ``` <font size = 5 >數資料筆數</font> ```sql= SELECT COUNT(*) FROM Northwind.dbo.Categories ``` --- ### INNER JOIN ```sql= SELECT * FROM Northwind.dbo.Categories INNER JOIN Northwind.dbo.Products ON Northwind.dbo.Categories.CategoryID = Northwind.dbo.Products.CategoryID ``` ---- <style> table { width: 80%; border-collapse: collapse; line-height: 1.5; /* 行距 */ } th, td { font-size: 18px; /* 字體大小 */ } </style> + <font size = 6 >Categories</font> | CategoryID | CategoryName | | ---------- | ------------ | | 1 | Drink | | 2 | Food | + <font size = 6 >Products</font> | CategoryID | CategoryName | CategoryID | | ---------- | ------------ | ---------- | | 1 | Beer | 1 | | 2 | Cola | 1 | | 3 | Bread | 2 | + <font size = 6 >Inner Join on CategoryID</font> | CategoryID | CategoryName | ProductID | ProductName | | ---------- | ------------ | --------- | ----------- | | 1 | Drink | 1 | Beer | | 1 | Drink | 2 | Cola | | 2 | Food | 3 | Bread | --- ### INSERT <font size = 6 >基本指令形式</font> ```sql= INSERT INTO table_name(column1, column2, ...) VALUES ('value1', 'value2', ...); ``` <font size = 6 >e.g.</font> ```sql= INSERT INTO Northwind.dbo.Categories VALUES ('test', 'test', 'test'); ``` --- ### UPDATE <font size = 6 >基本指令形式</font> ```sql= UPDATE table_name SET column1='value1', column2='value2' [WHERE conditions]; ``` <font size = 6 >e.g.</font> ```sql= UPDATE Northwind.dbo.Categories SET CategoryName='test2' WHERE CategoryName='test' ``` --- ### DELETE <font size = 6 >基本指令形式</font> ```sql= DELETE FROM table_name [WHERE conditions]; ``` <font size = 6 >e.g.</font> ```sql= DELETE FROM Northwind.dbo.Categories WHERE CategoryName='test2'; ``` --- ## 延伸閱讀 <font size = 7 >[w3schools-sql](https://www.w3schools.com/sql/) </font> --- ## 作業網站 作業做完請上傳到 http://140.121.197.13/tutorial 並且注意上傳時間限制、檔名、其他規範 上課時提前做完可以直接給助教 demo 登記 就不需要上傳 demo 過的部分 ---- ## Question 1 <font size=6> 使用 SQL 指令查詢 Northwind 資料庫內的 Order 資料表 EmployeeID=5 的資料 </font> ---- ## Question 2 <font size=6>使用 SQL 指令查詢 Northwind 資料庫內的 Order 資料表 EmployeeID 介於 3 到 6 的資料 並且將查詢結果根據 EmployeeID 進行由大至小的排序 </font> + <font size=6 color="#ff0000">[HINT]</font> <font size=6> \>\= AND \<\= or BETWEEN…AND…</font> ---- ## Question 3 <font size=6>使用 SQL 指令計算 Northwind 資料庫內的 Order 資料表共有幾筆訂單。 </font> + <font size=6 color="#ff0000">[HINT]</font><font size=6> SELECT COUNT</font> ---- ## Question 4 <font size=6>使用 SQL 指令在 Northwind 資料庫內的 Products 資料表 新增一筆 Products 的資料,內容不限。</font> + <font size=6 color="#ff0000">[HINT]</font><font size=6> 需注意資料欄位內的資料型態</font> ---- ## Question 5 <font size=5>使用 SQL 指令在剛剛新增的 Products 資料將 ProductName 設定為 Egg,UnitPrice設定為 12.00。 </font> ---- ## Question 6 <font size=5>使用 SQL 指令刪除 Northwind 資料庫內的 Products 資料表你所新增的 Products 資料 </font> ---- ## Question 7 <font size=5>使用 SQL 指令將 Northwind 資料庫內 Categories、Order Details 以及 Products 資料表進行結合 查詢出每筆訂單詳細的 產品名稱 (ProductName)、種類名稱(CategoryName) 及單位價格 (UnitPrice) </font> + <font size=6 color="#ff0000">[HINT]</font> <font size=6>(nested) INNER JOIN</font>
{"title":"計算機概論Lab-12","description":"image","contributors":"[{\"id\":\"738dd674-cd6a-462c-87e2-b67e68f12ac0\",\"add\":18492,\"del\":11976}]"}
    371 views