SQLite 插入数据
1. 简介
SQLite 是一款轻量级的嵌入式数据库引擎,由C语言编写而成。它被广泛应用于移动设备和嵌入式系统中,也常用于开发小型的桌面应用程序。SQLite 不像传统的数据库管理系统需要独立的服务器进程,而是将数据库作为一个文件保存在主机的文件系统中。
在使用SQLite时,我们需要了解如何插入数据,也就是将数据存储到数据库中。本文将详细介绍在SQLite中插入数据的各种方法和技巧。
2. 使用 INSERT INTO 语句插入数据
在SQLite中,插入数据最常用的方法是使用 INSERT INTO
语句。语法如下:
INSERT INTO table_name (col1, col2, col3, ...) VALUES (value1, value2, value3, ...);
其中 table_name
是要插入数据的表名,(col1, col2, col3, ...)
是指定要插入数据的列名,VALUES
关键字后面跟着要插入的值。
例如,我们有一个名为 students
的表,有三列分别是 id
、name
、age
。我们可以使用以下语句将一条学生记录插入到 students
表中:
INSERT INTO students (id, name, age) VALUES (1, 'Alice', 18);
3. 使用 INSERT INTO … SELECT 语句插入数据
除了直接指定具体的值,我们还可以使用 INSERT INTO ... SELECT
语句从其他表中选择数据并插入到目标表中。
INSERT INTO table_name (col1, col2, col3, ...)
SELECT col1, col2, col3, ...
FROM source_table
WHERE condition;
这个语句的执行过程是先从 source_table
中选择符合条件的数据,然后将对应的列数据插入到 table_name
中的指定列中。
例如,我们有一个名为 students_temp
的临时表,包含了部分学生的信息,我们可以使用以下语句将 students_temp
表中的学生记录插入到 students
表中:
INSERT INTO students (id, name, age)
SELECT id, name, age
FROM students_temp
WHERE age > 20;
4. 使用 INSERT OR REPLACE 语句插入或替换数据
在某些情况下,我们可能需要插入数据时检查是否已经存在相同的记录,如果存在则替换原有记录。SQLite 提供了方便的 INSERT OR REPLACE
语句来实现这个功能。
INSERT OR REPLACE INTO table_name (col1, col2, col3, ...) VALUES (value1, value2, value3, ...);
当插入数据时,如果 table_name
中已经存在符合条件的记录,那么原有的记录将被新数据替换。如果不存在相同的记录,则相当于执行了普通的 INSERT INTO
操作。
例如,我们有一个名为 scores
的表,有两列 name
和 score
。我们可以使用以下语句插入学生的考试成绩:
INSERT OR REPLACE INTO scores (name, score) VALUES ('Alice', 90);
5. 使用 REPLACE INTO 语句替换数据
除了使用 INSERT OR REPLACE
语句来插入或替换数据,SQLite 还提供了另一种替换数据的方式,即 REPLACE INTO
语句。
REPLACE INTO table_name (col1, col2, col3, ...) VALUES (value1, value2, value3, ...);
REPLACE INTO
语句的执行方式类似于先删除指定记录,然后再插入新数据的操作。如果指定记录不存在,则相当于执行普通的 INSERT INTO
操作。
例如,我们有一个名为 scores
的表,有两列 name
和 score
。我们可以使用以下语句将学生的考试成绩替换为新成绩:
REPLACE INTO scores (name, score) VALUES ('Alice', 95);
结语
SQLite 是一款简单易用且功能强大的嵌入式数据库引擎,能够满足许多小型应用程序的数据库需求。通过本文的介绍,你了解了如何在SQLite中插入数据的几种方法,包括使用 INSERT INTO
语句、INSERT INTO ... SELECT
语句以及 INSERT OR REPLACE
、REPLACE INTO
语句。