insert into是mysql中最常用的插入语句,它有6种写法。

1向原表中某些字段中插入一条记录。

语法:insert into +表名(表中的字段,,)value(字段所对应的记录,,);

mysql> select * from joke;

+------+-----------+-------+------+

| gid | name | sex | age |

+------+-----------+-------+------+

| 3 | xiaowan2 | male | 22 |

| 3 | xiaowan2 | male | 22 |

| 3 | xiaowan2 | male | 22 |

| 3 | xiaowan22 | 1male | 22 |

+------+-----------+-------+------+

4 rows in set (0.02 sec)

mysql> insert into joke (gid,name)value(0,"joker");

Query OK, 1 row affected (0.09 sec)

mysql> select * from joke;

+------+-----------+-------+------+

| gid | name | sex | age |

+------+-----------+-------+------+

| 3 | xiaowan2 | male | 22 |

| 3 | xiaowan2 | male | 22 |

| 3 | xiaowan2 | male | 22 |

| 3 | xiaowan22 | 1male | 22 |

| 0 | joker | NULL | NULL |

+------+-----------+-------+------+

5 rows in set (0.00 sec)

2向原表的字段中插入多条记录的方法一。

语法:insert into +表名(表中的字段,,)values(字段所对应的记录,,)(字段所对应的记录);

mysql> insert into joke (gid,name)values(0,"joker"),(1,"jhj");

Query OK, 2 rows affected (0.14 sec)

Records: 2 Duplicates: 0 Warnings: 0

mysql> select * from joke;

+------+-----------+-------+------+

| gid | name | sex | age |

+------+-----------+-------+------+

| 3 | xiaowan2 | male | 22 |

| 3 | xiaowan2 | male | 22 |

| 3 | xiaowan2 | male | 22 |

| 3 | xiaowan22 | 1male | 22 |

| 0 | joker | NULL | NULL |

| 0 | joker | NULL | NULL |

| 1 | jhj | NULL | NULL |

+------+-----------+-------+------+

7 rows in set (0.00 sec)

3向原表的字段中插入多条记录的方法二。

语法:insert into+表名 select v1,v2 union all

select v1,v2;

mysql> insert into book select "abc","bdd" union all

-> select "add","dsf";

Query OK, 2 rows affected (0.16 sec)

Records: 2 Duplicates: 0 Warnings: 0

mysql> select * from book;

+------+------+

| a | b |

+------+------+

| abc | bdd |

| add | dsf |

+------+------+

2 rows in set (0.00 sec)

如果插入的记录是数字的话要在数字的逗号后面加n:

mysql> insert into Student select 1,N'刘一',18,N'男' union all

-> select 2,N'钱二',19,N'女';

Query OK, 2 rows affected (0.09 sec)

Records: 2 Duplicates: 0 Warnings: 0

mysql> select * from student;

+------+--------+------+------+

| s | sname | sage | ssex |

+------+--------+------+------+

| 1 | 刘一 | 18 | 男 |

| 2 | 钱二 | 19 | 女 |

| 3 | 张三 | 17 | 男 |

| 4 | 李四 | 18 | 女 |

| 5 | 王五 | 17 | 男 |

| 6 | 赵六 | 19 | 女 |

| 1 | 刘一 | 18 | 男 |

| 2 | 钱二 | 19 | 女 |

+------+--------+------+------+

8 rows in set (0.00 sec)

4复制旧表的信息到新表(假设两个表的表结构一样)

语法:insert into+新表+select语句;

mysql> insert into q1 select * from 4inall where sage=18;

Query OK, 7 rows affected (0.28 sec)

Records: 7 Duplicates: 0 Warnings: 0

mysql> select * from q1;

+--------+------+--------+------+--------+------+------+-------+

| sname | sage | tname | t | cname | s | c | score |

+--------+------+--------+------+--------+------+------+-------+

| 刘一 | 18 | 叶平 | 1 | 语文 | 1 | 1 | 56 |

| 钱二 | 19 | 叶平 | 1 | 语文 | 2 | 1 | 79 |

| 张三 | 17 | 叶平 | 1 | 语文 | 3 | 1 | 91 |

