MySQL INSERT:插入數據(添加數據)
數據庫與表創建成功以后,需要向數據庫的表中插入數據。在 MySQL 中可以使用 INSERT 語句向數據庫已有的表中插入一行或者多行元組數據。
基本語法
INSERT 語句有兩種語法形式,分別是 INSERT…VALUES 語句和 INSERT…SET 語句。
1) INSERT…VALUES語句
INSERT VALUES 的語法格式為:
INSERT INTO 表名 (列名1, … 列名n )
VALUES (值1… , 值n);
2) INSERT…SET語句
語法格式為:
INSERT INTO 表名
SET 列名1 = 值1,
列名2 = 值2,
…
此語句用於直接給表中的某些列指定對應的列值,即要插入的數據的列名在 SET 子句中指定的列名,等號后面為指定的數據,而對於未指定的列,列值會指定為該列的默認值。
由 INSERT 語句的兩種形式可以看出:
-
使用 INSERT…VALUES 語句可以向表中插入一行數據,也可以插入多行數據;
-
采用 INSERT…SET 語句可以向表中插入部分列的值,這種方式更為靈活;
向表中的全部字段添加值
在student數據庫中創建一個學生表,包含學生編號 id、學生姓名 name、學生年齡age輸入的 SQL 語句和執行結果如下所示。
mysql> create table student(id int primary key auto_increment,name varchar(8),age int not null);
Query OK, 0 rows affected (0.16 sec)
mysql> insert into student (id,name,age)value(null,"張三",18);
Query OK, 1 row affected (0.12 sec)
mysql> insert into student (id,name,age)value(null,"李四",16);
Query OK, 1 row affected (0.08 sec)
mysql> select * from student;
+----+------+-----+
| id | name | age |
+----+------+-----+
| 1 | 張三 | 18 |
| 2 | 李四 | 16 |
+----+------+-----+
2 rows in set (0.00 sec)
向表中指定字段添加值
為表的指定字段插入數據,是在 INSERT 語句中只向部分字段中插入值,而其他字段的值為表定義時的默認值。
【實例 4】在 student表中插入一條新記錄,age 值為22,輸入的 SQL 語句和執行結果如下所示。
mysql> insert into student set age=22;
Query OK, 1 row affected (0.05 sec)
mysql> select * from student;
+----+------+-----+
| id | name | age |
+----+------+-----+
| 1 | 張三 | 18 |
| 2 | 李四 | 16 |
| 3 | NULL | 22 |
+----+------+-----+
3 rows in set (0.00 sec)