SQL - INSERT 查詢:初學者指南

你好,未來的數據庫魔法師們!今天,我們將踏上一段令人興奮的旅程,進入 SQL INSERT 查詢的世界。作為你們親切的鄰居計算機老師,我將指導你們掌握這個基本概念,這將幫助你們將寶貴的資訊填充到數據庫中。所以,來一杯咖啡(或者茶,如果你喜歡的話),我們一起來探索吧!

SQL - Insert Query

SQL INSERT INTO 語句

什麼是 INSERT 語句?

想像一下,你有一個設計精美的數據庫表,但它卻是空的。多麼悲哀啊!這時 INSERT 語句就派上用場了。它就像一個神奇的咒語,讓我們能夠將新的記錄(行)添加到我們的表中。

基本語法

INSERT 語句的基本語法如下:

INSERT INTO table_name (column1, column2, column3, ...)
VALUES (value1, value2, value3, ...);

讓我們來分解一下:

  • INSERT INTO 告訴 SQL 我們想要添加新數據
  • table_name 是你指定要添加數據的表
  • 括號中的列是我們想要填滿的
  • VALUES 關鍵字引介了我們要插入的實際數據

範例 1:插入單一行

假設我們有一個名為 students 的表,其中包含列:idnameage。以下是如何添加一名新學生的方法:

INSERT INTO students (id, name, age)
VALUES (1, 'John Doe', 20);

這將在我們的 students 表中添加一個新行,ID 為 1,名稱為 "John Doe",年齡為 20。

範例 2:插入多行

想要一次添加多名學生?沒問題!我們也可以做到:

INSERT INTO students (id, name, age)
VALUES
(2, 'Jane Smith', 22),
(3, 'Bob Johnson', 21),
(4, 'Alice Brown', 23);

這個單一查詢將向我們的表中添加三名新學生。效率很高,對吧?

使用另一個表來插入數據到表中

有時候,你可能想要從一個表複製數據到另一個表。SQL 這方面做得非常簡單!

語法

從另一個表插入數據的語法如下:

INSERT INTO table1 (column1, column2, column3, ...)
SELECT column1, column2, column3, ...
FROM table2
WHERE condition;

範例 3:在表之間複製數據

假設我們有一個名為 honor_roll 的表,我們想從我們的 students 表中添加所有年齡為 21 歲或以上的學生:

INSERT INTO honor_roll (student_id, student_name)
SELECT id, name
FROM students
WHERE age >= 21;

這個查詢將從 students 表中複製年齡為 21 歲或以上的學生的 idnamehonor_roll 表中。

在指定列中插入數據

有時候,在插入數據時,你不需要填滿所有列。SQL 足夠靈活,可以處理這種情況!

範例 4:插入部分數據

讓我們添加一名新學生,但這次我們不知道他們的年齡:

INSERT INTO students (id, name)
VALUES (5, 'Eva Green');

在這種情況下,Eva 的 age 列將被填充為 NULL 值(或者如果表中定義了默認值,則為默認值)。

範例 5:使用默認值

如果你的表為某些列定義了默認值,你可以顯式地使用它們:

INSERT INTO students (id, name, age)
VALUES (6, 'Frank White', DEFAULT);

這假設 age 列在表結構中有一個默認值。

專業提示和最佳實踐

  1. 總是列出你的列:即使你正在為所有列插入值,顯式地列出它們可以使你的代碼更具可讀性,並且不易出錯。

  2. 使用交易:當插入多行時,將你的 INSERT 語句包在交易中。這樣可以確保所有插入都要麼全部成功,要麼全部失敗。

  3. 驗證你的數據:在插入之前,確保你的數據滿足表的要 求(數據類型、約束等)。

  4. 謹慎對待自增列:如果一列是自增的(例如,通常的 ID 列),你通常不需要在 INSERT 語句中為它指定一個值。

常見 INSERT 方法

以下是一個方便的表格,總結了我們所介紹的 INSERT 方法:

方法 描述 範例
基本 INSERT 插入一行指定值 INSERT INTO table (col1, col2) VALUES (val1, val2);
多行 INSERT 在一個語句中插入多行 INSERT INTO table (col1, col2) VALUES (val1, val2), (val3, val4);
使用 SELECT 的 INSERT 從一個表複製數據到另一個表 INSERT INTO table1 SELECT col1, col2 FROM table2 WHERE condition;
部分 INSERT 只在指定列中插入數據 INSERT INTO table (col1) VALUES (val1);
使用默認值的 INSERT 對某些列使用默認值 INSERT INTO table (col1, col2) VALUES (val1, DEFAULT);

至此,我熱情的學習者們!你們已經開始了 SQL INSERT 查詢世界的第一步。記住,熟練需要練習,所以不要害怕嘗試這些概念。在你意識到之前,你將會像專家一樣插入數據!

快樂編程,願你的數據庫總是完美填充!

Credits: Image by storyset