Python操作SQLite数据库

SQLite 是一种轻量级的数据库引擎,广泛用于嵌入式设备和小型应用程序。在Python中,SQLite 是一个流行的选择,因为它易于使用、快速、可靠,并且无需独立的服务器进程。本文将深入探讨如何使用 Python 操作 SQLite 数据库,包括创建数据库、表格、插入数据、查询数据等。

主要优点是sqlite在Python中使用通常是以文件的形式存在, 这减少了很多配置工作,主要用于小型项目的数据上传保存。

安装Sqlite3

在 Python 中,SQLite3 已经内置,无需额外安装。可以直接 import sqlite3 来使用它。

import sqlite3

连接数据库

使用 connect() 函数连接到数据库,并返回一个 Connection 对象。

conn = sqlite3.connect('example.db')

同样支持指定路径

# 指定路径为 /path/to/your/database/example.db
conn = sqlite3.connect('/path/to/your/database/example.db')

创建表格

建表(如果已存在则报错)

# 建表(如果已存在则报错)
create_table_sql = """
CREATE TABLE users (id INTEGER PRIMARY KEY,name TEXT NOT NULL,age INTEGER
);
"""conn.execute(create_table_sql)

建表(如果已存在则不做操作) 通常就使用这种方式

# 建表(如果已存在则不做操作)
create_table_sql = """
CREATE TABLE IF NOT EXISTS users (id INTEGER PRIMARY KEY,name TEXT NOT NULL,age INTEGER
);
"""conn.execute(create_table_sql)

增删改查


# 插入数据
def insert_user(name, age):sql = "INSERT INTO users (name, age) VALUES (?, ?)"conn.execute(sql, (name, age))conn.commit()# 删除数据
def delete_user(user_id):sql = "DELETE FROM users WHERE id = ?"conn.execute(sql, (user_id,))conn.commit()# 更新数据
def update_user(user_id, new_name, new_age):sql = "UPDATE users SET name = ?, age = ? WHERE id = ?"conn.execute(sql, (new_name, new_age, user_id))conn.commit()# 查询多个数据(返回list)
def fetch_users():sql = "SELECT * FROM users"return conn.execute(sql).fetchall()# 查询一个数据
def fetch_users():sql = "SELECT * FROM users"return conn.execute(sql).fetchone()# 查询指定数目数据(返回list)
def fetch_users():sql = "SELECT * FROM users"return conn.execute(sql).fetchmany(10) # 获取10行

综合案例

import sqlite3# 连接到 SQLite 数据库,如果不存在将会创建一个新的数据库
conn = sqlite3.connect('example.db')# 创建表的 SQL 语句
create_table_sql = """
CREATE TABLE IF NOT EXISTS users (id INTEGER PRIMARY KEY,name TEXT NOT NULL,age INTEGER
);
"""# 执行创建表的 SQL 语句
conn.execute(create_table_sql)# 插入数据
def insert_user(name, age):sql = "INSERT INTO users (name, age) VALUES (?, ?)"conn.execute(sql, (name, age))conn.commit()# 删除数据
def delete_user(user_id):sql = "DELETE FROM users WHERE id = ?"conn.execute(sql, (user_id,))conn.commit()# 更新数据
def update_user(user_id, new_name, new_age):sql = "UPDATE users SET name = ?, age = ? WHERE id = ?"conn.execute(sql, (new_name, new_age, user_id))conn.commit()# 查询数据
def fetch_users():sql = "SELECT * FROM users"return conn.execute(sql).fetchall()# 插入一些示例数据
insert_user("Alice", 30)
insert_user("Bob", 25)# 输出所有用户
print("All users:")
for user in fetch_users():print(user)# 更新用户
update_user(1, "Alice Smith", 31)# 输出所有用户
print("\nAll users after update:")
for user in fetch_users():print(user)# 删除用户
delete_user(2)# 输出所有用户
print("\nAll users after delete:")
for user in fetch_users():print(user)# 关闭游标对象和数据库连接
conn.close()

运行结果


All users:
(1, 'Alice Smith', 31)
(2, 'Alice', 30)
(3, 'Bob', 25)All users after update:
(1, 'Alice Smith', 31)
(2, 'Alice', 30)
(3, 'Bob', 25)All users after delete:
(1, 'Alice Smith', 31)
(3, 'Bob', 25)

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Excel·VBA考勤打卡记录整理

看到一个帖子《excel吧-考勤一天四次打卡,快速找出缺卡》,每个人每天有4次打卡记录,需要整理出所有缺少的打卡记录 与之前的文章《ExcelVBA考勤打卡记录统计结果》结果形式类似 与之前的文章《ExcelVBA考勤打卡记录数据整理》查找上下班打卡…

Linux、Docker、Brew、Nginx常用命令

Linux、Docker、Brew、Nginx常用命令 Linuxvi编辑器文件操作文件夹操作磁盘操作 DockerBrewNginx参考 Linux vi编辑器 Vi有三种模式。命令模式、输入模式、尾行模式,简单的关系如下: i -- 切换到输入模式,在光标当前位置开始输入文本。&a…

【go从入门到精通】初识struct结构体

作者简介: 高科,先后在 IBM PlatformComputing从事网格计算,淘米网,网易从事游戏服务器开发,拥有丰富的C,go等语言开发经验,mysql,mongo,redis等数据库,设计模…

Flutter中工厂方法的多种实现方法与使用场景分析

在Flutter应用程序的开发中,使用工厂方法是一种常见的设计模式,它可以帮助我们更好地组织和管理代码,提高代码的可读性和可维护性。本文将介绍Flutter中工厂方法的多种实现方法,并分析其在不同场景下的使用情况。 什么是工厂方法…

