Python3 操作sqlite 插入一条数据并返回主键 id的实例
时间: 2024-03-05 14:50:53 浏览: 17
好的,以下是 Python3 操作 SQLite 插入一条数据并返回主键 id 的实例:
```python
import sqlite3
# 连接到 SQLite 数据库
conn = sqlite3.connect('example.db')
c = conn.cursor()
# 创建表
c.execute('''CREATE TABLE IF NOT EXISTS users
(id INTEGER PRIMARY KEY AUTOINCREMENT,
name TEXT,
age INTEGER)''')
# 插入数据
c.execute("INSERT INTO users (name, age) VALUES (?, ?)", ('Alice', 25))
user_id = c.lastrowid
print("插入成功,该用户的 id 为:", user_id)
# 提交更改
conn.commit()
# 关闭连接
conn.close()
```
这段代码首先创建了一个名为 `users` 的表,包含三个字段:id、name 和 age。
然后使用 `c.execute()` 方法插入一条数据,其中 `?` 是占位符,会被后面的参数 `'Alice'` 和 `25` 替换。
`c.lastrowid` 可以返回刚刚插入的数据的主键 id。
最后使用 `conn.commit()` 提交更改,关闭连接。
相关问题
python 操作sqlite怎么中间删掉一条数据,使id连续
在Python中使用sqlite3模块操作数据库。可以使用DELETE语句删除指定的数据。
语法:
```python
cursor.execute("DELETE from table_name where id = ?", (id,))
```
其中,cursor是数据库的游标对象,table_name是表名,id是要删除的数据的id。
如果想让id连续,可以在删除数据之后,再执行一条UPDATE语句,将id大于删除数据id的数据的id都减1,即:
```python
cursor.execute("UPDATE table_name SET id = id -1 WHERE id > ?", (id,))
```
请确保在执行上述操作之前,连接数据库并开启事务。
例如:
```python
import sqlite3
connection = sqlite3.connect("mydatabase.db")
cursor = connection.cursor()
id = 3
cursor.execute("DELETE from table_name where id = ?", (id,))
cursor.execute("UPDATE table_name SET id = id -1 WHERE id > ?", (id,))
connection.commit()
connection.close()
```
请注意,这个方法只适用于id字段是整数类型,如果是字符串类型就不能这样操作了。
数据库批量插入数据操作python+sqlite3
在 Python 中使用 sqlite3 模块进行批量插入数据,可以使用以下步骤:
1. 打开数据库连接,获取游标对象。
2. 构建插入语句,使用 ? 占位符。
3. 构建插入数据的元组列表。
4. 使用 executemany() 方法执行批量插入操作。
5. 提交事务。
6. 关闭游标和数据库连接。
以下是一个示例代码:
```python
import sqlite3
# 打开数据库连接
conn = sqlite3.connect('test.db')
cursor = conn.cursor()
# 构建插入语句
sql = "INSERT INTO user(name, age) VALUES(?, ?)"
# 构建插入数据的元组列表
data = [('Alice', 18), ('Bob', 20), ('Charlie', 22)]
# 执行批量插入操作
cursor.executemany(sql, data)
# 提交事务
conn.commit()
# 关闭游标和数据库连接
cursor.close()
conn.close()
```
在上面的代码中,我们使用了 executemany() 方法来执行批量插入操作。该方法接受两个参数:插入语句和插入数据的元组列表。在插入语句中,我们使用 ? 占位符来表示需要插入的数据,而在插入数据的元组列表中,每个元组的值与占位符的位置一一对应。在执行插入操作之后,我们需要调用 commit() 方法提交事务,以确保插入操作生效。最后,我们需要关闭游标和数据库连接。