Python连接SQLite数据库并进行增册改查操作方法详解


Posted in Python onFebruary 18, 2020

SQLite简介

SQLite,是一款轻型的数据库,是遵守ACID的关系型数据库管理系统,它包含在一个相对小的C库中。它是D.RichardHipp建立的公有领域项目。它的设计目标是嵌入式的,而且目前已经在很多嵌入式产品中使用了它,它占用资源非常的低,在嵌入式设备中,可能只需要几百K的内存就够了。它能够支持Windows/Linux/Unix等等主流的操作系统,同时能够跟很多程序语言相结合,比如 Tcl、C#、PHP、Java等,还有ODBC接口,同样比起Mysql、PostgreSQL这两款开源的世界著名数据库管理系统来讲,它的处理速度比他们都快。SQLite第一个Alpha版本诞生于2000年5月。 至2015年已经有15个年头,SQLite也迎来了一个版本 SQLite 3已经发布。

SQLite数据库的使用

1.导入Python SQLite数据库模块

python2.5版本以后内置SQLite数据库

import sqlite3

2. 创建/打开数据库

调用connect函数的时候,指定库名称,如果指定的数据库存在就直接打开这个数据库,如果不存在就新创建一个再打开

conn = sqlite3.connect("E:/test.db")

或者也可以在内存中创建

conn = sqlite3.connect(":memory:")

3.数据库连接对象

打开数据库时返回的对象conn就是一个数据库连接对象,它可以有以下操作:

commit()--事务提交   

rollback()--事务回滚   

close()--关闭一个数据库连接   

cursor()--创建一个游标

关于commit(),如果isolation_level隔离级别默认,那么每次对数据库的操作,都需要使用该命令,你也可以设置isolation_level=None,这样就变为自动提交模式。

4.使用游标查询数据库

我们需要使用游标对象SQL语句查询数据库,获得查询对象。 通过以下方法来定义一个游标。

cu=conn.cursor()

游标对象有以下的操作:

execute()--执行sql语句   

executemany--执行多条sql语句   

close()--关闭游标   

fetchone()--从结果中取一条记录,并将游标指向下一条记录   

fetchmany()--从结果中取多条记录   

fetchall()--从结果中取出所有记录   

scroll()--游标滚动  

SQLite数据库操作

1. 创建数据库表

cu.execute("create table user (id integer primary key,name varchar(20) UNIQUE,age integer,comment text NULL)")

# 创建一张user表,表中有id(主键),名字(唯一),年龄,备注(默认为空)

2. 插入数据

请注意避免以下写法:

cu.execute("create table user (id integer primary key,name varchar(20) UNIQUE,age integer,comment text NULL)")
# 创建一张user表,表中有id(主键),名字(唯一),年龄,备注(默认为空)

正确的做法如下,如果t只是单个数值,也要采用t=(n,)的形式,因为元组是不可变的。

for user in[(0,'aaa',111,'aaaa'),(1,'bbb',222,'bbbb')]:
  conn.execute("insert into user values (?,?,?,?)", user) # 注意user是元组,不可变
conn.commit() # 注意插入操作之后要进行提交

3. 查询数据

cu.execute("select * from user") 
cu.fetchone() # 得到游标的第一个值
cu.execute("select * from user")
cu.fetchall() # 使用游标的fetch函数,fetchall得到所有的查询记录

4. 修改数据

cu.execute("update user set name='ccc' where id = 0")
conn.commit()

5. 删除数据

cu.execute("delete from user where id = 1") 
conn.commit()

更多关于Python连接SQLite数据库并进行增册改查操作方法请查看下面的相关链接

Python 相关文章推荐
python获取标准北京时间的方法
Mar 24 Python
Python中return语句用法实例分析
Aug 04 Python
Python的包管理器pip更换软件源的方法详解
Jun 20 Python
python中将一个全部为int的list 转化为str的list方法
Apr 09 Python
对Python中内置异常层次结构详解
Oct 18 Python
python pandas消除空值和空格以及 Nan数据替换方法
Oct 30 Python
搞定这套Python爬虫面试题(面试会so easy)
Apr 03 Python
详解用python实现基本的学生管理系统(文件存储版)(python3)
Apr 25 Python
python sorted方法和列表使用解析
Nov 18 Python
Python关键字及可变参数*args,**kw原理解析
Apr 04 Python
Python3爬虫中关于中文分词的详解
Jul 29 Python
详解Python中import机制
Sep 11 Python
Python 解析pymysql模块操作数据库的方法
Feb 18 #Python
Anaconda3+tensorflow2.0.0+PyCharm安装与环境搭建(图文)
Feb 18 #Python
python_array[0][0]与array[0,0]的区别详解
Feb 18 #Python
Python使用QQ邮箱发送邮件实例与QQ邮箱设置详解
Feb 18 #Python
Python如何实现小程序 无限求和平均
Feb 18 #Python
python_mask_array的用法
Feb 18 #Python
基于python3生成标签云代码解析
Feb 18 #Python
You might like
漂亮但不安全的CTB
2006/10/09 PHP
php短域名转换为实际域名函数
2011/01/17 PHP
PHP定时执行计划任务的多种方法小结
2011/12/19 PHP
PHP 常用数组内部函数(Array Functions)介绍
2013/06/05 PHP
php中smarty区域循环的方法
2015/06/11 PHP
laravel5.4利用163邮箱发送邮件的步骤详解
2017/09/22 PHP
javascript smipleChart 简单图标类
2011/01/12 Javascript
鼠标事件延时切换插件
2011/03/12 Javascript
JQuery select控件的相关操作实现代码
2012/09/14 Javascript
seajs1.3.0源码解析之module依赖有序加载
2012/11/07 Javascript
Linux下为Node.js程序配置MySQL或Oracle数据库的方法
2016/03/19 Javascript
jQuery插件passwordStrength密码强度指标详解
2016/06/24 Javascript
Vue监听数据对象变化源码
2017/03/09 Javascript
JavaScript运动框架 解决速度正负取整问题(一)
2017/05/17 Javascript
浅析Node.js非对称加密方法
2018/01/29 Javascript
JavaScript设计模式之单例模式简单实例教程
2018/07/02 Javascript
命令行批量截图Node脚本示例代码
2019/01/25 Javascript
qrcode生成二维码微信长按无法识别问题的解决
2019/04/04 Javascript
javascript实现异形滚动轮播
2019/11/28 Javascript
python计算对角线有理函数插值的方法
2015/05/07 Python
Python之os操作方法(详解)
2017/06/15 Python
Python3中的列表,元组,字典,字符串相关知识小结
2017/11/10 Python
Python实现的直接插入排序算法示例
2018/04/29 Python
python实现的自动发送消息功能详解
2019/08/15 Python
关于python中plt.hist参数的使用详解
2019/11/28 Python
如何基于python测量代码运行时间
2019/12/25 Python
Python装饰器如何实现修复过程解析
2020/09/05 Python
详解pandas赋值失败问题解决
2020/11/29 Python
python+selenium自动化实战携带cookies模拟登陆微博
2021/01/19 Python
Debenhams百货英国官方网站:Debenhams UK
2016/07/12 全球购物
西班牙国家航空官方网站:Iberia
2017/11/16 全球购物
英国家具、照明、家居用品网上商店:Wayfair.co.uk
2020/02/13 全球购物
开幕式邀请函
2015/01/31 职场文书
现役军人家属慰问信
2015/03/24 职场文书
国富论读书笔记
2015/06/26 职场文书
祝寿主持词
2015/07/02 职场文书