sqlite数据库在Python中的使用简介
1. sqlite3介绍
import sqlite3
SQLite数据库是一款非常小巧的嵌入式开源数据库软件,没有独立的维护进程,所有的维护都来自于程序本身。在python中,使用sqlite3创建数据库的连接,当数据库文件不存在时,会新建数据库文件;如果数据库文件已经存在了,则打开数据库文件。
连接对象可以是硬盘上面的数据库文件,也可以是建立在内存中的,在内存中的数据库执行完任何操作后,不需要提交事务的commit。
#使用:memory:标识打开的是内存数据库
con = sqlite3.connect(":memory:")
#在本地当前目录下创建数据库文件\打开数据库文件-test.db
conn = sqlite3.connect('test.db')
打开数据库时返回的对象conn就是一个数据库连接对象,它可以有以下操作:
commit() --事务提交
rollback() --事务回滚
close() --关闭一个数据库链接
cursor() --创建一个游标
创建一个游标对象:cu
cu = conn.cursor()
关闭一个游标对象
cu.close()
在sqlite3中,所有sql语句的执行都要在游标对象的参与下完成
对于游标对象cu,具有以下具体操作:
execute() --执行一条sql语句
executemany() --执行多条sql语句
close() --游标关闭
fetchone() --从结果中取出一条记录
fetchmany() --从结果中取出多条记录
fetchall() --从结果中取出所有记录
scroll() --游标滚动
2. 创建table
创建表(id,name,gender,age,address,phone),通过cu.execute(create_table_sql)执行sql语句创建表,如果失败会抛出异常。“table student
already exists”,代表已经存在student表,不能再次创建。
create_table_sql = '''CREATE TABLE `student` (
`id` int(11) NOT NULL,
`name` varchar(20) NOT NULL,
`gender` varchar(4) DEFAULT NULL,
`age` int(11) DEFAULT NULL,
`address` varchar(200) DEFAULT NULL,
`phone` varchar(20) DEFAULT NULL,
PRIMARY KEY (`id`)
)'''
try:
conn = sqlite3.connect('test.db')
cu = conn.cursor()
cu.execute(create_table_sql)
print 'table create successful'
except sqlite3.Error, why:
print 'create table failed:' + why.args[0]
2. 删除table
删除表,删除失败会抛出异常。
try:
#如果存在表先删除
drop_table_sql = 'DROP TABLE IF EXISTS student'
conn = sqlite3.connect('test.db')
cu = conn.cursor()
cu.execute(drop_table_sql)
print 'delete table successful'
except sqlite3.Error, why:
print 'delete table failed:' + why.args[0]
2. 插入数据
try:
save_sql = 'INSERT INTO student values (?, ?, ?, ?, ?, ?)'
data = (1, 'zhang', '男', 20, '广东省广州市', '13423****62')
conn = sqlite3.connect('test.db')
cu = conn.cursor()
cu.execute(save_sql, data)
print 'save data successful'
except sqlite3.Error, why:
print 'save data failed:' + why.args[0]
cu.execute(save_sql, data),data参数为元组,如果是其他类型会出现错误提示,上