版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/xc_zhou/article/details/102511253
import sqlite3
conn = sqlite3.connect('./test.db')
cursor = conn.cursor()
sql = 'insert into students values (?, ?, ?)'
result = cursor.execute(sql, (1, 'Angle' ,18))
conn.commit() # 通过连接将插入的数据进行提交
#关闭游标和关闭连接
cursor.close()
conn.close()
SQLite是内嵌在Python中的轻量级、基于磁盘文件袋额数据库管理系统,不需要安装和配置服务,支持使用SQL语句来访问数据库。该数据库使用C语言开发,支持大多数SQL91标准,支持原子的、一致的、独立的和持久的事务,不支持外键限制;通过数据库级的独占性和共享性锁定来实现独立事务,当多个线程同时访问同一个数据库并试图写入数据时,每一时刻只有一个线程可以写入数据。
SQLite支持最大140TB大小的单个数据库,每个数据库完全存储在单个磁盘文件中,以B+树数据结构的形式存储,一个数据库就是一个文件,通过直接复制数据库文件就可以实现数据库的备份。如果需要使用可视化管理工具,可以下载并使用SQLiteManager、SQLite Database Browser 或其他类似工具。
访问和操作SQLite数据时,首先导入sqlite3模块,然后创建一个与数据库关联的Connection对象,例如:
# -*- coding:utf-8 -*-
import sqlite3 #导入模块
'''
连接数据库 connect()方法,可以判断一个数据库文件是否存在,如果不存在就自动创建一个,
如果存在的话,就打开那个数据库。
'''
database=r'C:\Users\WYXCz\Desktop\crawl_data.db'
conn = sqlite3.connect(database)
'''
再创建一个Cusor对象,并且调用Cursor对象的execute()方法来执行SQL语句
创建数据表以及查询、插入、修改或删除数据库中的数据
'''
c = conn.cursor()
#创建表
# c.execute('''CREATE TABLE stocks(date text,trans text,symbol text,gty real,price real)''')
#向表中插入一条数据
# 提交事务 SELECT语句不需要此操作,默认的execute方法的,commit_at_once设为True会隐式调用此方法
c.execute('''insert into stocks(date,trans,symbol,gty,price) values('2016-02-05','BUY','RHAT',100,35.14)''')
# insert 方法2
sql1='''insert into stocks(date,trans,symbol,gty,price) values(?,?,?,?)'''
params=('2016-02-05','BUY','RHAT',100,35.14)
c.execute(sql1,params)
#提交当前事务,保存数据
conn.commit()
#关闭数据库连接
conn.close()
#-----------------查询刚才插入的数据 方法1------------------------
#由于刚才已经关闭了数据库连接,需要重新创建Connection对象和Cursor对象
conn = sqlite3.connect(database)
c = conn.execute('''select * from stocks''')
print(c) #<sqlite3.Cursor object at 0x00000000007E25E0>
print(list(c)) #[('2016-01-05', 'BUY', 'RHAT', 100.0, 35.14)]
#-----------------查询刚才插入的数据 方法2------------------------
conn = sqlite3.connect(database)
c = conn.cursor()
a = c.execute('select * from stocks')
print(c) #<sqlite3.Cursor object at 0x00000000007E25E0>
# print('fetchone:',c.fetchone())
# print('fetchall',c.fetchall())
for i in a:
print(i) #('2016-01-05', 'BUY', 'RHAT', 100.0, 35.14)
我们还可以来简单了解一下sqlite3模块的API
参考:https://www.cnblogs.com/avention/p/8955130.html https://www.runoob.com/sqlite/sqlite-python.html https://segmentfault.com/a/1190000019212422