我的编程空间,编程开发者的网络收藏夹
学习永远不晚

python操作sqlite3小结

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

python操作sqlite3小结

使用默认模块sqlite3
使用sqlite3模块的connect方法来创建/打开数据库,需要指定数据库路径,不存在则创建一个新的数据库

导入模块

import sqlite3

建立连接

con = sqlite3.connect('E:\\2018\\spider\\first.db')

不仅可以在硬盘中创建数据库文件,还可以在内存中创建

con = sqlite3.connect(':memory')  

不过既然在内存中创建貌似就么有必要用数据库了,莫非是装X功能?
好吧,给跪了!

connect方法返回con对象,即是数据库链接对象,它提供了以下方法:
.cursor() 方法来创建一个游标对象
.commit() 方法来处理事务提交
.rollback() 方法来处理事务回滚
.close() 方法来关闭一个数据库连接

1、游标对象的使用
对数据库的查询需要使用到游标对象,首先通过cursor()创建一个游标对象:

cur = con.cursor()

游标对象有以下方法支持数据库操作:
.execute()用来执行sql语句
.executemany()用来执行多条sql语句
.close() 用来关闭游标
.fetchone()用来从结果中取一条记录,并将游标指向下一条记录
.fetchmany()用来从结果中取多条记录。
.fetchall()用来从结果中取出所以记录
.scroll()用于游标滚动

2、创建表
首先使用游标创建一个person表,包含id,name,age等3列,代码如下:

cur.execute('CREATE TABLE person (id integer primary key ,name varchar(20),age integer)')

3、插入数据
向person表中插入两条数据
方法1:直接构造一个插入的sql语句

data = "1,'leon',22"
cur.execute('INSERT INTO person VALUES (%s)'%data)

方法2:使用占位符“?”,规避sql注入

cur.execute('INSERT INTO person VALUES (?,?,?)',(2,'name2',28))

还可以使用executemany()执行多条sql语句,使用executmany()比循环使用excute()执行多条sql语句效率高。

cur.executemany('INSERT INTO person VALUES (?,?,?)',[(3,'name3',19),(4,'name4',26)])

这两种插入数据操作都不会立即生效,需要使用数据库对象con进行提交操作:

con.commit()

4.查询数据
查询刚插入的所有数据

cur.execute('SELECT * FROM person')

要提取查询数据,游标对象提供了fetchall()和fetchone()方法
fetchall()方法获取所有数据,返回一个二维列表。fetchone()方法获取其中一个结果,返回一个元组

res = cur.fetchall()
for line in res:
    print("循环fetchall的值>>>",line)

要从新取才能再次取数据哦,因为游标已经

cur.execute('SELECT * FROM person')
res = cur.fetchone()
print("取一条数据>>>",res)

5、修改和删除

cur.execute('UPDATE person SET name=? WHERE id=? ',('cat',2))
cur.execute('DELETE FROM person WHERE id=1')
con.commit()

再查询一下修改个删除之后的数据

cur.execute('SELECT * FROM person')
res = cur.fetchall()
for line in res:
    print("循环删除之后的数据>>>",line)

最后

con.close()  # 关闭数据库链接

输出结果:
循环fetchall的值>>> (1, ‘leon’, 22)
循环fetchall的值>>> (2, ‘name2’, 28)
循环fetchall的值>>> (3, ‘name3’, 19)
循环fetchall的值>>> (4, ‘name4’, 26)
取一条数据>>> (1, ‘leon’, 22)
循环删除之后的数据>>> (2, ‘cat’, 28)
循环删除之后的数据>>> (3, ‘name3’, 19)
循环删除之后的数据>>> (4, ‘name4’, 26)

总结:
实际上创建表操作应该检查表是否存在,可以使用异常处理try…except
更新和修改和删除都应该检查表数据是否存在,否则程序会报错。
python 操作数据库插入语句占位符问题
1,在 Python 中使用 sqlite3 连接数据库,插入语句的展位符为 “?”
cur.execute(“insert into user values(?,?,?)”,(1,name,12))
2、在 Python 中,使用 pymysql 连接 mysql 数据库,插入语句的占位符为 “%s”
cursor.execute(“insert into user values(%s, %s, %s)”,(1,name,100))

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

python操作sqlite3小结

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

python操作sqlite3小结

