在数据涌现的本日,数据库已成为生活中不可或缺的工具。Python作为一种流行的编程语言,内置了多种用于操作数据库的库,其中之一就是SQLite。SQLite是一种轻量级的关系型数据库管理系统,它在Python中的应用非常广泛。本文先容怎样使用Python操作SQLite数据库,盼望可以或许资助读者提高数据处理能力。
1 SQLite3简介
SQLite3是一个内置的Python模块,可以通过Python的尺度库轻松地使用,无需进行额外安装和配置。SQLite3支持SQL语句,对数据库的操作简朴高效。因此,SQLite3非常适用于小型项目和单机应用程序,是Python开辟中常用的数据库解决方案之一,能为程序提供完备的数据库解决方案。
2 创建SQLite数据库
在IDE或文本编辑器中创建一个新的Python文件,把此文件定名为python\_database.py
首先,将SQLite模块导入到我们的项目中:
由于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数据库阅读器
安装其中一个阅读器,并加载数据库文件。应该会看到类似于下面屏幕截图的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!
|