当前位置:   article > 正文

SQL --插入语句_sql插入语句

sql插入语句

目录

1, 插入数据(insert)

1-1, 单条数据插入

1-2, 多条数据插入

2, 插入或替换(replace)

3, 插入或更新(on duplicate key update)

4, 插入或忽略(insert ignore into)

5, 写入查询结果集


1, 插入数据(insert into)

在插入数据时, 字段与值需要一一对应

1-1, 单条数据插入

语法:insert into 表名 (字段1, ..., 字段n) values (值1, ..., 值2);

  1. mysql> insert into dept (deptno, dname, loc) values (50, 'haha', 'hehe');
  2. Query OK, 1 row affected (0.41 sec)
  3. mysql> select * from dept;
  4. +--------+------------+----------+
  5. | deptno | dname | loc |
  6. +--------+------------+----------+
  7. | 10 | ACCOUNTING | NEW YORK |
  8. | 20 | RESEARCH | DALLAS |
  9. | 30 | SALES | CHICAGO |
  10. | 40 | OPERATIONS | BOSTON |
  11. | 50 | haha | hehe |
  12. +--------+------------+----------+
  13. 5 rows in set (0.00 sec)

1-2, 多条数据插入

语法:insert into 表名 (字段1, ..., 字段n) values (值1, ..., 值n), ..., (值1, ..., 值n);

  1. mysql> insert into dept (deptno, dname, loc)
  2. -> values
  3. -> (60, '1', '2'),
  4. -> (70, '1', '2');
  5. Query OK, 2 rows affected (0.16 sec)
  6. Records: 2 Duplicates: 0 Warnings: 0
  7. mysql> select * from dept;
  8. +--------+------------+----------+
  9. | deptno | dname | loc |
  10. +--------+------------+----------+
  11. | 10 | ACCOUNTING | NEW YORK |
  12. | 20 | RESEARCH | DALLAS |
  13. | 30 | SALES | CHICAGO |
  14. | 40 | OPERATIONS | BOSTON |
  15. | 50 | haha | hehe |
  16. | 60 | 1 | 2 |
  17. | 70 | 1 | 2 |
  18. +--------+------------+----------+
  19. 7 rows in set (0.00 sec)

2, 插入或替换(replace into)

语法:replace into 表名 (字段1, ..., 字段n) values (值1, ..., 值n);

指当插入的数据存在时,先删除该条记录;若插入的数据不存在,则直接插入该条记录

  1. mysql> select * from dept;
  2. +--------+------------+----------+
  3. | deptno | dname | loc |
  4. +--------+------------+----------+
  5. | 10 | ACCOUNTING | NEW YORK |
  6. | 20 | RESEARCH | DALLAS |
  7. | 30 | SALES | CHICAGO |
  8. | 40 | OPERATIONS | BOSTON |
  9. | 50 | fdsf | fdsaf |
  10. | 60 | fdsf | fdsaf |
  11. | 70 | fdsf | fdsaf |
  12. +--------+------------+----------+
  13. 7 rows in set (0.00 sec)
  14. # 因为id=70的数据已经存在,所以这里的操作是先删除id=70的记录,再插入新的数据
  15. mysql> replace into dept (deptno, dname, loc) values (70, 'aaa', 'bbb');
  16. Query OK, 2 rows affected (0.17 sec)
  17. mysql> select * from dept;
  18. +--------+------------+----------+
  19. | deptno | dname | loc |
  20. +--------+------------+----------+
  21. | 10 | ACCOUNTING | NEW YORK |
  22. | 20 | RESEARCH | DALLAS |
  23. | 30 | SALES | CHICAGO |
  24. | 40 | OPERATIONS | BOSTON |
  25. | 50 | fdsf | fdsaf |
  26. | 60 | fdsf | fdsaf |
  27. | 70 | aaa | bbb |
  28. +--------+------------+----------+
  29. 7 rows in set (0.00 sec)
  30. # 因为id=80的数据不存在,所以这里的操作是直接插入id=80的记录
  31. mysql> replace into dept (deptno, dname, loc) values (80, 'aaa', 'bbb');
  32. Query OK, 1 row affected (0.15 sec)
  33. mysql> select * from dept;
  34. +--------+------------+----------+
  35. | deptno | dname | loc |
  36. +--------+------------+----------+
  37. | 10 | ACCOUNTING | NEW YORK |
  38. | 20 | RESEARCH | DALLAS |
  39. | 30 | SALES | CHICAGO |
  40. | 40 | OPERATIONS | BOSTON |
  41. | 50 | fdsf | fdsaf |
  42. | 60 | fdsf | fdsaf |
  43. | 70 | aaa | bbb |
  44. | 80 | aaa | bbb |
  45. +--------+------------+----------+
  46. 8 rows in set (0.00 sec)

