INSERT INTO查询可以包含其部分或全部列的值。INSERT INTO可以与SELECT结合来插入记录。如果你对在SQL中创建表不熟悉,请查看我的关于如何在SQL中创建表的教程。
SQL插入
SQL INSERT INTO语句用于向数据库添加新值。INSERT INTO 语句将新记录添加到表中。
语法
SQL INSERT INTO 语句的一般语法如下:
INSERT INTO table-name (column-names)
VALUES (values)
参数
这里,列名 可以是column1, column2, column3,...columnN,是你想在数据库中插入数据的表的列名。
如果你要为一个表的所有列添加值,你可能不需要在SQL查询中指定列名。但要确保你需要保留列的顺序。 让我们举个例子。
步骤1:创建一个SQL表
使用MacOS和SQLite客户端。你可以使用phpMyAdmin或Oracle,或其他数据库软件。 键入以下查询来创建一个表:
CREATE TABLE Apps (
AppID int,
AppName varchar(255),
CreatorName varchar(255),
AppCategory varchar(255),
AppPrice int
);
因此,我们已经创建了一个名为Apps 的表,它有五列。
第2步:在SQL中插入表内的值
好的,下一步是使用SQL的INSERT INTO查询来添加行:
INSERT INTO Apps (AppID,`AppName`,`CreatorName`,`AppCategory`,`AppPrice`)
VALUES (1, 'AppDividend', 'Krunal', 'Software', 50 );
现在,运行查询,在表中看到有一条记录 被添加。
所以,我们已经成功地在数据库中插入了数据。
在数据库中插入多个值
我们也可以向表中插入多个值。请看下面的查询:
INSERT INTO Apps (AppID,`AppName`,`CreatorName`,`AppCategory`,`AppPrice`)
VALUES
(2, 'Escrow', 'LVVM', 'Fashion', 60 ),
(3, 'KGB', 'MJ', 'Music', 70 ),
(4, 'Moscow', 'Mayor', 'Area', 80 ),
(5, 'MoneyControl', 'Mukesh', 'Investment', 90 ),
(6, 'Investing', 'Bill', 'Stocks', 100 )
上述SQL查询的输出如下:

如果你要为一个表的所有列添加值,你不需要在SQL查询中指定列名。
然而,要确保这些值的顺序与表中的列相同。
使用另一个表来填充一个表
你可以通过选择语句在另一个表上将值填充到表中,前提是另一个表有填充第一个表所需的字段。例如,请看下面的SQL查询。首先,让我们尝试将数据添加到DummyApp表中:
INSERT INTO DummyApp (AppID, `AppName`)
SELECT AppID, AppName
FROM Apps;
在上面的查询中,我们使用Apps表在 DummyApp 表中插入两列数值。
DummyApp 表只有两列,即AppID 和AppName。
此外,应用程序 表有两列。这就是为什么我们可以很容易地将所有的值从一个表添加到另一个表。例如,如果你运行上述查询并设置DummyApp 表,Apps 表中的所有值将被复制到DummyApp表中。
只在指定的列中插入数据
也可以只在特定的列中插入数据。请看下面的查询:
INSERT INTO Apps (AppID, `AppName`)
VALUES (10, 'Stavanger');
所以,上面的查询只插入了一行和两列值。
所有其他列的值对该特定行来说应该是NULL 。
在这里,你需要非常小心,因为如果某些列不允许NULL值,那么SQL引擎会抛出一个异常,数据将不会被插入到数据库。
本教程到此结束。