本节主要介绍如何利用INSERT INTO向表中插入数据.

插入数据的方式

  • 插入完整的行
  • 插入行的一部分
  • 插入多行
  • 插入某些查询

插入完整的行

INSERT INTO 表 
VALUES{NULL,
	'LUO' ,
	1887042066,
	0101,
	NULL
}

说明(1) 各个列必须以它们在表定义中出现的次序填充 (2) 如果某个列没有值,应该使用NULL值(假定表允许对该列指定空值)(3) 该列由MySQL自动增量。你不想给出一个值(这是MySQL的工作),又不能省略此列(如前所述,必须给出每个列),所以指定一个NULL值(它被MySQL忽略)(4) 该种方式虽然简单,但是并不安全,应该尽量避免使用
根据上面的缺陷,我们通常对此进行改进,也就是每次给出列名,并指定值,例如:

INSERT INTO 表{name,
	phone ,
	id,
	age
} 
VALUES{NULL,
	'LUO' ,
	1887042066,
	0101,
	NULL
};

此例子完成与前一个INSERT语句完全相同的工作,但在表名后的括号里明确地给出了列名。
在插入行时,MySQL将用VALUES列表中的相应值填入列表中的对应项。VALUES中的第一个值对应于第一个指定的列名。第二个值对应于第二个列名,如此等等。因为提供了列名,VALUES必须以其指定的次序匹配指定的列名,不一定按各个列出现在实际表中的次序。其优点是,即使表的结构改变,此INSERT语句仍然能正确工作。

插入多行

INSERT可以插入一行到一个表中。但如果你想插入多个行怎么办?可以使用多条INSERT语句,甚至一次提交它们,每条语句用一个分号结束,如下所示:

mysql填充 MySQL填充数据_database


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

mysql填充 MySQL填充数据_MySQL_02

插入检索出数据

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

mysql填充 MySQL填充数据_mysql_03


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