虚拟网络设备性能优化

在现代网络架构中,虚拟网络设备扮演着越来越重要的角色🌐,特别是在云计算☁️和容器化技术📦广泛应用的背景下。虚拟网络设备如虚拟以太网设备(veth)、虚拟交换机(vSwitch)、和虚拟路…

【阅读笔记】《同意》

未成年幼女与男恋童癖的故事 作者: [法]瓦内莎斯普林格拉 翻译:李溪月 kindle看的电子书 笔记 传记形式的书。作者记录了14岁时与一个50岁的恋童癖患者进行第一次性行为的经历以及前后的故事。 恋童癖被作者命名为“G”,作者自称“M”,G是…

适用于 Mac 的 10 大数据恢复工具,具有优点、缺点

数据丢失很常见,并且可能由于许多不同的原因而发生。这种情况在我和我们团队的其他成员身上发生过很多次,即使我们格外小心我们的个人存储设备。 幸运的是,数据恢复软件在大多数情况下都可以工作。但是,由于数据丢失场景彼此之间…

arcgis10.x创建镶嵌数据集

在ArcGIS中创建新的镶嵌数据集的步骤如下:打开ArcGIS软件,并在工具箱中选择“Data Management Tools.tbx”→“Raster”→“Mosaic Dataset”→“Create Mosaic Dataset”。在弹出的窗口中,配置镶嵌数据集的地理数据库位置、名称和坐标系…

centos7 安装 rabbitmq3.8.5

1.首先安装 erlang 环境: curl -s https://packagecloud.io/install/repositories/rabbitmq/erlang/script.rpm.sh | sudo bash sudo yum install erlang-21.3.8.14-1.el7.x86_64 yum install socat -y 2.安装 rabbitmq https://github.com/rabbitmq/rabbitmq-s…

STM32学习和实践笔记(7):改变系统时钟的实验

今天完成了这个改变系统时钟的实验。实验是成功的。 #include "stm32f10x.h" #include "led.h"void delay(u32 i) {while(i--); }void RCC_HSE_Config(u32 div,u32 pllm) //自定义系统时间(可以修改时钟) {RCC_DeInit(); //将外设R…

【CKA模拟题】边车容器Shared-Volume的具体用法

Useful Resources: Persistent Volumes Claim , Pod to Use a PV 题干 For this question, please set this context (In exam, diff cluster name) kubectl config use-context kubernetes-adminkubernetes An existing nginx pod, my-pod-cka and Persistent Volume Claim…

2024年注册安全工程师考试真题及答案1

一、选择题 31.2019年12月10日,某热力公司供热锅炉发生故障。故障抢修过程中,发现锅炉房桥式起重机主钩抱闸故障,存在溜钩现象。由于起重设备厂家人员不能及时到场,工作负责人急于恢复供热,安排检修工甲站在桥式起重机…

macOS制作C/C++ app

C/C制作macOS .app 一、 .app APP其实是一个文件夹结构,只不过mac的界面中让它看起来像一个单独的文件。 在shell终端或者右键查看包结构即可看到APP的目录结构。 通常的app目录结构如下: _CodeSignature, CodeResources 一般为Mac APP Store上架程序…

【aws】在DBeaver上用终端节点连接Redshift

碎碎念 最近想要尝试redshift的一个叫做重新定位的功能,重新定位触发之后会停止当前的集群,转而在同一个区域的另一个可用区中启动一个一样的集群,这个过程视情况会花上10到60分钟不等。 但是目前项目中连接到redshift用的是私有ip&#xf…

保研线性代数复习4

一.范数(Norms) 1.什么是范数? 范数是一个向量空间V的函数,每一个属于向量空间V的向量x都匹配了一个实数(它的长度): 2.范数的性质? 齐次性: 正定性: 三…

大创项目推荐 深度学习 机器视觉 车位识别车道线检测 - python opencv

0 前言 🔥 优质竞赛项目系列,今天要分享的是 🚩 深度学习 机器视觉 车位识别车道线检测 该项目较为新颖,适合作为竞赛课题方向,学长非常推荐! 🥇学长这里给一个题目综合评分(每项满分5分) …

webrtc m98编译问题记录

webrtc m98编译问题 执行命令 gn gen --targetx64 --idevs2019 --args"is_debugtrue rtc_enable_protobuffalse is_clangfalse target_cpu\"x64\" enable_iterator_debuggingtrue use_custom_libcxxfalse symbol_level0 rtc_include_testsfalse" out/d…

【开源书籍】深入讲解内核网络、Kubernetes、ServiceMesh、容器等云原生相关技术。

项目地址:GitHub - isno/theByteBook: ⭐ 【开源书籍】深入讲解内核网络、Kubernetes、ServiceMesh、容器等云原生相关技术。经历实践检验的 DevOps、SRE指南。如发现错误,谢谢提issue 深入架构原理与实践 这是什么? 这是一本关于架构设计…

1. qml的基础入门篇-及学习思路大纲

目录 学习习惯学习大纲(会不间断修订)(留意第一篇) 学习习惯 学习qt不得不说的一些基本习惯: ①查看qt源码,学习qt一定要耐心去看qt的源码,有很多技术我们可以从中借鉴 ②查看代码开放平台&…

【Python】基础(专版提升1)

Python基础 1. 导学1.1 学习理念1.1.1 弱语法,重本质1.1.2 是技术,更艺术 1.2 学习方法1.2.1 当天知识必须理解 2. Python 简介2.1 计算机基础结构2.1.1 硬件2.1.2 软件 2.2 基础知识2.2.1 Python介绍2.2.1.1定义2.2.1.2优势2.2.1.3从业岗位 2.2.2 Pytho…