3, 插入或更新(on duplicate key update)

指的是若插入的记录不存在,则直接插入该条数据;若插入的数据存在,则根据指定的字段名称进行更新

语法:insert into 表名 (字段1,...,字段n) values (值1, ..., 值n) on duplicate key update 字段x='xxx', 字段y=‘yyy', 字段z='zzz';

  1. mysql> insert into dept (deptno, dname, loc) values(80, 'fdsaaa', 'fdsasaaaa') on duplicate key update dname='fdabb', loc='bbb';
  2. Query OK, 2 rows affected (0.15 sec)
  3. mysql> select * from dept;
  4. +--------+------------+----------+
  5. | deptno | dname | loc |
  6. +--------+------------+----------+
  7. | 10 | ACCOUNTING | NEW YORK |
  8. | 20 | RESEARCH | DALLAS |
  9. | 30 | SALES | CHICAGO |
  10. | 40 | OPERATIONS | BOSTON |
  11. | 50 | fdsf | fdsaf |
  12. | 60 | fdsf | fdsaf |
  13. | 70 | aaa | bbb |
  14. | 80 | fdabb | bbb |
  15. +--------+------------+----------+
  16. 8 rows in set (0.00 sec)
  17. mysql>

4, 插入或忽略(insert ignore into)

指的是若插入的数据存在,则忽略该条插入;若不存在则插入该条记录

语法:insert ignore into 表名 (字段1,...,字段n) values (值1, ..., 值n);

  1. mysql> insert ignore into dept (deptno, dname, loc) values (80, 'ccc', 'cccc');
  2. Query OK, 0 rows affected, 1 warning (0.00 sec)
  3. mysql> select * from dept;
  4. +--------+------------+----------+
  5. | deptno | dname | loc |
  6. +--------+------------+----------+
  7. | 10 | ACCOUNTING | NEW YORK |
  8. | 20 | RESEARCH | DALLAS |
  9. | 30 | SALES | CHICAGO |
  10. | 40 | OPERATIONS | BOSTON |
  11. | 50 | fdsf | fdsaf |
  12. | 60 | fdsf | fdsaf |
  13. | 70 | aaa | bbb |
  14. | 80 | fdabb | bbb |
  15. +--------+------------+----------+
  16. 8 rows in set (0.00 sec)

5, 写入查询结果集

将查询的结果保存到一个表中

语法:insert into 结果表 (字段1, ..., 字段n) select 字段1, ..., 字段n from 表名;

注意:结果表中的字段需要与select中的字段一一对应

  1. mysql> create table result_table(
  2. -> id bigint not null auto_increment,
  3. -> deptno bigint not null,
  4. -> deptno_avg_sal double not null,
  5. -> primary key (id));
  6. Query OK, 0 rows affected (0.39 sec)
  7. mysql> show tables;
  8. +-----------------+
  9. | Tables_in_scott |
  10. +-----------------+
  11. | aaa |
  12. | dept |
  13. | emp |
  14. | result_table |
  15. | salgrade |
  16. +-----------------+
  17. 5 rows in set (0.00 sec)
  18. # 将select deptno, avg(sal) from emp group by deptno查询结果保存到表result_table中
  19. mysql> insert into result_table (deptno, deptno_avg_sal) select deptno, avg(sal) from emp group by deptno;
  20. Query OK, 3 rows affected (0.13 sec)
  21. Records: 3 Duplicates: 0 Warnings: 0
  22. mysql> select * from result_table;
  23. +----+--------+----------------+
  24. | id | deptno | deptno_avg_sal |
  25. +----+--------+----------------+
  26. | 1 | 20 | 2175 |
  27. | 2 | 30 | 1566.666666666 |
  28. | 3 | 10 | 2916.666666666 |
  29. +----+--------+----------------+
  30. 3 rows in set (0.00 sec)

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/羊村懒王/article/detail/487771
推荐阅读
相关标签
  

闽ICP备14008679号