- mysql 向数据库的表中插入数据 insert into
- 若未指定列名,列值为该列的默认值
- 指定字段,应与 值一一对应
- 自增主键,添加数据时,可以写为0或者null或者不设置
示例表tb_user结构:
+-----+--------+--------------+--------+------------+------+--------+
| id | name | title | label | join_date | age | salary |
+-----+--------+--------------+--------+------------+------+--------+
| 101 | 张三 | 部门经理 | 产品 | 2010-10-20 | 18 | 1000.8 |
+-----+--------+--------------+--------+------------+------+--------+
向表中指定列插入数据 INSERT INTO 表名 … VALUES …
可以插入多行数据,注意保证字段与值的顺序
INSERT INTO <表名>
(<列名1>, <列名2>, ... , <列名n>)
VALUES
(<值1>, <值2>, ... , <值n>),
(<值1>, <值2>, ... , <值n>);
- 列名 与 值一一对应
- 插入多条数据,对应多个值组
示例:
mysql> insert into tb_user (title,age) values ('UI',19),('UE',30);
Query OK, 2 rows affected (0.01 sec)
Records: 2 Duplicates: 0 Warnings: 0
向表中指定列插入数据 INSERT INTO 表名 SET …
只能插入一行数据,方便设置字段对应值
INSERT INTO <表名> SET
<列名1> = <值1>,
<列名2> = <值2>;
示例:
mysql> insert into tb_user set title='部门经理';
Query OK, 1 row affected (0.01 sec)
向表中的所有列插入数据 INSERT INTO 表名 VALUES …
向表中的所有列插入数据,可以省略列组,但要注意顺序,和全部值
INSERT INTO <表名> VALUES
(<值1>, <值2>, ... , <值n>),
(<值1>, <值2>, ... , <值n>);
示例:
mysql> insert into tb_user values (102,'张三','部门经理','产品','2010-10-20',18,1000.8);
Query OK, 1 row affected (0.01 sec)
向表中插入其他表数据 INSERT INTO 表名 … SELECT … FROM 表名
可以从一个或多个表中查询数据,插入到表中
可能会插入多条数据
INSERT INTO <表名>
(<列名1>, <列名2>, ... , <列名n>)
SELECT
<列名1>, <列名2>, ... , <列名n>
FROM <表名>;
示例:
mysql> insert into tb_user3 (id, salary) select id, salary from tb_user;
Query OK, 7 rows affected (0.01 sec)
Records: 7 Duplicates: 0 Warnings: 0