sqlite3学习

  1. 1,操作流程
  2. 2,使用SQLite3创建表
  3. 2,使用SQLite3插入数据
  4. 2,使用SQLite3查询数据
  5. 3,使用SQLite3修改数据
  6. 3,使用SQLite3删除数据
  7. 总结

1,操作流程

(1)先在文件夹创建出一个.db文件
(2)导入相关库或模块(SQLite3)
(3)使用connect()连接数据库并获取数据库对象。他提供了以下方法:
.cursor() 方法来创建一个游标对象
.commit() 方法来处理事务提交
.rollback() 方法来处理事务回滚
.close() 方法来关闭一个数据库连接
(4)使用con.cursor() 获取游标对象
(5)使用游标对象的方法execute()、executemany()、fetchall() 等来操作数据库,实现数据库插入、修改和删除操作,并查询获取显示相关的记录。在Python程序中,连接函数sqlite3.connert()有如下两个常用的参数:
database:表示要访问的数据库名。
timeout():表示访问数据的超时设定。
(6)使用close()关闭游标对象和数据库连接。数据库操作完成之后,必须及时调用其close()方法关闭数据库连接,这样做的目的是减轻数据服务器的压力。
(7)他的的不同有sql语句,执行的时候的参数

2,使用SQLite3创建表

使用sqlite3模块的connect方法来创建/打开数据库,需要指定数据库路径,不存在则创建一个新的数据库。

1
con = sqlite3.connect('e:/sqlitedb/first.db')   #路径的那个斜杠要反过来写,文件不存在则创建文件

【实例】使用sqlite3创建表

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
# 导入sqlite3模块
import sqlite3
# 硬盘上创建连接
con = sqlite3.connect('E:/python/tank/sqlite3.db')
# 获取cursor(游标)对象
cur = con.cursor()
sql = 'create table Student (id int(10) primary key, \
name char(20) not null \
)'
try:
# 执行语句
cur.execute(sql)
print("创建成功")
except Exception as e:
print(e)
print("创建失败")
finally:
# 关闭游标
cur.close()
# 关闭连接
con.close()

2,使用SQLite3插入数据

调用游标对象的execute执行插入的sql,使用executemany()执行多条sql语句,使用executmany()比循环使用execu()执行多条sql语句效率高
【实例】使用sqlite3在表中插入数据

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
# 导入sqlite3模块
import sqlite3
# 在硬盘上创建连接
con = sqlite3.connect('E:/python/tank/sqlite3.db')
# 获取cursor对象
cur = con.cursor()
# 执行sql创建表
sql = 'insert into Student(id, name) values(?, ?)' # 问号是用来占位的
try:
cur.execute(sql, (112, '小潘')) # 用元组来写数据
'''
插入多条数据
cur.executemany(sql, [(100, "小陈"), (101, "小李")]) #执行多条插入的时候,要用列表+元组来存,插入重复数据会报错
'''
# 提交事务
con.commit()
print('插入成功')
except Exception as e:
print(e)
print("插入失败")
con.rollback()
finally:
# 关闭游标
cur.close()
# 关闭连接
con.close()

2,使用SQLite3查询数据

【实例】使用sqlite3查询表

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
# 导入sqlite3模块
import sqlite3
# 硬盘上创建连接
con = sqlite3.connect('E:/python/tank/sqlite3.db')
# 获取cursor对象
cur = con.cursor()
sql = 'select * from Student'
try:
cur.execute(sql)
# 与插入不同的是要获取结果集
# 获取一条结果
stu1 = cur.fetchone()
print(stu1)
stu_all = cur.fetchall()
# print(stu_all)
for stu in stu_all:
print(stu)
except Exception as e:
print(e)
print('查询所有数据失败')
finally:
# 关闭游标
cur.close()
# 关闭连接
con.close()

3,使用SQLite3修改数据

【实例】使用sqlite3修改表

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
# 导入sqlite3模块
import sqlite3
# 硬盘上创建连接
con = sqlite3.connect('E:/python/tank/sqlite3.db')
# 获取cursor对象
cur = con.cursor()
# 写修改语句
sql = 'update Student set name=? where id = ?'

# 执行sql
try:
# 执行修改
cur.execute(sql, ("hahah", 112))
# 提交事务
con.commit()
except Exception as e:
print(e)
print("修改失败")
con.rollback()
finally:
# 关闭游标
cur.close()
# 关闭连接
con.close()

3,使用SQLite3删除数据

【实例】使用sqlite3删除表中数据

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
# 导入sqlite3模块
import sqlite3
# 硬盘上创建连接
con = sqlite3.connect('E:/python/tank/sqlite3.db')
# 获取cursor对象
cur = con.cursor()

# 写删除语句
sqldel = 'delete from Student where id =?'
# 执行sql
try:
# 执行删除
cur.execute(sqldel, (112,)) # 必须是元组类型,所以(112, )逗号不能少
con.commit()
print('删除成功')
except Exception as e:
print(e)
print("修改失败")
con.rollback()
finally:
# 关闭游标
cur.close()
# 关闭连接
con.close()

总结

在上面的实例中,首先定义查询在上述实例代码中,首先定义查询所有数据、插入数据、修改数据、删除数据的方法。然后,定义主方法中依次建立连接,获取连接的cursor,通过cursor的execute()等方法来执行SQL语句,调用插入记录、更加记录、删除记录的方法。
特别注意:execute参数中的是sql语句和元组!!


转载请注明来源,欢迎指出任何有错误或不够清晰的表达。可以邮件至gxnucgb@qq.com

文章标题:sqlite3学习

文章字数:1.1k

本文作者:陈桂彬

发布时间:2019-07-25, 12:24:44

最后更新:2019-07-27, 16:00:29

原始链接:https://github.com/gxnucgb/gxnucgb.github.io/2019/07/25/sqlite3学习/

版权声明: "署名-非商用-相同方式共享 4.0" 转载请保留原文链接及作者。

目录
×

喜欢就点赞,疼爱就打赏

github