MySQL插入数据-INSERT

MySQL的学习算是告一段落了,前面学习的所有内容都是基于数据查找的。接下来我们将介绍数据插入的相关内容——如何利用INSERT语句将数据插入表中。

1.数据插入

(1)我们已经知道SELECT是最常使用的SQL语句了(在这之前学习的都是查询相关的内容)。此外,还有3个经常使用的SQL语句需要学习。第一个就是INSERT

(2)INSERT用来插入(或添加)行到数据库表的。插入可以用几种方式使用:

  • 插入完整的行;
  • 插入行的一部分;
  • 插入多行;
  • 插入某些查询的结果
2.插入完整的行

把数据插入表中的最简单的方法是使用基本的INSERT语法,它要求指定表明和被插入到新行中的值。

没有输出:INSERT语句一般不会产生输出。

(1)存储到每个表列中的数据在VALUES子句中给出,对每个列必须提供一个值。如果某个列没有值,应该使用NULL值。上述例题中,第一列cust_id也为NULL。这是因为每次插入一个新行时,该列有MySQL自动增量。

(2)各个列必须以它们在表定义中出现的次序填充。

(3)虽然这种语法很简单,但并不安全,应该尽量避免使用。如下语句相对更安全些:

此例完成以前一个INSERT语句相同的工作,但在表名后的括号里明确地给出了列名。因为提供了列名,VALUES必须以其指定的次序匹配指定的列名,不一定按各个列出现在实际表中的次序。

3.插入多个行

INSERT可以插入一行到一个表中。也可以插入多行。每条语句用一个分号结束:

或者,只要每条INSERT语句中的列名(和次序)相同,可以如下组合各语句:

其中单条INSERT语句有多组值,每组值用一对圆括号括起来,用逗号分隔。

4.插入检索出的数据

(1)INSERT一般用来给表插入一个指定列值的行。但是,INSERT还存在另一种形式,可以利用它将一条SELECT语句的结果插入表中。这就是所谓的INSERT SELECT。

(2)如下示例,从另一表中合并客户列表到你的customers表。不需要每次读取一行,然后再将它用INSERT插入:

1)INSERT SELECT 从custnew中将所有数据导入customers。

2)INSERT SELECT中SELECT语句可包含WHERE子句以过滤插入的数据。

发表评论

电子邮件地址不会被公开。 必填项已用*标注