介紹如何在 MySQL/MariaDB 資料庫中,以 INSERT
指令在資料表中新增一筆或多筆資料。
假設我們已經依照建立資料表的教學,建立了一個
persons
資料表,其結構如下:
-- 查看 persons 資料表結構 DESCRIBE persons;
+-------+--------------------------------------+------+-----+---------+----------------+ | Field | Type | Null | Key | Default | Extra | +-------+--------------------------------------+------+-----+---------+----------------+ | id | int(11) | NO | PRI | NULL | auto_increment | | name | varchar(255) | YES | | NULL | | | age | int(10) unsigned | YES | | NULL | | | city | enum('Taipei','Hsinchu','Kaohsiung') | YES | | NULL | | +-------+--------------------------------------+------+-----+---------+----------------+
如果要在 persons
資料表中新增一筆資料,可以使用 INSERT
來插入資料,並指定資料的欄位名稱以及資料內容:
-- 插入一筆資料至 persons 資料表 INSERT INTO persons (name, age, city) VALUES ("Arden", 32, "Taipei");
如果資料表中有 AUTO_INCREMENT
屬性的 id 欄位,可以使用 LAST_INSERT_ID()
取得剛新增資料的 id 值:
-- 取得剛新增資料的 id SELECT LAST_INSERT_ID();
+------------------+ | LAST_INSERT_ID() | +------------------+ | 1 | +------------------+
INSERT
指令也可以一次插入多筆資料:
-- 插入多筆資料至 persons 資料表 INSERT INTO persons (name, age, city) VALUES ("Bond", 54, "Taipei"), ("Cole", 12, "Hsinchu"), ("Dana", 19, "Hsinchu");
資料插入之後,可用 SELECT
查看目前資料表內的資料:
-- 查看 persons 資料表內所有資料 SELECT * FROM persons;
+----+-------+------+---------+ | id | name | age | city | +----+-------+------+---------+ | 1 | Arden | 32 | Taipei | | 2 | Bond | 54 | Taipei | | 3 | Cole | 12 | Hsinchu | | 4 | Dana | 19 | Hsinchu | +----+-------+------+---------+
如果在新增資料時,會依序指定每一個欄位的話,就可以省略指定欄位名稱:
-- 依序指定所有欄位的資料(省略指定欄位名稱) INSERT INTO persons VALUES (19, "Jack", 33, "Taipei");
查看結果:
-- 查看 persons 資料表內所有資料 SELECT * FROM persons;
+----+-------+------+---------+ | id | name | age | city | +----+-------+------+---------+ | 1 | Arden | 32 | Taipei | | 2 | Bond | 54 | Taipei | | 3 | Cole | 12 | Hsinchu | | 4 | Dana | 19 | Hsinchu | | 19 | Jack | 33 | Taipei | +----+-------+------+---------+