欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

python标准库sqlite3使用

程序员文章站 2022-05-31 08:47:39
...
#引入sqlite3库
import sqlite3

#使用connect方法创建数据库连接(若数据库不存在则新建)
#参数为数据库文件路径及名称(不含路径为脚本所在目录)
#返回connect对象
conn = sqlite3.connect('c:\\test\\test.db')    #创建在硬盘上面
conn = sqlite3.connect(':memory:')             #创建在内存上面

#设置事务隔离级别,默认需要自己commit,若需要修改为自动提交
conn = sqlite3.connect(':memory:',isolation_level = None)

#execute方法执行sql语句,与mysql基本一致
#drop table删除表,create table添加表
#insert添加记录,update更新记录,delete删除记录,select查询记录
conn.execute("DROP TABLE IF EXISTS company")

#executemany方法执行多条sql语句(可提升执行效率)
datas=[(1,'Lili'),(2,"Tom"),(3,"Bob")]
sql="insert into company values(?,?)"
conn.execute(sql,datas)

#rollback方法事务回滚
conn.rollback()

#commit方法提交更改
conn.commit()

#close方法关闭connect对象
conn.close()

#cursor方法创建游标(读取数据时必须使用游标,非读取时不使用可提高效率)
c=conn.cursor()

#execute方法执行sql语句
c.execute(sql)

#rowcount获取最后一次execute查询返回的记录数或影响的条数
print(c.rowcount())

#lastrowid新增记录的行号
print(c.lastrowid())

#fetchone方法读取一条数据,并将游标移至下一条记录
print(c.fetchone())

#fetchmany方法读取多条数据
print(c.fetchmany(3)[0])

#fetchall方法读取全部数据
print(c.fetchall()[0])

#scroll移动游标

#description返回对表结构的描述
print(c.description())

#close关闭游标
c.close()

#异常处理,注意关闭自动commit
conn.autocommit(False)
try:
  c.executemany(sql_insert,datas)
  c.execute(sql_update)
  c.execute(sql_delete)
  conn.commit()
except Exception as e:
  print(e)
  conn.rollback()

 

相关标签: sqlite3