Python连接SQLite数据库


SQLite数据库更多内容: http://blog.itpub.net/26736162/viewspace-2141867/


SQLite 是一种嵌入式数据库,它的数据库就是一个文件。由于 SQLite 本身是 C 写的,而且体积很小,所以,经常被集成到各种应用程序中,甚至在 iOS Android App 中都可以集成。 Python 就内置了 SQLite3 ,所以,在 Python 中使用 SQLite ,不需要安装任何东西,直接使用。

Python 定义了一套操作数据库的 API 接口,任何数据库要连接到 Python ,只需要提供符合 Python 标准的数据库驱动即可。由于 SQLite 的驱动内置在 Python 标准库中,因此可以直接来操作 SQLite 数据库。

Python 中操作数据库时,要先导入数据库对应的驱动,然后通过 Connection 对象和 Cursor 对象操作数据。在数据库操作完毕之后,要确保打开的 Connection 对象和 Cursor 对象都正确地被关闭,否则,资源就会泄露。


Python 连接到 SQLite 数据库示例:

# 导入SQLite驱动import sqlite3,os# 连接到SQLite数据库# 数据库文件是lhrtest.db# 如果文件不存在,那么会自动在当前目录创建一个数据库文件:conn = sqlite3.connect('lhrtest.db') # db_file = os.path.join(os.path.dirname(__file__), 'lhrtest.db')# if os.path.isfile(db_file):#     os.remove(db_file)# conn = sqlite3.connect(db_file) # 创建一个Cursor:cursor = conn.cursor()# 执行一条SQL语句,创建user表:cursor.execute('create table user(id varchar(20) primary key, name varchar(20))')# 继续执行一条SQL语句,插入一条记录:cursor.execute('insert into user (id, name) values (\'1\', \'xiaomaimiao\')')# 通过rowcount获得插入的行数:print(cursor.rowcount)# 执行查询语句:cursor.execute('select * from user where id=?', ('1',))# 获得查询结果集:values = cursor.fetchall()print(values)# 关闭Cursor:cursor.close()# 提交事务:conn.commit()# 关闭Connection:conn.close()

 


运行结果:

1[('1', 'xiaomaimiao')]

 

在程序运行完毕后,会在程序的当前目录下生成一个 lhrtest.db 文件,如下所示:

 

可以使用 SQLLite 的客户端查看数据库文件的内容:

 

使用 Python DB API 时,只要搞清楚 Connection Cursor 对象,打开后一定记得关闭,就可以放心地使用。

使用 Cursor 对象执行 insert update delete 语句时,执行结果由 rowcount 返回影响的行数,就可以拿到执行结果。

使用 Cursor 对象执行 select 语句时,通过 featchall() 可以拿到结果集。结果集是一个 list ,每个元素都是一个 tuple ,对应一行记录。

如果 SQL 语句带有参数,那么需要把参数按照位置传递给 execute() 方法,有几个 ? 占位符就必须对应几个参数,例如:

cursor.execute('select*from user where name=?and pwd=?',('abc','password'))

 










About Me

........................................................................................................................

● 本文作者:小麦苗,部分内容整理自网络,若有侵权请联系小麦苗删除

● 本文在itpub( http://blog.itpub.net/26736162 )、博客园( http://www.cnblogs.com/lhrbest )和个人weixin公众号( xiaomaimiaolhr )上有同步更新

● 本文itpub地址: http://blog.itpub.net/26736162

● 本文博客园地址: http://www.cnblogs.com/lhrbest

● 本文pdf版、个人简介及小麦苗云盘地址: http://blog.itpub.net/26736162/viewspace-1624453/

● 数据库笔试面试题库及解答: http://blog.itpub.net/26736162/viewspace-2134706/

● DBA宝典今日头条号地址: http://www.toutiao.com/c/user/6401772890/#mid=1564638659405826

........................................................................................................................

● QQ群号: 230161599 (满) 、618766405

● weixin群:可加我weixin,我拉大家进群,非诚勿扰

● 联系我请加QQ好友 646634621 ,注明添加缘由

● 于 2019-01-01 06:00 ~ 2019-01-31 24:00 在魔都完成

● 最新修改时间:2019-01-01 06:00 ~ 2019-01-31 24:00

● 文章内容来源于小麦苗的学习笔记,部分整理自网络,若有侵权或不当之处还请谅解

● 版权所有,欢迎分享本文,转载请保留出处

........................................................................................................................

小麦苗的微店 : https://weidian.com/s/793741433?wfr=c&ifr=shopdetail

小麦苗出版的数据库类丛书 : http://blog.itpub.net/26736162/viewspace-2142121/

小麦苗OCP、OCM、高可用网络班 : http://blog.itpub.net/26736162/viewspace-2148098/

小麦苗腾讯课堂主页 : https://lhr.ke.qq.com/

........................................................................................................................

使用 weixin客户端 扫描下面的二维码来关注小麦苗的weixin公众号( xiaomaimiaolhr )及QQ群(DBA宝典)、添加小麦苗weixin, 学习最实用的数据库技术。

........................................................................................................................

 

 




来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/26736162/viewspace-2557184/,如需转载,请注明出处,否则将追究法律责任。

©著作权归作者所有:来自51CTO博客作者小麦苗DB宝的原创作品,如需转载,请注明出处,否则将追究法律责任

更多相关文章

  1. Python3与Python2的差异
  2. 【爬虫】利用Python爬虫爬取小麦苗itpub博客的所有文章的连接地
  3. CentOS7和RHEL7在 /etc/fstab中不包含/dev/shm
  4. 【DB笔试面试352】在Oracle数据库中,哪些操作会导致索引失效?--UNU
  5. Exadata X8 系列硬件的新变化
  6. 从运维角度看中大型网站架构的演变之路
  7. CentOS 7.1静默安装11.2.0.3 64位单机数据库软件
  8. 【DG】利用闪回数据库(flashback)修复Failover后的DG环境
  9. 如何让普通用户可以对DBA_SOURCE视图进行闪回查询?

随机推荐

  1. android listview的divider分割线的宽度
  2. Android Drawable缓存
  3. android之实现ProgressBar进度条组件
  4. Android 隐藏ActionBar
  5. Android 使用WebView控件展示SVG图
  6. 各种控件属性
  7. Android两种序列化方式详解(一):Serializabl
  8. 判断Android的WIFI与GPS状态,并引导用户前
  9. android 键盘 搜索键
  10. android 性能优化