python数据库如何连接SQLite详解
作者:wakeyo_J 发布时间:2024-01-22 16:36:04
1. 建立与SQLite数据库的连接
SQLite是python自带的一款基于内存或硬盘的、开源的、关系型的轻量级数据库。这意味着无需下载安装SQLite数据库产品和对应的数据库驱动程序,可以被python语言以模块导入方式直接调用。其位置在python的安装路径为Lib/sqlite3/。
对关系型数据库进行读写操作,需要建立如下几个操作步骤:
第一步,建立应用系统与数据库的连接;
第二步,需要建立数据库实例,通俗理解是建立一个存储数据库的文件;
第三步,建立对应的表结构;
第四步,往表里写记录,读记录;
第五步,关闭与数据库的连接。
1.1 建立基于内存的数据库
import sqlite3 #导入sqlite3模块
conn = sqlite3.connect(":memory:") #建立一个基于内存的数据库
conn.close() #关闭与数据库的连接
当对数据库操作完成时,建议养成及时关闭数据库连接的好习惯,避免打开数据库连接过多,消耗内存存储空间。
1.2 建立基于硬盘的数据库
import sqlite3 #导入sqlite3模块
conn = sqlite3.connect("First.db") #建立一个基于硬盘的数据库实例
conn.close() #关闭与数据库的连接
效果:
执行代码后,在python的安装路径下生成First.db文件。
1.3 基于内存和基于硬盘的区别
基于内存数据库容易丢失(特别是关机或因突发事故就会丢失内存里的数据),基于硬盘数据可以持久保存基于内存数据读写速度快,基于硬盘数据读写速度慢基于内存数据存储容量受内容受内容可用空间限制,基于硬盘数据存储容量受限于硬盘可用空间
2. 在指定数据库里建立表结构
在关系型数据库中,需要创建关系型特征的表结构,才能往表里写入数据以及进行数据库的操作。
将下列二维结构化记录表依次存放到数据库表中。
建立一个对应的数据库表需要建立钓鱼日期、名称、数量、价格、备注五个字段。其中,字段值需要确定数据类型,如数量为整数,价格为浮点数,钓鱼日期、名称、备注为字符型。
2.1 建立数据库表结构
import sqlite3 #导入sqlite3模块
conn = sqlite3.connect("First.db") #建立一个基于硬盘的数据库实例
cur = conn.cursor() #通过建立数据库游标对象,准备读写操作
cur.execute("Create table T_fish(date text,name text,nums int,price real,Explain text)") #根据上表结构建立对应的表结构对象
cur.execute("insert into T_fish Values('2018-3-28','黑鱼',10,28.3,'tom')") #插入一行记录结果信息
conn.commit() #保存提交,确保数据保存成功
conn.close() #关闭与数据库的连接
在First.db数据库中创建一个T_fish表,然后往表里插入一行记录,最后提交保存并关闭数据库连接。
建立数据库表采用的时标准SQL命令的方法,在数据库里创建对应的T_fish表。
插入一行记录,通过游标的execu()方法,利用SQL的insert命令往T_fish表里执行一条插入记录;可以连续多行执行execu()方法,执行多条SQL语句
提交保存,在对数据库进行写操作时,最后必须调用Connection对象的commit()方法,才能把数据真的提交到数据库中,否则会存在数据丢失。
游标起指向某数据库的某表的作用,只有建立了确定的表的指向关系,才能进行插入、修改、删除、查找等操作。
2.2 查找数据
import sqlite3
conn = sqlite3.connect("First.db") #连接数据库
cur = conn.cursor() #创建关联数据库的游标实例
cur.execute("select * from T_fish") #对T_fish表执行数据查找命令
for row in cur.fetchall(): #以一条记录为元组单位返回结果给row
print(row)
conn.close() #关闭数据库
效果:
2.3 删除数据
import sqlite3
conn = sqlite3.connect("First.db") #连接数据库
cur = conn.cursor() #创建游标实例
cur.execute("insert into T_fish Values('2018-3-29','鲤鱼',17,10.3,'john')") #插入一条数据
cur.execute("insert into T_fish Values('2018-3-30','鲢鱼',9,9.2,'tim')")
conn.commit() #提交数据保存到磁盘
cur.execute("select * from T_fish") #查找表里的记录
for row in cur.fetchall():
print(row)
cur.execute("delete from T_fish where nums=10") #删除数量为10的记录
conn.commit() #提交结果到硬盘
print('=='*50)
cur.execute("select * from T_fish") #查找T_fish表里的记录
for row in cur.fetchall():
print(row)
conn.close()
效果:
来源:https://blog.csdn.net/m0_55697123/article/details/119717715
猜你喜欢
- 前言现在Python3 被越来越多的开发者所接受,同时让人尴尬的是很多遗留的老系统依旧运行在 Python2 的环境中,因此有时你不得不同时
- 在Oracle SQL的where子句中传入字符类型参数'19-11月-08',使得可以直接和日期类型比较,或者转换一下同日
- 这是关于Python的第6篇文章,主要介绍下逻辑判断与运算符。(一)逻辑判断:如果要实现一个复杂的功能程序,逻辑判断必不可少。逻辑判断的最基
- ES在之前的博客已有介绍,提供很多接口,本文介绍如何使用python批量导入。ES官网上有较多说明文档,仔细研究并结合搜索引擎应该不难使用。
- 昨天晚上才发现已经出了jQuery的1.3版本,于是下载下来,把原来一个兄弟翻译的1.2.6的文档移植到了1.3中,点击这里可
- 测试环境Python 3.6.2代码实现非多线程场景下使用新建并保存EXCELimport win32com.clientfrom win3
- Django内置的filter有很多,然而我们由于业务逻辑的特殊要求,有时候仍然会不够用,这个时候就需要我们自定义filter来实现相应的内
- 前言大风车,吱呀吱呦呦地转,这里的风景呀真好看!天好看,地好看……一首熟悉的歌曲,是否已经把你拉
- RedHat 9.0下自带的mysql rpm包为mysql-3.23.54a-11.i386.rpm,如果在你安装操作系统时没有安装mys
- 一、题目描述A:先输出提示语句,并接受用户输入的年、月。B:根据用户输入的年,先判断是否是闰年。C:根据用户输入的月来判断月的天数。D:用循
- Python中对象的行为是由它的类型 (Type) 决定的。所谓类型就是支持某些特定的操作。数字对象在任何编程语言中都是基础元素,支持加、减
- 1、引言小 * 丝:鱼哥,鱼哥,help…小鱼:呼吸声越来越弱,你这是劳累过度??小 * 丝:拉倒吧,我这是激动的小鱼:什么大
- 本文实例讲述了windows下Python实现将pdf文件转化为png格式图片的方法。分享给大家供大家参考,具体如下:最近工作中需要把pdf
- 不知不觉,玩爬虫玩了一个多月了。我愈发觉得,爬虫其实并不是什么特别高深的技术,它的价值不在于你使用了什么特别牛的框架,用了多么了不起的技术,
- 前言:本文研究的主要是Python实现pig Latin小游戏的简单代码,具体介绍如下。Pig Latin是一个语言游戏。步骤:1.让用户输
- 防止客户机的请求互相干扰或者服务器与维护程序相互干扰的方法主要有多种。如果你关闭数据库,就可以保证服务器和myisamchk和isamchk
- 前言当我们需要安装python的第三方库时,通常都是打开cmd输入pip install xxx去安装。但是默认安装路径在C盘,极大占用空间
- 平时写pyhton的时候习惯初始化一些list啊,tuple啊,dict啊这样的。一用到Pandas的DataFrame数据结构也就总想着初
- DDPDistributed Data Parallel 简称 DDP,是 PyTorch 框架下一种适用于单机多卡、多机多卡任务的数据并行
- 我们都知道打开文件有两种方法:f = open()with open() as f:这两种方法的区别就是第一种方法需要我们自己关闭文件;f.