| 王五 | 17 | 叶平 | 1 | 语文 | 5 | 1 | 46 |

| 赵六 | 19 | 叶平 | 1 | 语文 | 6 | 1 | 35 |

| abc | NULL | NULL | NULL | NULL | NULL | NULL | NULL |

| 刘一 | 18 | 叶平 | 1 | 语文 | 1 | 1 | 56 |

| 刘一 | 18 | 贺高 | 2 | 数学 | 1 | 2 | 78 |

| 刘一 | 18 | 杨艳 | 3 | 英语 | 1 | 3 | 67 |

| 刘一 | 18 | 周磊 | 4 | 物理 | 1 | 4 | 58 |

| 李四 | 18 | 贺高 | 2 | 数学 | 4 | 2 | 88 |

| 李四 | 18 | 杨艳 | 3 | 英语 | 4 | 3 | 90 |

| 李四 | 18 | 周磊 | 4 | 物理 | 4 | 4 | 93 |

+--------+------+--------+------+--------+------+------+-------+

13 rows in set (0.00 sec)

5复制旧表信息到新表(假设两个的表的表结构不一样)。

语法::insert into+新表+字段名+select语句;

mysql> insert into q1 (sname)select 4inall.s from 4inall where t=2;

Query OK, 5 rows affected (0.13 sec)

Records: 5 Duplicates: 0 Warnings: 0

mysql> select * from q1;

+--------+------+--------+------+--------+------+------+-------+

| sname | sage | tname | t | cname | s | c | score |

+--------+------+--------+------+--------+------+------+-------+

| 刘一 | 18 | 叶平 | 1 | 语文 | 1 | 1 | 56 |

| 钱二 | 19 | 叶平 | 1 | 语文 | 2 | 1 | 79 |

| 张三 | 17 | 叶平 | 1 | 语文 | 3 | 1 | 91 |

| 王五 | 17 | 叶平 | 1 | 语文 | 5 | 1 | 46 |

| 赵六 | 19 | 叶平 | 1 | 语文 | 6 | 1 | 35 |

| abc | NULL | NULL | NULL | NULL | NULL | NULL | NULL |

| 刘一 | 18 | 叶平 | 1 | 语文 | 1 | 1 | 56 |

| 刘一 | 18 | 贺高 | 2 | 数学 | 1 | 2 | 78 |

| 刘一 | 18 | 杨艳 | 3 | 英语 | 1 | 3 | 67 |

| 刘一 | 18 | 周磊 | 4 | 物理 | 1 | 4 | 58 |

| 李四 | 18 | 贺高 | 2 | 数学 | 4 | 2 | 88 |

| 李四 | 18 | 杨艳 | 3 | 英语 | 4 | 3 | 90 |

| 李四 | 18 | 周磊 | 4 | 物理 | 4 | 4 | 93 |

| 1 | NULL | NULL | NULL | NULL | NULL | NULL | NULL |

| 2 | NULL | NULL | NULL | NULL | NULL | NULL | NULL |

| 3 | NULL | NULL | NULL | NULL | NULL | NULL | NULL |

| 4 | NULL | NULL | NULL | NULL | NULL | NULL | NULL |

| 6 | NULL | NULL | NULL | NULL | NULL | NULL | NULL |

+--------+------+--------+------+--------+------+------+-------+

18 rows in set (0.00 sec)

6.向原本中插入数据(不能是其他表的数据):

语法:insert into 原表名 set 原表字段名=原表字段名(=“具体指”可有可无);

mysql> insert into 4a set sname=sname="赵六";

Query OK, 1 row affected (0.29 sec)

mysql> select * from 4a;

+--------+------+--------+------+--------+------+------+-------+

| sname | sage | tname | t | cname | s | c | score |

+--------+------+--------+------+--------+------+------+-------+

| 刘一 | 18 | 叶平 | 1 | 语文 | 1 | 1 | 56 |

| 刘一 | 18 | 贺高 | 2 | 数学 | 1 | 2 | 78 |

| 刘一 | 18 | 杨艳 | 3 | 英语 | 1 | 3 | 67 |

