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 (值);