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
猜你喜欢
- 一、框架架构二、项目目录结构三、框架功能说明解决痛点:通过session会话方式,解决了登录之后cookie关联处理框架天然支持接口动态传参
- ALTER TABLE将表更改为当前字符集。如果在执行ALTER TABLE操作期间遇到重复键错误,原因在于新的字符集将2个键映射到了相同值
- 在javascript开发过程中,如果总是使用alert的方式调试程序,在某些简单的程序中是可行的. 但是在通常的项目很复杂,这
- 在做task中,需要将TXT文本中的某一项注释修改,但是python对txt文本只有写入和读取两种操作。我采用的方法是:1.读取txt文件,
- 前言版本:windows 10.0python 3.8问题简述近期看到这么一个问题,有把值分别赋值给不同的变量,想在比较大小后得到变量的名称
- 来与大家分享。稍加改造就可以实现更强大的功能了。用下面的代码就可以简单的批量导出picasa相册的外链了。代码如下:<%@LANGUA
- 1、Matplotlib中使用LaTeX 公式和符号一些配置安装两个软件,链接给出,提取码:1234protext-3.2-033020.z
- CentOS6.9+Mysql5.7.18源码安装,以下操作均在root用户下执行。1、安装依赖工具cmake make3.75+ gcc4
- 本文研究的主要是python中协程的相关问题,具体介绍如下。Num01–>协程的定义协程,又称微线程,纤程。英文名Coroutine。
- 本文实例总结了Python实现判断一个字符串是否包含子串的方法。分享给大家供大家参考,具体如下:1.使用成员操作符 in>>&g
- PHP 利用 Curl Functions 可以完成各种传送文件操作,比如模拟浏览器发送GET,POST请求等等,受限于php语言本身不支持
- 前天不小心把硬盘格式化了,丢了好多照片,后来用Recuva这款软件成功把文件恢复过来,可是恢复的文件中有好多重复的文件和无法打开的图片,所以
- 在运行Go语言程序之前,先要将其编译成二进制的可执行文件我们通常在编辑器编写完源码后使用go build或go run命令对GO语言程序进行
- 以下操作演示都是基于mysql5.6.36版本:工作中经常遇到这样的问题:mysql数据访问能量很大,想要从sql方面优化。研发经常会问到能
- 套接字socket套接字(socket)是计算机之间进行通信的一种技术,它允许不同主机上的进程之间进行数据交换。在Python中,我们可以使
- 1.作用域在python中,作用域分为两种:全局作用域和局部作用域。全局作用域是定义在文件级别的变量,函数名。而局部作用域,则是定义函数内部
- 1. 什么是Matplotlibmatplotlib是专门用于开发2D图表(包括3D图表),以渐进、交互式方式实现数据可视化。使用pytho
- 环境Sqlserver 2016 .net 4.5.2 目前测试数据1300万 大约3-4分钟.(限制一次读取条数 和
- 概述OpenCV 是一个跨平台的计算机视觉库, 支持多语言, 功能强大. 今天小白就带大家一起携手走进 OpenCV 的世界.梯度运算梯度:
- 一.Sobel算子Sobel算子是一种用于边缘检测的离散微分算子,它结合了高斯平滑和微分求导。该算子用于计算图像明暗程度近似值,根据图像边缘