SQLite INSERT INTO 语句用于在表中插入新记录。使用 INSERT INTO 语句有两种方法,如下所述。

语法

以下语法指定要插入的列名称和相应的值。

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

以下语法仅指定值。因此,必须按照与表中的列相同的顺序指定值。

INSERT INTO table_name 
VALUES (value1, value2, value3, ...); 

示例:

考虑一个包含名为Employee  的表的数据库具有以下记录的员工:

EmpIDNameCityAgeSalary
1JohnLondon253000
2MarryNew York242750
3JoParis272800
4KimAmsterdam303100
5RameshNew Delhi283000
6HuangBeijing282800

使用下面的查询,在Employee中添加两条新记录table:

INSERT INTO Employee (EmpID, Name, City, Age, Salary)
VALUES (7, 'Suresh', 'Mumbai', 29, 2900);
INSERT INTO Employee 
VALUES (8, 'Zayne', 'Oslo', 31, 3400);

-- 查看插入结果
SELECT * from Employee 

现在 Employee 表将包含以下记录:

EmpIDNameCityAgeSalary
1JohnLondon253000
2MarryNew York242750
3JoParis272800
4KimAmsterdam303100
5RameshNew Delhi283000
6HuangBeijing282800
7SureshMumbai292900
8ZayneOslo313400

仅在指定列中插入数据 :要在指定列中插入数据,需要指定列名。请参阅下面的查询:

INSERT INTO Employee (EmpID, Name, Age)
VALUES (7, 'Suresh', 29);

-- 查看插入结果
SELECT * from Employee 

现在 Employee 表将包含以下记录:

EmpIDNameCityAgeSalary
1JohnLondon253000
2MarryNew York242750
3JoParis272800
4KimAmsterdam303100
5RameshNew Delhi283000
6HuangBeijing282800
7Suresh29

使用另一个表填充一个表

通过使用 SQLite INSERT INTO SELECT 语句,可以使用另一个表来填充一个表。请注意,另一个表应该具有填充第一个表所需的字段集。

语法

在 SQLite 中使用 INSERT INTO SELECT 语句的语法如下所示:

INSERT INTO table1 [(column1, column2, ...)] 
SELECT column1, column2, ...  FROM table2
[WHERE condition]; 

示例:

考虑一个数据库,其中包含名为 Employee 和 HREmployee 的表,并具有以下记录:

表 1:Employee 

EmpIDNameCityAgeSalary
1JohnLondon253000
2MarryNew York242750
3JoParis272800
4KimAmsterdam303100
5RameshNew Delhi283000
6HuangBeijing282800

表 2:HREmployee 表

HREmployee 表不包含任何记录,并具有以下字段 - HRID、Name和Address。

可以通过以下查询使用 Employee 表填充 HREmployee 表的给定字段:

INSERT INTO HREmployee (HRID, Name, Address)
SELECT EmpID, Name, City FROM Employee
WHERE EmpID IN (1, 4, 5);

-- 查看结果
SELECT * from HREmployee 

现在 HREmployee 表将包含以下记录:

HRIDNameAddress
1JohnLondon
4KimAmsterdam
5RameshNew Delhi