SQLite基本使用


1. 概述

SQLite是一个进程内的库,实现了自给自足的、无服务器的、零配置的、事务性的 SQL 数据库引擎。
它是一个零配置的数据库,这意味着与其他数据库不一样,您不需要在系统中配置。
就像其他数据库,SQLite 引擎不是一个独立的进程,可以按应用程序需求进行静态或动态连接。SQLite 直接访问其存储文件。

2. 引入SQLite

import sqlite3

3. 连接数据库创建游标

conn = sqlite3.connect("mrsoft.db")  # 连接数据库
cursor = conn.cursor()  # 创建游标

4. 创建数据库文件

sql = "create table user(id int(10) primary key, name varchar(20))"
cursor.execute(sql)

5. 新增单条数据

sql = "insert into user(id, name) values(1, '张三')"
cursor.execute(sql)
conn.commit()

6. 批量新增数据

datas = [(2, "李四"), (3, "王五")]
# 在SQLite中占位符应该使用的是?而不是%
sql = "insert into user(id, name) values(?, ?)"
cursor.executemany(sql, datas)
conn.commit()

7. 查询单条数据

sql = "select * from user where id=?"
# 传参时需要使用元组,不要忘记后面的逗号
cursor.execute(sql, (1,))
cursor.fetchone()  # 返回元组 (1, '张三')

8.查询全部数据

sql = "select * from user"
cursor.execute(sql)
cursor.fetchall()  # 返回列表嵌套元组 [(1, '张三1'), (2, '李四'), (3, '王五')]

9. 查询指定条数的数据

sql = "select * from user"
cursor.execute(sql)
cursor.fetchmany(size=2)  # 返回列表嵌套元组,size默认是1 [(1, '张三'), (2, '李四')]

10. 修改数据

sql = "update user set name=? where id=?"
cursor.execute(sql, ("张三1", 1))
conn.commit()

11. 删除数据

sql = "delete from user where id=?"
cursor.execute(sql, (3,))

12. 事务回滚

要么都执行,要么都不执行,保证数据的完整性.
注意:如果是commit提交之后的数据,在使用rollback回滚则无效,所以rollback发生在commit之前.

try:
    sql = "insert into user(id, name) values(1, '张三')"
    cursor.execute(sql)
    sql = "update user set name123=? where id=?"
    cursor.execute(sql, ("张三1", 1))
except Exception as e:
    print(e)
    conn.rollback()

13. 关闭数据库关闭游标

注意:这里需要先关闭游标,在关闭数据库

cursor.close()
conn.close()
  • 19
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
SQLite是一种轻量级的嵌入式数据库管理系统,它是一个开源的、零配置的、无服务器的数据库引擎。下面是SQLite基本操作介绍: 1. 创建数据库:使用SQLite命令行或者SQLite图形化工具,可以创建一个新的数据库文件,例如:`sqlite3 test.db`。 2. 创建表:在数据库中创建表格来存储数据,使用`CREATE TABLE`语句,例如:`CREATE TABLE students (id INTEGER PRIMARY KEY, name TEXT, age INTEGER);`。 3. 插入数据:使用`INSERT INTO`语句向表中插入数据,例如:`INSERT INTO students (name, age) VALUES ('Alice', 20);`。 4. 查询数据:使用`SELECT`语句从表中查询数据,例如:`SELECT * FROM students;`。 5. 更新数据:使用`UPDATE`语句更新表中的数据,例如:`UPDATE students SET age = 21 WHERE name = 'Alice';`。 6. 删除数据:使用`DELETE FROM`语句删除表中的数据,例如:`DELETE FROM students WHERE name = 'Alice';`。 7. 查询条件:可以使用`WHERE`子句来添加查询条件,例如:`SELECT * FROM students WHERE age > 18;`。 8. 排序数据:使用`ORDER BY`子句对查询结果进行排序,例如:`SELECT * FROM students ORDER BY age DESC;`。 9. 连接表:使用`JOIN`语句连接多个表进行查询,例如:`SELECT * FROM students JOIN scores ON students.id = scores.student_id;`。 10. 创建索引:使用`CREATE INDEX`语句创建索引来提高查询性能,例如:`CREATE INDEX idx_name ON students (name);`。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Monly21

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值