[MSSQL] #2 在資料庫操作 SQL 指令: 新增、修改、刪除、查詢

本篇重點:

  • 前言
  • 四種基本指令
  • 補充

前言

建立好資料表,我們可以透過不同的指令來處理資料。<br/><br/> 點擊資料表 –> 新增查詢 –> 輸入指令 –> 執行 (在新增查詢下方的綠色箭頭)。<br/> 螢幕擷取畫面 2023-07-10 203455

四種基本指令

這是事先建好的資料名稱 & 資料型態,以下會根據這張資料表說明四種基本指令,及他們在 MSSQL 中的寫法。<br/> 螢幕擷取畫面 2023-07-10 210314

補充:在 vb 中字串用 “” (雙引號) ,在 SQL 中則是放在 ‘’ (單引號)裡面。


  • 新增(INSERT):新增指令用於向資料表中插入新的資料記錄。
INSERT INTO 資料表 (欄名,欄名) VALUES ('字串', 數字)

螢幕擷取畫面 2023-07-10 205528

執行成功後,底下會顯示有幾個資料列受到影響。可以回到資料表中檢查是否有新增成功~~<br/><br/> 在新增資料時要注意是否有 NULL 值,並且主鍵不能重複!


  • 修改(UPDATE):修改指令用於更新資料表中現有的資料記錄。
UPDATE 資料表 SET 欄名 = '' , 欄名 = '' WHERE 欄名 = ''(條件)

螢幕擷取畫面 2023-07-10 210013

若有符合在 WHERE 下的條件,則該資料列會受到影響。<br/><br/> 要注意的是,沒有下條件的話,所有資料都會被修改。


  • 刪除(DELETE):刪除指令用於從資料表中刪除指定的資料記錄。
DELETE FROM 資料表 WHERE 欄名 = ''(條件)

螢幕擷取畫面 2023-07-10 210845

只要符合條件的資料,都會被刪掉。

SQL 指令下完後是不可逆的!因此在下指令前要確定是否有寫正確


  • 查詢(SELECT):查詢指令用於檢索資料表中的資料。
SELECT 欄名 FROM 資料表 WHERE 欄名 = ''(條件)

螢幕擷取畫面 2023-07-10 210520

查到的資料會列在下方表格中。<br/> 也可以不下 WHERE 條件,就會把所有該資料表中的特定欄為查詢出來。<br/><br/> 查詢所有欄位的寫法: SELECT * FROM 資料表 WHERE 欄名 = ''(條件) <br/> 有兩種條件的寫法: SELECT 欄名 FROM 資料表 WHERE 欄名 = '' AND/OR ''


【補充】查詢指令

  • TOP:用於檢索資料表前幾列的資料。
SELECT TOP 數量 欄名 FROM 資料表 WHERE 欄名 = ''(條件)
  • ORDER BY (排序):將資料依據指定的順序排列。
SELECT TOP 數量 欄名 FROM 資料表 ORDER BY 欄位 DESC(遞減)/ASC(遞增)
  • INNER JOIN(內部結合):根據兩個資料表間的共同值進行結合,只列出符合結合條件的記錄。僅保留兩個資料表中相匹配的行。
SELECT 欄位 FROM 資料表A INNER JOIN 資料表B ON 資料表A.欄位 = 資料表B.欄位

0N 後面接的是要關聯起來的兩個欄位。<br/>

  • LEFT JOIN(左外部結合):呈現左邊資料表的所有記錄,並根據結合條件將右邊資料表中匹配的記錄結合到左邊資料表中。
SELECT 欄位 FROM 資料表A LEFT JOIN 資料表B ON 資料表A.欄位 = 資料表B.欄位
  • RIGHT JOIN(右外部結合):呈現右邊資料表的所有記錄,並根據結合條件將左邊資料表中匹配的記錄結合到右邊資料表中。
SELECT 欄位 FROM 資料表A RIGHT JOIN 資料表B ON 資料表A.欄位 = 資料表B.欄位

底下透過範例讓大家更清楚三種 JOIN 的用法:<br/><br/> 首先建立兩張資料表 T1、T2,並各自存入資料。<br/> 螢幕擷取畫面 2023-07-11 133149

1.用 INNER JOIN 把 T1 的 A1 欄位與 T2 的 A2 欄位關聯起來

SELECT * FROM T1 INNER JOIN T2 ON T1.A1 = T2.A2

螢幕擷取畫面 2023-07-11 135409

  1. 用 LEFT JOIN 把 T1 的 A1 欄位與 T2 的 A2 欄位關聯起來
SELECT * FROM T1 LEFT JOIN T2 ON T1.A1 = T2.A2

螢幕擷取畫面 2023-07-11 135357

如果沒有資料,則顯示 NULL (空值)。

  1. 用 RIGHT JOIN 把 T1 的 A1 欄位與 T2 的 A2 欄位關聯起來
SELECT * FROM T1 LEFT JOIN T2 ON T1.A1 = T2.A2

螢幕擷取畫面 2023-07-11 135421