只需5分钟,利用Python掌握SQLite3

图片

在数据涌现的今天,数据库已成为生活中不可或缺的工具。Python作为一种流行的编程语言,内置了多种用于操作数据库的库,其中之一就是SQLite。SQLite是一种轻量级的关系型数据库管理系统,它在Python中的应用非常广泛。本文介绍如何使用Python操作SQLite数据库,希望能够帮助读者提高数据处理能力。

1 SQLite3简介

SQLite3是一个内置的Python模块,可以通过Python的标准库轻松地使用,无需进行额外安装和配置。SQLite3支持SQL语句,对数据库的操作简单高效。因此,SQLite3非常适用于小型项目和单机应用程序,是Python开发中常用的数据库解决方案之一,能为程序提供完整的数据库解决方案。

2 创建SQLite数据库

在IDE或文本编辑器中创建一个新的Python文件,把此文件命名为python\_database.py

首先,将SQLite模块导入到我们的项目中:

import sqlite3

由于Python内置了SQLite3,因此不需要安装任何东西。

接下来,需要创建数据库和与文件的连接。

db = sqlite3.connect('db.sqlite3')
cursor = db.cursor()

上面的代码分配了两个变量,第一个变量db调用了sqlite3.connect,它会连接到文件,这里在括号内告诉Python我们想要命名数据库。

cursor变量设置为db.cursor(),Python使用它来读取和写入数据库文件表。

然后,需要实际创建我们的表,可以通过以下代码来完成:

cursor.execute('''
            CREATE TABLE IF NOT EXISTS contacts(
                id INTEGER PRIMARY KEY,
                firstName TEXT,
                lastName TEXT,
                age TEXT,
                address TEXT,
                jobTitle TEXT)''')
db.commit()

解释一下上面的代码:

调用cursor.execute来在db.sqlite3数据库文件中写入一个新表。我们创建的表名为contactsCREATE TABLE IF NOT EXISTS行创建表(如果它还不存在于你的Python文件目录中)。

下面几行分配表头名称给每列,还必须指定每列中将放入什么类型的数据。

下面列出了不同的数据类型:

  • NULL,该值是个NULL值。
  • INTEGER,该值是个有符号整数,根据值的大小,以1、2、3、4、6或8个字节的形式存储。
  • REAL,该值是个浮点值,存储为8个字节的IEEE浮点数。
  • TEXT,该值是个文本字符串,使用数据库编码(UTF-8、UTF-16BE或UTF-16LE)存储。
  • BLOB,该值是数据的二进制大对象,以原始形式存储。

有一个名为id的列,为其分配了INTEGER PRIMARY KEY值。这对数据库来说是必需的,以便为每个条目分配唯一的ID,SQLite会自动增加每个新条目,每次添加新条目时SQLite都会自动将每个条目递增1。(在创建其他表之间的关系时,也需要使用此功能)。

创建的下一组标题包括firstNamelastNameageaddressjobTitle

你是否已经猜到了我们在构建什么?——是一个简单的联系人数据库。

调用db.commit()将表提交到数据库文件中。

现在,向新表中输入一些假数据。

可以编写一些 SQL 代码,如下所示:

cursor.execute('''INSERT INTO contacts(firstName, lastName, age, address, jobTitle) VALUES (?, ?, ?, ?, ?)''', ('Grant', 'Peach', '35', '1 Smith Street', 'Software Dev'))
db.commit()

如果运行上面的代码,Python将执行SQL并把条目插入到表中正确的标题中。

为了使它变得稍微简单一些,下面画了一个图表,说明了它是如何工作的:

图片赋值给占位符的值

每个?都是一个占位符,用于向标题输入条目,因此也可以使用变量来输入数据,例如,来自用户输入等。

3 SQLite数据库阅读器

如何知道数据是否输入到数据库中?可以通过多种方式检查这一点,但是需要一些其他软件来完成这个操作,这取决于操作系统甚至IDE可以使用什么来完成这个操作。

MacOS SQLite数据库阅读器

  • Base(£19.99或通过SetApp获得)
  • 适用于 SQLite 的 DB 浏览器(免费)

Windows SQLite数据库阅读器

  • 适用于 SQLite 的 DB 浏览器(免费)
  • SQLite阅读器(升级需要费用)

Linux SQLite数据库阅读器

  • 适用于 SQLite 的 DB 浏览器(免费)

安装其中一个阅读器,并加载数据库文件。应该会看到类似于下面屏幕截图的GUI:

图片

应该能够看到创建的表以及所有的标题。

如果单击浏览数据选项卡,就会看到表格中包含通过代码分配给每个标题的内容,如下所示:

图片

DB Browser是编辑数据以及通过CSV文件加载大量数据的真正有用工具,可以试一下。

也可以在具有专业版的Pycharm IDE中执行此操作。

4 查找数据

现在,已经知道如何输入数据以及查看它是否实际位于我们的数据库中,来返回到代码并创建一个函数,可以搜索数据库并显示输出。

