关于Python操作SQLite数据库

来源:互联网 发布:深圳市网络微课堂 编辑:程序博客网 时间:2024/05/19 15:42

这边先简要的介绍一下SQLite数据库:

    SQLite是一种嵌入式数据库,它的数据库就是一个文件。和熟悉的MySQL一样,都是关系型数据库。
    SQLite的特点是轻量级、可嵌入,但不能承受高并发访问,适合桌面和移动应用。

要操作关系数据库,首先需要连接到数据库,一个数据库连接称为Connection;
连接到数据库后,需要打开游标,称之为Cursor,通过Cursor执行SQL语句,然后,获得执行结果。

Python内置了sqlite3

import sqlite3
#导入SQLite驱动
conn = sqlite3.connect('test.db')
#连接到SQLite数据库,数据库文件是test.db,如果不存在就会自动在当前目录创建一个
cursor = conn.cursor()
#创建一个游标:cursor
#cursor.execute('drop table user') 删除表
cursor.execute('create table user (id varchar(20) primary key,name varchar(20))')
#执行一条sql语句,这里是创建一个user表,包含两个属性id 和 name
cursor.execute('insert into user (id,name) values(\'1\',\'mike\')')
#继续执行sql语句,这里是插入记录,
cursor.execute('insert into user (id,name) values(\'3\',\'bob\')')
#继续执行sql语句,这里是插入记录,
print(cursor.rowcount)
#这个rowcount查到是影响的行数的意思,究竟什么意思我也还没弄清,望指教!
cursor.close()
#关闭cursor
conn.commit()
#提交事务
conn.close()
#关闭connection
conn2 = sqlite3.connect('test.db')
cursor2 = conn2.cursor()
cursor2.execute('select * from user where name = ?',('bob',))
#执行查询语句
values = cursor2.fetchall()
#select语句执行通过fetchall()拿到结果集,是一个list,每个元素是tuple
print(values)
cursor2.close()
conn2.close()

在Sqlite中根据分数段查找指定的名字,返回指定分数区间的名字,按分数从低到高排序 '
import os,sqlite3
dbFile = os.path.join(os.path.dirname(__file__),'test.db')
if os.path.isfile(dbFile):
    os.remove(dbFile)
conn = sqlite3.connect('test.db')
cursor = conn.cursor()
cursor.execute('create table user (id varchar(20) primary key , name varchar(20), score int)')
cursor.execute('insert into user (id,name,score) values(\'A-001\',\'Adam\',\'95\')')
cursor.execute('insert into user (id,name,score) values (\'A-002\',\'Bart\',\'62\')')
cursor.execute('insert into user (id,name,score) values (\'A-003\',\'Lisa\',\'78\')')
cursor.close()
conn.commit()
conn.close()

def getScoreIn(low,high):
    conn = sqlite3.connect('test.db')
    cursor = conn.cursor()
    cursor.execute('select name from user where score between ? and ? order by score',(low,high))
    values = cursor.fetchall()
    cursor.close()
    conn.close()
    list2 = []
    for i in range(len(values)):
        list2.append(values[i][0])
    print(list2)

getScoreIn(50,100)
getScoreIn(60,70)
getScoreIn(70,80)
getScoreIn(80,90)

['Bart', 'Lisa', 'Adam']
['Bart']
['Lisa']
[]