在数据涌现的今天,数据库已成为生活中不可或缺的工具。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
数据库文件中写入一个新表。我们创建的表名为contacts
,CREATE 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。(在创建其他表之间的关系时,也需要使用此功能)。
创建的下一组标题包括firstName
、lastName
、age
、address
和jobTitle
。
你是否已经猜到了我们在构建什么?——是一个简单的联系人数据库。
调用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%免费
】