现在可以删除代码中的数据输入部分,因为我们不再需要它了(或者直接注释掉它)

来构建我们的搜索函数,此函数将搜索任何给定的第一个名字并返回该行数据。

def search_db(first_name):
        cursor.execute("SELECT * FROM contacts WHERE firstName  LIKE '%' || ? || '%'", (first_name,))
        results = cursor.fetchall()
        print('Results Found...\n')
        print(results)

search_db('Grant')

运行上面的代码会输出以下内容:

图片

解释一下代码:

cursor.execute("SELECT * FROM contacts WHERE firstName  LIKE '%' || ? || '%'", (first_name,))

上面的代码从 contacts 表中选择所有内容,其中 firstName 列中包含搜索到的首字母。

然后创建了一个叫做results的变量,通过 cursor.fetchall() 将结果分配给该变量,然后在终端中打印出结果。

可以用Python和SQLite3做很多事情,本文这只是一个小示例,真心希望读者觉得这有用。

关于Python学习指南

学好 Python 不论是就业还是做副业赚钱都不错,但要学会 Python 还是要有一个学习规划。最后给大家分享一份全套的 Python 学习资料,给那些想学习 Python 的小伙伴们一点帮助!

包括:Python激活码+安装包、Python web开发,Python爬虫,Python数据分析,人工智能、自动化办公等学习教程。带你从零基础系统性的学好Python!

👉Python所有方向的学习路线👈

Python所有方向路线就是把Python常用的技术点做整理,形成各个领域的知识点汇总,它的用处就在于,你可以按照上面的知识点去找对应的学习资源,保证自己学得较为全面。(全套教程文末领取)

在这里插入图片描述

👉Python学习视频600合集👈

观看零基础学习视频,看视频学习是最快捷也是最有效果的方式,跟着视频中老师的思路,从基础到深入,还是很容易入门的。

在这里插入图片描述

温馨提示:篇幅有限,已打包文件夹,获取方式在:文末

👉Python70个实战练手案例&源码👈

光学理论是没用的,要学会跟着一起敲,要动手实操,才能将自己的所学运用到实际当中去,这时候可以搞点实战案例来学习。

在这里插入图片描述

👉Python大厂面试资料👈

我们学习Python必然是为了找到高薪的工作,下面这些面试题是来自阿里、腾讯、字节等一线互联网大厂最新的面试资料,并且有阿里大佬给出了权威的解答,刷完这一套面试资料相信大家都能找到满意的工作。

在这里插入图片描述

在这里插入图片描述

👉Python副业兼职路线&方法👈

学好 Python 不论是就业还是做副业赚钱都不错,但要学会兼职接单还是要有一个学习规划。

在这里插入图片描述

👉 这份完整版的Python全套学习资料已经上传,朋友们如果需要可以扫描下方CSDN官方认证二维码或者点击链接免费领取保证100%免费

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/537836.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

如何快速制作问卷?时间省略必备技能

我们可以采用“提出重要问题、简化问题长度、使用调查逻辑、预填答案、避免询问技术性问题、分次调查、问题模块化、增加问题的多样性”等方式来缩短问卷制作的时间。 高回复率对于问卷调查的最终结果至关重要。就像一支强壮而细长的箭头可以走更远的距离一样,清晰而…

matlab 安装 mingw64(6.3.0),OPENEXR

matlab安装openexr 1. matlab版本与对应的mingw版本选择2. mingw(6.3.0)下载地址:3. matlab2020a配置mingw(6.3.0)流程“4. matlab 安装openexr方法一:更新matlab版本方法二:其他博文方法方法三…

详解Qt添加外部库

在Qt项目中添加外部库是一项常见任务,无论是静态库还是动态库都需要正确的配置才能让项目顺利编译链接。以下是详细步骤和不同场景下的配置方法: 方法一:手动编辑.pro文件 添加头文件路径: 在Qt项目中的.pro文件中使用INCLUDEPAT…

VsCode 安装Jupyter Notebook

VsCode 安装Jupyter Notebook 安装 1、打开 VSCode 编辑器,点击界面左端的【扩展】栏; 2、在【搜索框】中输入python,点击第一个Python,检查是否已经安装 python 插件,没安装的点击安装;已安装的继续第3步…

AI预测体彩排3第1弹【2024年4月12日预测--第1套算法开始计算第1次测试】

前面经过多个模型几十次对福彩3D的预测,积累了一定的经验,摸索了一些稳定的规律,有很多彩友让我也出一下排列3的预测结果,我认为目前时机已成熟,且由于福彩3D和体彩排列3的玩法完全一样,我认为3D的规律和模…

大文件传输之为啥传输过程中出现宽带不足的情况

在当今数字化时代,大文件传输已成为企业日常运营的关键环节。然而,许多企业在传输大文件时经常面临宽带不足的问题,这不仅影响了工作效率,还可能导致业务机会的丧失。本文将探讨大文件传输过程中宽带不足的原因,以及镭…

