2天前,我还不知道啥是sqlite,大二的sql语言也没好好学,然后就上手做了sqlite和python语言的项目,项目比较简单,但有很多学到的知识,网上关于sqlite注意很少,写个文章说一下。
第一步,连接数据库
db = sqlite3.connect(path)
就这一句话就行了,唯一要注意的是,如果数据库不存在,它会自己新建。
第二步操作,操作的核心是两点,
获取游标
c = db.cursor()
执行语句
c.execute(sql,(value,))
相当于python的exec,sql这个按照sqlite语法写举行,和mysql的差别不大。
重点:后面括号里的,会对应sql语句中“?”的值,execute会解析成'value'的形式,也就是说,所有sql语句等号后面的东西,都写在这里。如果只有一个元素,那么,末尾就一定要加逗号,否则报错。
在执行修改数据库的操作时候(出了查询,都是修改),就要做第三步:
提交并关闭数据库连接,如果不提交,则无法修改,如果不关闭,修改不会一下子完成,会生成一个jour······的文件。
可以写一个close_all函数
def close_all(db):
db.commit()
db.close()
数据库查询返回的数据全部是元组!!!!
元组里的数据类型是和python基本一致的。
在查询数据的时候,三步走
构造语句
执行
返回结果赋值
sql_state='select * from '+tab+' where '+col_name+'=?'
c.execute(sql_state,(col_value,))
ret=c.fetchone()
这里有两点,其一,如果是不带引号的值,不能写在value那里,所以提前构造语句。
其二,如果是返回多条记录,一定要用fetchall
最后,建议在使用sqlite的时候,把sqlite3.exe这个sqlite的运行程序下载上来,查看数据库内容。