Python 数据库操作概述及SQLite3示例

注意:

本文摘录自《Python高效开发实战:Django,Tornado,Flask,Twisted》

作者:刘长龙 出版社:电子工业出版社

​ SQL标准统一了数据库语言,但是通过Python,Java,C++等高级语言操作数据库时需要连接每个数据库独特的数据库引擎,之后才能用SQL语言对数据库进行操作。因此,在Python中操作不同的数据库需要引入不同的数据库包。

​ 所有的Python的数据库引擎都遵守DB-API规范,此规范使引用数据库引擎后的编程方法大致相同,Python数据库编程的步骤如下。

  • 引入Python引擎包:如import MySQLdb语句用于为MySQL操作做准备
  • 连接数据库:使用引擎包中的connect方法连接物理数据库,通常在本步骤需要输入数据库的IP地址,端口,数据库名,用户名及密码等。对于SQLite和Excel等文件数据库,本步骤中要给出文件名。
  • 获取游标:在DB-API规范中,游标(cursor)用于执行SQL语句并且管理查询到的数据集。
  • 执行SQL命令:将SQL命令传给游标执行,并解析返回的结果。本步骤可以多次进行。
  • 提交或者回滚事务:在执行DML【数据操作语言】类的SQL语句时,数据库引擎会自动启动新事务,在一系列的操作完成之后,可以提交或回滚当前事务。
  • 关闭游标:完成SQL操作后关闭游标
  • 关闭数据库连接:关闭Python客户端和数据库服务器的连接

SQLite3操作示例

'''
Created on 2018年8月11日

@author: Freedom
'''
import sqlite3

conn = sqlite3.connect("test.db")

#获取游标对象
cur = conn.cursor()

#执行一系列SQL语句
#建立一个表
cur.execute("CREATE TABLE demo(num int,str varchar(20));")

#插入一些记录
cur.execute("INSERT INTO demo VALUES (%d, '%s')" % (1, 'aaa'))
cur.execute("INSERT INTO demo VALUES (%d, '%s')" % (2, 'bbb'))
cur.execute("INSERT INTO demo VALUES (%d, '%s')" % (3, 'ccc'))

#更新一条记录
cur.execute("UPDATE demo SET str='%s' WHERE num = %d" % ('ddd', 3) )

#查询
cur.execute("SELECT * FROM demo;")
rows = cur.fetchall() # fetch all
print("number of records: %d" % len(rows))

for i in rows:
    print(i)

#提交事务
conn.commit()

#关闭游标对象
cur.close()

#关闭数据库连接
conn.close()

结果如下

number of records: 3
(1, 'aaa')
(2, 'bbb')
(3, 'ddd')
阅读更多

没有更多推荐了,返回首页