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