Python数据库编程实战:sqlite3模块详解

Python数据库编程实战:sqlite3模块详解

在Python中,数据库编程是一项重要且实用的技能。通过数据库,我们可以高效地存储、检索和管理大量数据。Python提供了多种数据库编程接口,其中sqlite3模块是一个轻量级的关系型数据库引擎,它不需要单独的服务器进程,可以直接在Python程序中嵌入使用。本文将详细介绍如何使用sqlite3模块进行数据库操作,包括连接数据库、创建表、插入数据、查询数据以及更新和删除数据等。

一、连接数据库

在使用sqlite3模块之前,首先需要确保已经安装了Python。sqlite3是Python的标准库之一,因此无需额外安装。接下来,我们可以通过以下方式连接到一个SQLite数据库:

import sqlite3# 连接到SQLite数据库
# 数据库文件是my_database.db,如果文件不存在,会自动在当前目录创建
conn = sqlite3.connect('my_database.db')# 创建一个Cursor对象,并执行所有SQL命令
cursor = conn.cursor()# 执行完所有操作后,记得关闭连接
conn.close()

连接数据库后,我们可以使用Cursor对象执行SQL命令。Cursor对象相当于一个游标,可以在数据库中遍历数据。

二、创建表

在数据库中创建表是存储数据的基础。以下是一个创建表的示例:

import sqlite3# 连接到SQLite数据库
conn = sqlite3.connect('my_database.db')
cursor = conn.cursor()# 创建一个名为users的表
cursor.execute('''CREATE TABLE users (id INTEGER PRIMARY KEY,name TEXT NOT NULL,age INTEGER)
''')# 提交事务
conn.commit()# 关闭连接
conn.close()

在这个示例中,我们创建了一个名为users的表,包含idnameage三个字段。其中,id字段是主键,name字段是非空文本字段,age字段是整数字段。

三、插入数据

创建好表之后,我们就可以向表中插入数据了。以下是一个插入数据的示例:

import sqlite3# 连接到SQLite数据库
conn = sqlite3.connect('my_database.db')
cursor = conn.cursor()# 插入一条数据
cursor.execute("INSERT INTO users (name, age) VALUES (?, ?)", ("Alice", 30))# 提交事务
conn.commit()# 关闭连接
conn.close()

在这个示例中,我们使用execute()方法执行了一条INSERT语句,向users表中插入了一条数据。注意,我们使用问号(?)作为占位符,并在后面传入了一个包含实际数据的元组。这种方式可以防止SQL注入攻击,提高代码的安全性。

四、查询数据

查询数据是数据库编程中最常见的操作之一。以下是一个查询数据的示例:

import sqlite3# 连接到SQLite数据库
conn = sqlite3.connect('my_database.db')
cursor = conn.cursor()# 查询所有数据
cursor.execute("SELECT * FROM users")
rows = cursor.fetchall()# 遍历并打印每一行数据
for row in rows:print(row)# 关闭连接
conn.close()

在这个示例中,我们使用execute()方法执行了一条SELECT语句,查询users表中的所有数据。然后,我们使用fetchall()方法获取查询结果的所有行,并遍历打印每一行数据。

五、更新和删除数据

除了插入和查询数据外,我们还需要对数据库中的数据进行更新和删除操作。以下是一个更新和删除数据的示例:

import sqlite3# 连接到SQLite数据库
conn = sqlite3.connect('my_database.db')
cursor = conn.cursor()# 更新数据
cursor.execute("UPDATE users SET age=? WHERE name=?", (31, "Alice"))# 提交事务
conn.commit()# 删除数据
cursor.execute("DELETE FROM users WHERE name=?", ("Alice",))# 提交事务
conn.commit()# 关闭连接
conn.close()

在这个示例中,我们首先使用UPDATE语句将名为Alice的用户的年龄更新为31。然后,我们使用DELETE语句删除了名为Alice的用户记录。注意,在执行更新和删除操作时,一定要记得提交事务,否则更改不会生效。

六、总结

