SQLite INSERT 语句
INSERT语句用于向 SQLite 数据库表中插入数据。你可以插入单条记录或多条记录。
1. 插入单条数据
语法
INSERT INTO table_name (column1, column2, column3, ...)
VALUES (value1, value2, value3, ...);
table_name:要插入数据的表名。column1, column2, ...:要插入数据的列名。value1, value2, ...:对应列的数据值。
示例:插入单条记录
假设有一个 users 表,包含 id, name, 和 age 列:
INSERT INTO users (name, age)
VALUES ('Alice', 25);
- 这里,
id列是AUTOINCREMENT的,因此不需要显式提供值。
2. 插入多条数据
语法
INSERT INTO table_name (column1, column2, ...)
VALUES (value1, value2, ...),
(value1, value2, ...),
...;
示例:插入多条记录
INSERT INTO users (name, age)
VALUES
('Alice', 25),
('Bob', 30),
('Charlie', 35);
这将一次性向 users 表插入三条记录。
3. 使用默认值
如果某列的定义中设置了默认值(如 DEFAULT 或 AUTOINCREMENT),则在插入数据时可以省略这些列。
示例:插入时使用默认值
假设 id 列是 AUTOINCREMENT,可以省略该列:
INSERT INTO users (name, age)
VALUES ('David', 28);
此时,SQLite 会自动生成一个唯一的 id 值。
4. 插入查询结果
你还可以将查询结果插入到表中。这种方式被称为 INSERT INTO ... SELECT。
语法
INSERT INTO table_name (column1, column2, ...)
SELECT column1, column2, ...
FROM another_table
WHERE condition;
示例:从 orders 表插入数据到 users 表
假设有一个 orders 表,其中包含 user_id, order_amount 和 order_date 列,你想将某些数据插入 users 表:
INSERT INTO users (name, age)
SELECT 'New User', 30
FROM orders
WHERE order_amount > 100;
5. 在 Python 中使用 INSERT
你可以通过 Python 中的 sqlite3 库执行 INSERT 语句。
示例:Python 插入单条记录
import sqlite3
# 连接到数据库
conn = sqlite3.connect('my_database.db')
cursor = conn.cursor()
# 插入单条记录
cursor.execute("INSERT INTO users (name, age) VALUES (?, ?)", ('Alice', 25))
# 提交事务
conn.commit()
# 关闭连接
conn.close()
在 Python 中,? 用于占位符,可以防止 SQL 注入攻击。
示例:Python 插入多条记录
import sqlite3
# 连接到数据库
conn = sqlite3.connect('my_database.db')
cursor = conn.cursor()
# 插入多条记录
cursor.executemany("INSERT INTO users (name, age) VALUES (?, ?)",
[('Alice', 25), ('Bob', 30), ('Charlie', 35)])
# 提交事务
conn.commit()
# 关闭连接
conn.close()
6. 总结
- 单条插入:使用
INSERT INTO ... VALUES语法。 - 多条插入:通过
INSERT INTO ... VALUES (...), (...)批量插入。 - 默认值:对于
AUTOINCREMENT或有默认值的列,可以省略该列。 - 插入查询结果:使用
INSERT INTO ... SELECT将查询结果插入到表中。 - Python 示例:可以使用 Python 的
sqlite3库执行INSERT操作。
更多详细内容请关注其他相关文章。