目前电视盒子哪个最好?测评工作室盘点超强电视盒子推荐

每年我们会进行数十次电视盒子测评,对各个品牌的产品都有深入的了解,最近我们收到了很多私信不知道目前电视盒子哪个最好,这次我们结合配置总结了五款性能超强的电视盒子推荐给各位,预算足够想买高配电视盒子的朋友们可不要错过啦…

视频评论ID提取工具|视频关键词评论批量采集软件

视频评论ID提取工具:批量抓取视频评论 视频评论ID提取工具是一款功能强大的软件,可以帮助您批量抓取视频视频下的评论信息。通过输入关键词和评论监控词,即可进行评论的抓取,并提供评论昵称、评论日期、评论内容、命中关键词以及所…

机器学习和深度学习 -- 李宏毅(笔记与个人理解)Day 13

Day13 Error surface is rugged…… Tips for training :Adaptive Learning Rate critical point is not the difficult Root mean Square --used in Adagrad 这里为啥是前面的g的和而不是直接只除以当前呢? 这种方法的目的是防止学习率在训练过程中快速衰减。如果只用当前的…

pip install tensorflow-gpu 报错

查阅官网后可知,该命令已经被删除掉了。 tensorflow-gpu PyPI 【解决办法】 我直接安装了其他版本的包 pip install tensorflow-gpu2.10.0 测试 import tensorflow as tfprint("tf.__version__: ", tf.__version__)# print("tf.test.is_gpu_av…

String类(2)

❤️❤️前言~🥳🎉🎉🎉 hellohello~,大家好💕💕,这里是E绵绵呀✋✋ ,如果觉得这篇文章还不错的话还请点赞❤️❤️收藏💞 💞 关注💥&…

计算机视觉:技术与应用的深度解析

一、引言 计算机视觉,作为人工智能的一个重要分支,旨在通过计算机模拟人类的视觉系统,实现对图像或视频信息的自动分析和理解。随着深度学习、神经网络等技术的快速发展,计算机视觉在各个领域的应用日益广泛,包括安全…

MongoDB数据库转换为表格文件的Python实现

目录 一、引言 二、转换工具与库的选择 三、转换过程详解 安装必要的库 连接MongoDB数据库 查询并处理数据 将数据写入CSV文件 四、进阶技巧与注意事项 五、总结 一、引言 在当今大数据时代,数据的存储、处理与共享显得尤为重要。MongoDB作为一个面向文档…

Arduino 项目笔记 |TH1621 LCD液晶显示屏驱动(SSOP-24封装)

LCD液晶屏资料 LCD液晶屏资料 重要参数: 工作电压: 3V可视角度:1201/4 ,1/3 TH1621 驱动 HT1621 LCD控制驱动芯片介绍 VLCD 和 VCC 电压符合规格书,最好都取3.3V 。电压太高或太低都会出现段码液晶屏乱码的情况&am…

每日一题---OJ题: 相交链表

片头 嗨! 小伙伴们,大家好! 今天我们来一起学习这道OJ题---相交链表,准备好了吗? Ready Go! ! ! emmm,看这道题好像不怎么难,我们一起画图分析分析 上图中,A链表有5个结点,分别为 a1,a2,c1,c2,c3 ; B链表有6个结点,分别为 b1,b2,b3,c1,c2,c3 ; A链表和B链表在c1结点相交 …

(Java)数据结构——图(第六节)Dijkstra实现单源最短路径

前言 本博客是博主用于复习数据结构以及算法的博客,如果疏忽出现错误,还望各位指正。 Dijkstra算法(Dijkstra的实现原理) 迪杰斯特拉算法的实现,很像Prim,基本原理是: 我先找到距离集合路径…

java:字符集和字符流

字符集 规定了字符和二进制之间对应关系的一张表 字节是计算机最基本的存储单位 字符则是通过字符组成和编码而成的文本 常见字符集 1,ASCII字符集 基础字符编码标准,包含128个字符,只包括英文字母,数字和一些常见的符号 一个字节表示一个字符 所有的字符集均兼容ASCII…

Oracle 正则表达式

一、Oracle 正则表达式相关函数 (1) regexp_like :同 like 功能相似(模糊 匹配) (2) regexp_instr :同 instr 功能相似(返回字符所在 下标) (3) regexp_substr : 同 substr 功能相似&…

七项上榜!通付盾十一度荣登安全牛《中国网络安全行业全景图》

2024年4月12日,安全牛第十一版《中国网络安全行业全景图》(以下简称“全景图”)正式发布。通付盾凭借领先的技术实力与优秀的市场表现,成功入选身份与访问安全、应用与业务安全、移动安全、安全支撑技术与体系四大安全领域。 身份…

宝塔面板部署腾讯云的域名

一、腾讯云,搜索我的证书,点击打开如图所示,点击下砸 二、点击宝塔的证书,然后下载到桌面 三、解压 四、打开宝塔,网站》自己的项目列表中要绑定的ssl 五、对应的文件内容复制进去,保存并启用证书 六、有了…