本文详细介绍了如何使用Python的sqlite3模块进行数据库编程,包括连接数据库、创建表、插入数据、查询数据以及更新和删除数据等操作。通过掌握这些基本操作,我们可以轻松地在

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

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

相关文章

用AI提升儿童英语口语:和小猪佩奇对话

小孩子大部分都是喜欢动画片的,如果能让动画片中的角色和他们进行口语对话,应该可以极大的激发他们英语学习兴趣。 下面,以小猪佩奇为例来说明如何利用AI来创建一个虚拟的英语口语陪练小猪佩奇角色。 在kimichat对话框中键入提示词&#xf…

360极速浏览器启动外部应用设置记住选择后无法启动应用

之前学习并测试过通过网页调用本地应用的路线,原理是在注册表中注册能在网页中调用的命令,然后在网页中通过命令调用本地应用。测试过程中发现使用版本为12.0.1212.0的360极速浏览器的极速模式下启动外部应用时,每次都会出现启动外部应用的提…

近万字详解Docker常用功能合集(Docker系列第1章,共3章)

极简概括 官网:https://www.docker.com 利用比虚拟机更加轻量级的容器化虚拟技术,能够低成本的把当前环境快速打包或在新环境部署相同子环境的运维工具,基于Go语言实现,跨平台(支持Linux、Windows、MacOS)…

vue3 vueUse 连接蓝牙

目录 vueuse安装: useBluetooth: 调用蓝牙API 扫描周期设备 选择设备配对 连接成功 vue3的网页项目连接电脑或者手机上的蓝牙设备,使用vueUse库,可以快速检查连接蓝牙设备。 vueUse库使用参考: VueUse工具库 常用api-CSDN…

linux固定IP (centos)

编辑文件: vim /etc/sysconfig/network-scripts/ifcfg-ens33 修改内容: BOOTPROTO"static" (把dhcp改为static) ONBOOT"yes" (改为yes) 然后把自己要固定的ip,子网掩码,网关以及…

C语言经典例题(26)

1.奇偶统计 题目描述: 任意输入一个正整数N,统计1~N之间奇数的个数和偶数的个数,并输出。 输入描述: 一行,一个正整数N。(1≤N≤100,000) 输出描述: 一行,1~N之间奇数的个数和偶数的个数,用空…

[大模型]BlueLM-7B-Chat Lora 微调

BlueLM-7B-Chat Lora 微调 概述 本节我们简要介绍如何基于 transformers、peft 等框架,对 BlueLM-7B-Chat 模型进行 Lora 微调。Lora 是一种高效微调方法,深入了解其原理可参见博客:知乎|深入浅出Lora。 这个教程会在同目录下给大家提供一…

VMware 替代专题|金融、制造、医疗等行业用户实践合集(含虚拟化、vSAN、整体替代)

随着 VMware 调整产品组合和订阅模式,不少国内用户都将寻找 VMware 的替代方案提上日程。根据我们在 3 月初 VMware 升级替代研讨会上收集的用户反馈,近 50% 的 VMware 用户已计划使用其他厂商的超融合方案或相关产品替换 VMware 超融合或部分组件。 在…

使用python互相转换AVI、MP4、GIF格式视频文件

一、AVI文件转MP4文件 要将AVI格式的视频转换为 MP4,你可以使用 Python的 moviepy 库。以下是一个示例代码,用于将 AVI 文件转换为 MP4 文件: from moviepy.editor import VideoFileClip# 读取 AVI 文件 clip VideoFileClip("input.a…

【spring】AOP切面注解学习(二)

文接上篇&#xff1a;【spring】AOP切面注解学习&#xff08;一&#xff09; AOP切面注解测试示例代码 示例代码 一 maven的pom文件导入 <dependency><groupId>org.springframework</groupId><artifactId>spring-aop</artifactId></depende…

使用Kotlin进行全栈开发 Ktor+Kotlin/JS

