编辑这个页面须要登录或更高权限!

SQL 插入数据(INSERT INTO 语句)

在本教程中,您将学习如何使用SQL在数据库表中插入记录。

在表中插入数据

上一章中,我们在演示数据库中创建了一个名为person的表。现在是时候在我们新创建的数据库表中插入一些数据了。

INSERT INTO语句用于在数据库表中插入新行。

语法

用于将数据插入表的基本语法可以通过以下方式给出:

INSERT INTO table_name (column1,column2,...) VALUES (value1,value2,...);

在这里,column1column2,...等表示表列的名称,而value1value2,...等表示这些列的对应值。

让我们在persons表中插入一些记录。

步骤1:查看表结构

在添加记录之前,最好先获取有关表结构的信息。在MySQL命令行上执行以下命令。它将在人员表中显示有关列的信息,即列名,数据类型,约束等。

mysql> DESCRIBE persons;

您可以使用命令,在MySQL和Oracle数据库中查看列信息或任何表的结构,而在SQL Server中,可以使用实际的表名替换table_name。DESCRIBE table_name;EXEC sp_columns table_name;

步骤2:将记录添加到表

以下语句在persons表中插入新行。

INSERT INTO persons (name, birth_date, phone)

VALUES ('Peter Wilson', '1990-07-15', '0711-020361');

您是否注意到,我们没有为idfield 插入任何值?因为,如果您还记得创建表一章中的内容,该id字段被标记为AUTO_INCREMENT标志,它告诉MySQL如果未指定该字段,则会自动为该字段分配一个值。

注意:非数字值(例如字符串和日期)必须始终用引号引起来,而数字值绝不能用引号引起来。另外,如果您的字符串本身包含引号,则应使用反斜杠('Let\'s go')对其进行转义。

同样,将另一行插入persons表,如下所示:

INSERT INTO persons (name, birth_date, phone)
VALUES ('Carrie Simpson', '1995-05-01', '0251-031259');

以类似的方式在persons表中再插入一行:

INSERT INTO persons (name, birth_date, phone)
VALUES ('Victoria Ashworth', '1996-10-17', '0695-346721');

现在,如果您从人员表中选择记录,则输出将如下所示:

+----+--------------------+------------+-------------+
| id | name               | birth_date | phone       |
+----+--------------------+------------+-------------+
|  1 | Peter Wilson       | 1990-07-15 | 0711-020361 |
|  2 | Carrie Simpson     | 1995-05-01 | 0251-031259 |
|  3 | Victoria Ashworth  | 1996-10-17 | 0695-346721 |
+----+--------------------+------------+-------------+

在下一章中,我们将学习用于从表中选择记录的 SQL语句。