python数据库如何连接SQLite详解

 更新时间:2021年08月17日 11:36:52   作者:wakeyo_J  
这篇文章主要介绍了Python实现连接SQLite数据库的方法,在Python数据库编程中有着广泛的应用,需要的朋友可以参考下,希望能给你带来帮助

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()

效果:

在这里插入图片描述

总结

本篇文章就到这里了,希望能给你带来帮助,也希望您能够多多关注脚本之家的更多内容!

相关文章

  • Python查找函数f(x)=0根的解决方法

    Python查找函数f(x)=0根的解决方法

    这篇文章主要介绍了Python查找函数f(x)=0根的解决方法,涉及Python数学运算函数求解的相关技巧,需要的朋友可以参考下
    2015-05-05
  • Python实例解析图像形态学运算技术

    Python实例解析图像形态学运算技术

    形态学处理方法是基于对二进制图像进行处理的,卷积核决定图像处理后的效果。本文将为大家详细介绍一下OpenCV中的图像形态学,感兴趣的可以了解一下
    2022-03-03
  • Python 字符串类型列表转换成真正列表类型过程解析

    Python 字符串类型列表转换成真正列表类型过程解析

    这篇文章主要介绍了Python 字符串类型列表转换成真正列表类型过程解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2019-08-08
  • python中argparse模块及action='store_true'详解

    python中argparse模块及action='store_true'详解

    argparse 是一个用来解析命令行参数的 Python 库,它是 Python 标准库的一部分,这篇文章主要介绍了python中argparse模块及action=‘store_true‘详解,需要的朋友可以参考下
    2023-02-02
  • Python .format()函数使用方法详解

    Python .format()函数使用方法详解

    python中format函数用于字符串的格式化,接下来通过本文给大家介绍python中format()函数的简单使用教程,一起看看吧
    2021-10-10
  • python模拟表单提交登录图书馆

    python模拟表单提交登录图书馆

    这篇文章主要为大家详细介绍了python模拟表单提交登录图书馆的实现方法,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2018-04-04
  • 6行Python代码实现进度条效果(Progress、tqdm、alive-progress​​​​​​​和PySimpleGUI库)

    6行Python代码实现进度条效果(Progress、tqdm、alive-progress​​

    这篇文章主要介绍了6行Python代码实现进度条效果(Progress、tqdm、alive-progress和PySimpleGUI库),文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-01-01
  • python生成IP段的方法

    python生成IP段的方法

    这篇文章主要介绍了python生成IP段的方法,涉及Python文件读写及随机数操作的相关技巧,具有一定参考借鉴价值,需要的朋友可以参考下
    2015-07-07
  • python dataframe如何选择某一列非空的行

    python dataframe如何选择某一列非空的行

    这篇文章主要介绍了python dataframe如何选择某一列非空的行问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2024-02-02
  • django的autoreload机制实现

    django的autoreload机制实现

    这篇文章主要介绍了django的autoreload机制实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-06-06

最新评论