首发于Enaium的个人博客 前言 本文将介绍如何使用 Kotlin 全栈技术栈KtorKotlin/JS来构建一个简单的全栈应用。 准备工作 创建项目 首先我们需要创建一个Kotlin项目&#xff0c;之后继续在其中新建两个子项目&#xff0c;一个是Kotlin/JS项目&#xff0c;另一个是Ktor项目。…

上海计算机学会 2023年10月月赛 丙组T1 三个数的中位数(模拟)

第一题&#xff1a;T1三个数的中位数 标签&#xff1a;模拟题意&#xff1a;给定三个整数&#xff0c;请输出按大小排序后&#xff0c;位于正中间的数字。题解&#xff1a;给三个数从小到大排序&#xff0c;输出中间的即可。代码&#xff1a; #include <bits/stdc.h> u…

itop4412内核编译_编译自定义函数到内核

我的itop4412开发板是半路捡的&#xff0c;所以没办法加他们的售后群&#xff0c;遇到的问题只好一点点记录吧 内核驱动编译 在日常工作过程中&#xff0c;编写内核程序可能机会不多&#xff0c;但是将厂商提供的内核源码编译到固件中&#xff0c;这个技能还是必须掌握的。 i…

每天学习一个Linux命令之w

每天学习一个Linux命令之w 介绍&#xff1a; 在Linux操作系统中&#xff0c;我们经常需要查看当前登录用户信息、系统负载以及其他用户的登录情况。w命令就是一个很常用的命令&#xff0c;它可以提供这些信息。本篇博客将详细介绍w命令及其所有可用的选项&#xff0c;帮助你更…

Redis入门到通关之String命令

文章目录 ⛄1 String 介绍⛄2 命令⛄3 对应 RedisTemplate API❄️❄️ 3.1 添加缓存❄️❄️ 3.2 设置过期时间(单独设置)❄️❄️ 3.3 获取缓存值❄️❄️ 3.4 删除key❄️❄️ 3.5 顺序递增❄️❄️ 3.6 顺序递减 ⛄4 以下是一些常用的API⛄5 应用场景 ⛄1 String 介绍 Stri…

Asterisk 21.2.0编译安装经常遇到的问题和解决办法之卸载pjsip

目录 会安装也要会卸载make uninstallldconfig 会安装也要会卸载 有些人就只会装。 最常见的场景就是需要卸载之前版本的pjproject。 一般来说&#xff0c;其他版本的 pjproject 会被作为静态链接库安装。这些库跟 Asterisk可能不兼容。 因此&#xff0c;在安装正确版本的pjpro…

连锁收银系统哪个好用 国内三大连锁收银系统评比

随着数字化管理趋势下互联网技术的不断发展革新&#xff0c;互联网技术&#xff0c;以及不断升级优化传统行业渠道模式&#xff0c;线上线下结合的电子商务模式正逐渐成为企业发展的趋势。而门店管理系统也在越来越多的企业应用。但市场上连锁店管理系统品牌诸多&#xff0c;很…

生产事故:线程管理不善诱发P0故障

背景 处于业务诉求&#xff0c;需要建立一个统一的调度平台&#xff0c;最终是基于 Dolphinscheduler 的 V1.3.6 版本去做二次开发。在平台调研建立时&#xff0c;这个版本是最新的版本 命运之轮开始转动 事故 表象 上班后业务部门反馈工作流阻塞&#xff0c;登录系统发现大…

设计模式(23):访问者模式

定义 表示一个作用于某对象结构中的各元素的操作&#xff0c;它使我们可以在不改变元素的类的前提下定义作用与这些元素的新操作。 模式动机 对于存储在一个集合中的对象&#xff0c;他们可能具有不同的类型(即使有一个公共的接口)&#xff0c;对于该集合中的对象&#xff0…

Java-博客系统(前后端交互)

目录 前言 博客系统基本情况 1 创建项目&#xff0c;引入依赖 2 数据库设计 2.1 分析 2.2 建库建表 3 封装数据库 3.1 在java目录下创建DBUtil类&#xff0c;通过这个类对数据库进行封装 3.2 在java目录下创建实体类&#xff08;博客类Blog&#xff09; 3.2 在java目录下创建…