| 刘一 | 18 | 周磊 | 4 | 物理 | 1 | 4 | 58 |

| 钱二 | 19 | 叶平 | 1 | 语文 | 2 | 1 | 79 |

| 钱二 | 19 | 贺高 | 2 | 数学 | 2 | 2 | 81 |

| 钱二 | 19 | 杨艳 | 3 | 英语 | 2 | 3 | 92 |

| 钱二 | 19 | 周磊 | 4 | 物理 | 2 | 4 | 68 |

| 张三 | 17 | 叶平 | 1 | 语文 | 3 | 1 | 91 |

| 张三 | 17 | 贺高 | 2 | 数学 | 3 | 2 | 47 |

| 张三 | 17 | 杨艳 | 3 | 英语 | 3 | 3 | 88 |

| 张三 | 17 | 周磊 | 4 | 物理 | 3 | 4 | 56 |

| 李四 | 18 | 贺高 | 2 | 数学 | 4 | 2 | 88 |

| 李四 | 18 | 杨艳 | 3 | 英语 | 4 | 3 | 90 |

| 李四 | 18 | 周磊 | 4 | 物理 | 4 | 4 | 93 |

| 王五 | 17 | 叶平 | 1 | 语文 | 5 | 1 | 46 |

| 王五 | 17 | 杨艳 | 3 | 英语 | 5 | 3 | 78 |

| 王五 | 17 | 周磊 | 4 | 物理 | 5 | 4 | 53 |

| 赵六 | 19 | 叶平 | 1 | 语文 | 6 | 1 | 35 |

| 赵六 | 19 | 贺高 | 2 | 数学 | 6 | 2 | 68 |

| 赵六 | 19 | 周磊 | 4 | 物理 | 6 | 4 | 71 | # 新增

| NULL | NULL | NULL | NULL | NULL | NULL | NULL | 93 |

| NULL | NULL | NULL | NULL | NULL | NULL | NULL | NULL |

| NULL | NULL | NULL | NULL | NULL | NULL | NULL | NULL |

+--------+------+--------+------+--------+------+------+-------+

24 rows in set (0.00 sec)

通过以上实例我们可以看到insert into语句只能向原表中插入于其字段对应的数据,那么能不能通过insert into语句来把其他表的数据插入到原表中呢:

在MySQL中set方法:

ModifyStatement.Set Method 修改语句 set方法

Sets key and value. 设置键和值。

由于insert into语句是一个插入性的语句,所以它的功能要么向指定的表插入数据

也许你看到这个SQL语句是正确的,就觉得这样应该也可以:

mysql> mysql> insert into 4a set sname=4ainall.sname;

ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ‘mysql> insert into 4a set sname=4ainall.sname’ at line 1

或者这样也可以:

mysql> mysql> insert into 4a set sname=”赵六”;

ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ‘mysql> insert into 4a set sname=”赵六”‘ at line 1

然后这样也是不可用:

mysql> insert into 4a select * from 4ainall set sname=4ainall.sname;

ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ‘from 4ainall set sname=4ainall.sname’ at line 1

可以看出由于select是作用于4inall这个表的,而set方法也只能在select语句中,这就直接导致set方法只能作用于4inall这个表,而无法作用于4a这个表。

但是如果我们不用select语句的话编译器又怎么会知道4inall表中的数据在哪里?

显然select是用于查的而set则是一个用于改的方法,两者无法结合在一起——insert into set语句当然也不能用于将其他表的数据插入到原表中了。

