1、insert into 語句向表中插入數據。
命令: insert into <表名> values ( 值1 )[, ( 值n )]; //向表中所有列插入數據,有多少列就得有多少值
insert into <表名> [(<字段名1>[,..<字段名n > ])] values ( 值1 )[, ( 值n )]; //向表中對應字段插入相應的值,一一對應,不寫出的字段就為空
注:字段名需要使用括號()括起來,否則運行報錯
MariaDB [test]> insert into t1 values(0,"w","男"); #向表中所有列插入數據 Query OK, 1 row affected, 1 warning (0.00 sec) MariaDB [test]> select * from t1; +----+------+-----+ | id | name | sex | +----+------+-----+ | 1 | q | 女 | | 2 | w | 男 | +----+------+-----+ 2 rows in set (0.00 sec) MariaDB [test]> insert into t1 (name) values ("er"); #向表中對於的列插入數據 Query OK, 1 row affected (0.01 sec) MariaDB [test]> select * from t1 -> ; +----+------+------+ | id | name | sex | +----+------+------+ | 1 | q | 女 | | 2 | w | 男 | | 3 | er | male | +----+------+------+ 3 rows in set (0.00 sec)
2、插入數據時時需注意:
- 對表中每個字段必須提供一個值
- 若某個字段沒有值,可以使用null值
- 各個字段必須按照表定義時的次序出現
- 對於自動增量的字段,可指定一個 null 值或者0,(它會被MySQL忽略,但必須給值)
- 盡量不要使用沒有明確給出字段名的列表的 insert into 語句
3、省略字段的情況
在insert 操作中省略某些字段,需要滿足以下條件:
1)該字段定義為允許 null 值(無值或空值)
2)表定義時給出默認值
若不滿足上面的條件之一,則必須給值,否則插入數據時會報錯
4、插入多行數據
插入多行數據可以用以下兩種方式:
(1)使用多條 insert 語句,每條語句用一個分號結束;
(2)如果每條 insert 語句的字段名和次序相同,則可以一次插入多組值,組值之間用逗號(,)隔開,每組值用一對括號括起來
語法:
insert into 表名 (列1,列2...)values (組值1),(組值2),(...);
5、插入檢索出來的數據
由一條 insert 語句和一條 select 語句組成,即 insert select 模式
語法:
insert into 表1 (字段) select 字段 from 表2 where 條件;
- select 語句的第一列插入 insert into 表字段中指定的第一列,其他字段也是一一對應插入
- select 語句中的字段名不需要與insert into 表字段名相同
- 需要滿足插入數據的字段值匹配原則
6、提高MySQL性能
降低 insert 語句優先級,先執行其他select 語句
語法 :
insert low_priority into 表名(字段名) values (值);