大家好,在数据涌现的今天,数据库已成为生活中不可或缺的工具。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我们想要命名数据库。 上面的代码分配了两个变量,第一个变量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。(在创建其他表之间的关系时,也需要使用此功能)。 创建的下一组标题包括fname、lname、age、address和jobTitle,由此构建一个简单的联系人数据库,调用db.commit()将表提交到数据库文件中。 现在向新表中输入一些假数据,可以编写一些 SQL 代码,如下所示:
cursor.execute('''INSERT INTO contacts(fname, lname, age, address, jobTitle)
VALUES (?, ?, ?, ?, ?)''', ('Grant', 'Peach', '35', '1 Smith Street', 'Software Dev'))
查询数据
使用SELECT语句,从表格中检索数据。
以下是一个查询数据的示例:
conn.connection('数据库名)
cursor=conn.cursor()
cursor.execute("SELECT * FROM students")
students = cursor.fetchall()
for student in students:
print(student)
上述代码执行SELECT语句并将结果存储在students变量中,然后通过循环打印每个学生的信息。 更新和删除数据
更新数据,使用UPDATE语句;
删除数据,使用DELETE语句。
以下是更新和删除数据的示例:
cursor.execute("UPDATE students SET age = ? WHERE name = ?", (26, 'Alice'))
conn.commit()
# 删除学生信息
cursor.execute("DELETE FROM students WHERE name = ?", ('Alice',))
conn.commit()
上述代码分别将学生Alice的年龄更新为26岁,并从表格中删除了名为Alice的记录 总结 SQLite是一种轻量级的嵌入式数据库引擎,适用于各种应用程序,从小型工具到大型数据驱动应用程序。SQLite是一个强大且灵活的数据库引擎,对于许多应用程序都非常适用。