SQLite INSERT 语句
                           
天天向上
发布: 2025-03-04 08:35:44

原创
287 人浏览过

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. 使用默认值

如果某列的定义中设置了默认值(如 DEFAULTAUTOINCREMENT),则在插入数据时可以省略这些列。

示例:插入时使用默认值

假设 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_amountorder_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 操作。

更多详细内容请关注其他相关文章。

发表回复 0

Your email address will not be published. Required fields are marked *