使用默认模块sqlite3 使用sqlite3模块的connect方法来创建/打开数据库,需要指定数据库路径,不存在则创建一个新的数据库导入模块import sqlite3建立连接con = sqlite3.connect('E:\\201
2023-01-31

Python操作小结(mysql、txt

有段时间没有使用python了,对它的语法有点生疏,花了几个小时熟悉,期间发现很多小细节不清楚。为了下次能快速上手,避免重复犯错,我将python使用过程中的一些问题在这篇博文中记录小结一下,主要内容涉及到python操作mysql数据库,
2023-01-31

Python之Sqlite3数据库基本操作

在一些小的应用中,难免会用到数据库,Sqlite数据库以其小巧轻便,无需安装,移植性好著称,本文主要以一个简单的小例子,简述Python在Sqlite数据库方面的应用,仅供学习分享使用,如有不足之处,还请指正。涉及知识点sqlite3是Python集成的内置类
Python之Sqlite3数据库基本操作
2017-01-09

Android SQLite3多线程操作问题研究总结

最近做项目时在多线程读写数据库时抛出了异常,这自然是我对SQlite3有理解不到位的地方,所以事后仔细探究了一番。 1.关于getWriteableDataBase()和getReadableDatabase()的真正作用 getWrite
2022-06-06

Python简单操作sqlite3的方法示例

本文实例讲述了Python简单操作sqlite3的方法。分享给大家供大家参考,具体如下:import sqlite3 def Test1():#con =sqlite3.connect("D:\test.db")con =sqlite3.c
2022-06-04

python文件操作以及循环小结

Python中的文件使用建议使用with open(filename, "r") as f: 的形式进行文件操作,如果忘记关闭文件指针的话,他会帮你自己关闭文件,如果使用原来的方式 f = open(filename, "w") 打开文件,
2023-01-30

python 文件和路径操作函数小结

1: os.listdir(path) //path为目录 功能相当于在path目录下执行dir命令,返回为list类型 print os.listdir('..') 2: os.path.walk(path,visit,arg) path
2023-01-31

python字典的常用操作方法小结

Python字典是另一种可变容器模型(无序),且可存储任意类型对象,如字符串、数字、元组等其他容器模型。本文章主要介绍Python中字典(Dict)的详解操作方法,包含创建、访问、删除、其它操作等,需要的朋友可以参考下。 字典由键和对应值成
2022-06-04

python列表的常用操作方法小结

本文实例为大家了Python中列表(List)的详解操作方法,供大家参考,具体内容如下 1.创建列表。只要把逗号分隔的不同的数据项使用方括号括起来即可 List = ['wade','james','bosh','haslem'] 与字符串
2022-06-04

Golang怎么操作sqlite3数据库

这篇文章主要介绍了Golang怎么操作sqlite3数据库的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇Golang怎么操作sqlite3数据库文章都会有所收获,下面我们一起来看看吧。sqlite概述sqlit
2023-07-06

node.js操作mongodb学习小结

一、准备工作 1、在mongodb创建将要读取的表 创建数据库mongotestuse mongotest;向user表中插入数据db.user.insert({name:'flyoung',age:'18',sex:true});2、安装
2022-06-04

python字符串的常用操作方法小结

本文实例为大家分享了python字符串的操作方法,供大家参考,具体内容如下 1.去除空格 str.strip():删除字符串两边的指定字符,括号的写入指定字符,默认为空格>>> a=' hello ' >>> b=a.strip() >>>
2022-06-04

Shell脚本数组操作小结

Linux Shell在编程方面比Windows批处理强大很多,无论是在循环、运算。 bash支持一维数组(不支持多维数组),并且没有限定数组的大小。类似与C语言,数组元素的下标由0开始编号。获取数组中的元素要利用下标,下标可以是整数或算术
2022-06-04

Bash Shell字符串操作小结

1. 取长度 str="abcd"expr length $str # 4echo ${#str} # 4expr "$str" : ".*" # 4 好像一般使用第二种2. 查找子串的位置 str="abc"expr in
2022-06-04

编程热搜

  • Python 学习之路 - Python
    一、安装Python34Windows在Python官网(https://www.python.org/downloads/)下载安装包并安装。Python的默认安装路径是:C:\Python34配置环境变量:【右键计算机】--》【属性】-
    Python 学习之路 - Python
  • chatgpt的中文全称是什么
    chatgpt的中文全称是生成型预训练变换模型。ChatGPT是什么ChatGPT是美国人工智能研究实验室OpenAI开发的一种全新聊天机器人模型,它能够通过学习和理解人类的语言来进行对话,还能根据聊天的上下文进行互动,并协助人类完成一系列
    chatgpt的中文全称是什么
  • C/C++中extern函数使用详解
  • C/C++可变参数的使用
    可变参数的使用方法远远不止以下几种,不过在C,C++中使用可变参数时要小心,在使用printf()等函数时传入的参数个数一定不能比前面的格式化字符串中的’%’符号个数少,否则会产生访问越界,运气不好的话还会导致程序崩溃
    C/C++可变参数的使用
  • css样式文件该放在哪里
  • php中数组下标必须是连续的吗
  • Python 3 教程
    Python 3 教程 Python 的 3.0 版本,常被称为 Python 3000,或简称 Py3k。相对于 Python 的早期版本,这是一个较大的升级。为了不带入过多的累赘,Python 3.0 在设计的时候没有考虑向下兼容。 Python
    Python 3 教程
  • Python pip包管理
    一、前言    在Python中, 安装第三方模块是通过 setuptools 这个工具完成的。 Python有两个封装了 setuptools的包管理工具: easy_install  和  pip , 目前官方推荐使用 pip。    
    Python pip包管理
  • ubuntu如何重新编译内核
  • 改善Java代码之慎用java动态编译

目录