mysql insert语句大全_MySQL中insert into语句的6种写法相关推荐

  1. mysql中insert into含义_MySQL中insert into语句的用法

    insert into是mysql中最常用的插入语句,通过 INSERT INTO SELECT 语句从一个表复制数据,然后把数据插入到一个已存在的表中,目标表中任何已存在的行都不会受影响. 今天我们 ...

  2. mysql字段重命名_MySQL中使用SQL语句对字段进行重命名

    MySQL中,如何使用SQL语句来对表中某一个字段进行重命名呢?我们将使用alter table 这一SQL语句. 重命名字段的语法为:alter table change . 现在我们来尝试把tes ...

  3. mysql 中 case语句吗_Mysql中的Case语句

    1.Case基本初识 case语句是mysql中的一个条件语句,可以在字段中使用case语句进行复杂的筛选以及构造新的字段.下面通过两个leetcode例子来详细解读case语句的功能: 1.1 Le ...

  4. mysql日期sql语句大全_mysql日期查找sql语句大全

    经常会遇到这样的情况,本月阅读排行榜,本周排行榜等等.那么这样的sql怎么写呢,小班收集了一些这样的时间函数给大家参考,希望大家在自己网站项目中可以用的到 在mysql中对时间日期操作的函数有很多,有 ...

  5. mysql获取当月最后一天_mysql中获取本月第一天、本月最后一天、上月第一天、上月最后一天

    mysql获取当月最后一天_mysql中获取本月第一天.本月最后一天.上月第一天.上月最后一天等等 转自: https://blog.csdn.net/min996358312/article/det ...

  6. MySQL中,关联查询的3种写法…

    原文地址:MySQL中,关联查询的3种写法(USING/ON) 作者:王小安 看看下面三个关联查询的 SQL 语句有何区别? [sql]  view plain copy SELECT * FROM  ...

  7. Java中List for循环的6种写法总结(推荐)(亲测)

    如下所示: List<String> list = new ArrayList<String>(); ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 ...

  8. vue中,scss样式的三种写法——当前页面直接定义、@import引入样式、main.js引入公共样式 deep和important的写法

    vue中,scss样式的三种写法--当前页面直接定义.@import引入样式.main.js引入公共样式 & deep和important的写法 1.安装scss # 安装node-sass ...

  9. mysql插入语句例句_MySQL 插入/添加数据语句(INSERT INTO)用法详解

    MySQL 插入数据操作使用 INSERT INTO 语句,它属于 DML(数据操作语言)范畴,该语句插入方式支持从简单的添加操作到唯一键(唯一索引)冲突时的更新操作,同时也支持查询结果直接插入操作. ...

最新文章

  1. Python程序打包
  2. Mysql进阶(1)——异步复制(主从复制、Gtid复制)、半同步复制
  3. mysql会话命令_mysql常用命令(持续更新)
  4. Python技巧:Docker框架的使用系列教程(一)
  5. componentsJoinedByString 和 componentsSeparatedByString 的方法的区别
  6. 开放源代码_如何使用开放源代码开展业务:热门阅读
  7. sqlserver leftjoin出现重复数据_数据库存数据时,逻辑上防重了为啥还会出现重复记录?...
  8. JavaScript学习(五十)—hasOwnProperty属性和in关键字
  9. 机器人词库 python字典_('python,2017-robot-编程字典',)
  10. 黑苹果安装教程,配EFI引导文件+软件!
  11. oracle instant client package,Oracle数据库之Oracle Instant Client的安装和使用
  12. GHOSTXPSP3电脑爱好者V9.9美化版
  13. 手机怎么用外嵌字幕_图片上添加字幕用手机怎么操作?
  14. zebradesginer zpl代码_斑马ZebraDesigner免费标签编辑软件
  15. word小技巧之表格插入行
  16. 特效编辑器开发手记1——令人蛋疼菊紧的Cocos2d-x动态改变粒子数
  17. 普通话和英语发音_incomplete
  18. 三阶魔方快速还原法还原方法
  19. typeof和instanceof的区别
  20. 网络平台运行计算机终端,Terminal是什么意思?Mac如何打开终端Terminal?

热门文章

  1. zheshi yi ge test
  2. Stable Diffusion - 提示词翻译插件 sd-webui-prompt-all-in-one
  3. VB6中ScaleMode位置属性特性的实验及总结.
  4. 新手入门级jQuery学习
  5. 超简单在宝塔面板中使用Mysql命令快速导入大容量数据库
  6. dch中mysql作用_《自然》小鼠中枢神经系统中的异物反应改变肽微/水凝胶功能
  7. 以测试用例为核心的软件测试
  8. 征服英语的30个坏习惯
  9. Harbor数据迁移
  10. linux平台生成awr报告,AWR 导出/导入/生成报告