概述
1.1前言
最近在存储字模图像集的时候,需要学习LMDB,趁此机会复习了SQLite和MySQL的使用,一起整理在此。
1.2环境
使用win7,Python 3.5.2。
2.SQLite
2.1准备
SQLite是一种嵌入式数据库,它的数据库就是一个文件。Python 2.5x以上版本内置了SQLite3,使用时直接import sqlite3即可。
2.2操作流程
概括地讲,操作SQLite的流程是:
·通过sqlite3.open()创建与数据库文件的连接对象connection
·通过connection.cursor()创建光标对象cursor
·通过cursor.execute()执行SQL语句
·通过connection.commit()提交当前的事务,或者通过cursor.fetchall()获得查询结果
·通过connection.close()关闭与数据库文件的连接
详细的sqlite3模块API可以看这里:SQLite - Python
总结起来就是用cursor.execute()执行SQL语句,改变数据(插入、删除、修改)时用connection.commit()提交变更,查询数据时用cursor.fetchall()得到查询结果。
2.3操作实例
2.3.1建立数据库与建立表
复制代码
#! /usr/bin/env python3
# -*- coding:utf-8 -*-
# Author : MaYi
# Blog : http://www.cnblogs.com/mayi0312/
# Date : 2019-11-07
# Name : test01
# Software : PyCharm
# Note :
import sqlite3
# 创建连接
conn = sqlite3.connect("test.db")
# 创建光标
cur = conn.cursor()
# 执行(创建数据表的)SQL语句
cur.execute("CREATE TABLE IF NOT EXISTS students (sid INTEGER PRIMARY KEY, name TEXT)")
# 提交
conn.commit()
# 关闭连接
conn.close()
复制代码
这里conn是与数据库文件test.db的连接对象,cur是conn的光标对象,通过cur.execute()执行建表操作,创建了简单的学生信息表(学号, 名字),通过conn.commit()提交,最后用conn.close()关闭连接。
创建连接时,发现数据库文件不存在时会自动创建,这里使用了文件“test.db”,也可以使用“:memory:”建立内存数据库。
2.3.2插入、删除、修改
为了便于多次运行,直接使用了内存数据库:
复制代码
#! /usr/bin/env python3
# -*- coding:utf-8 -*-
# Author : MaYi
# Blog : http://www.cnblogs.com/mayi0312/
# Date : 2019-11-07
# Name : test01
# Software : PyCharm
# Note :
import sqlite3
# 创建链接
conn = sqlite3.connect(":memory:")
# 创建光标
cur = conn.cursor()
# 执行(创建数据表的)SQL语句
cur.execute("CREATE TABLE students (sid INTEGER PRIMARY KEY, name