本节主要介绍如何利用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语句,甚至一次提交它们,每条语句用一个分号结束,如下所示:
或者,只要每条INSERT语句中的列名(和次序)相同,可以如下组合各语句:
插入检索出数据
INSERT一般用来给表插入一个指定列值的行。但是,INSERT还存在另一种形式,可以利用它将一条SELECT语句的结果插入表中.
INSERT SELECT中SELECT语句可包含WHERE子句以过滤插入的数据。