(四)python实战——Sqlite3数据库表的增、删、查、改操作案例

news2024/11/17 19:47:28

前言

Sqlite3是一个轻量级的数据库,本节内容我们介绍一下如何在python环境中使用Sqlite数据库,完成数据库表的简单增、删、查、改操作。开始本节内容之前,我们需要先安装好python环境,我们使用的是python3的环境。

正文

①创建一个my_sqlite3_base.py文件,引入sqlite3数据库,创建初始化sqlite数据库连接信息方法及关闭sqlite数据库连接方法

# sqlite3数据库
import sqlite3


class MySqlite(object):
    """
    初始化数据库连接
    """

    def __init__(self):
        # 连接数据库
        db_file = 'app.sqlite'
        self.conn = sqlite3.connect(db_file)

    """
    关闭数据库连接
    """

    def close(self):
        self.conn.close()

②使用sqlite创建一个user用户表,用于后续sqlite数据库的操作

- 创建用户表

if __name__ == '__main__':
    conn = MySqlite().conn

    # 创建用户表USER
    SQL_CREATE_TABLE = '''CREATE TABLE IF NOT EXISTS USER
           (ID INT PRIMARY KEY     NOT NULL,
           NAME           TEXT    NOT NULL,
           AGE            INT     NOT NULL);'''
    conn.execute(SQL_CREATE_TABLE)

    # 关闭数据库连接
    conn.close()

③新增一条用户数据

- 实现代码

if __name__ == '__main__':
    conn = MySqlite().conn

    
    # 新增一条用户数据
    SQL_INSERT_ONE_DATA = "INSERT INTO USER(id,name,age) VALUES(3,'张三',23);"
    try:
        conn.execute(SQL_INSERT_ONE_DATA)
        # 必须要提交,才能正确执行
        conn.commit()
    except Exception as e:
        conn.rollback()
        print('插入一条记录失败,回滚~')


    # 关闭数据库连接
    conn.close()

 - 执行结果

④新增多条用户数据

- 实现代码

if __name__ == '__main__':
    conn = MySqlite().conn

    # 新增多条数据
    SQL_INSERT_MANY_DATA = 'INSERT INTO USER (id,name,age) VALUES(?,?,?);'
    data = [(4, '赵六', 11), (5, '李四', 12), (6, '王五', 13)]
    try:
        conn.executemany(SQL_INSERT_MANY_DATA, data)
        conn.commit()
    except Exception as e:
        conn.rollback()
        print('插入多条记录失败,回滚~')

    # 关闭数据库连接
    conn.close()

 - 执行结果

 

⑤根据用户ID查询用户数据

- 实现代码

if __name__ == '__main__':
    conn = MySqlite().conn


    # 根据ID查询用户数据
    USER_ID = 3
    SQL_QUERY_ONE_DATA = "SELECT * FROM USER WHERE id={}"
    cursor = conn.cursor()
    cursor.execute(SQL_QUERY_ONE_DATA.format(USER_ID))
    result = cursor.fetchall()
    print(result)
    
    
    # 关闭数据库连接
    conn.close()

 - 执行结果

⑥查询用户全部数据

 - 实现代码

if __name__ == '__main__':
    conn = MySqlite().conn

    # 查询用户全部数据
    SQL_QUERY_ONE_DATA = "SELECT * FROM USER "
    cursor = conn.cursor()
    cursor.execute(SQL_QUERY_ONE_DATA)
    result = cursor.fetchall()
    print(result)

    # 关闭数据库连接
    conn.close()

- 执行结果

⑦更新用户信息数据

- 实现代码

if __name__ == '__main__':
    conn = MySqlite().conn

    # 更新用户信息
    SQL_UPDATE_ONE_DATA = "UPDATE USER SET NAME = '{}',AGE={} where id = {}"
    sql_update = SQL_UPDATE_ONE_DATA.format("TOM", 28, 3)
    print(sql_update)
    conn.execute(sql_update)
    conn.commit()


    # 关闭数据库连接
    conn.close()

- 执行结果 

 

 ⑧根据ID删除用户信息数据

- 实现代码

if __name__ == '__main__':
    conn = MySqlite().conn

    # 删除用户信息数据
    USER_ID = 3
    SQL_DEL_ONE_DATA = "DELETE FROM USER where id ={}"
    sql_del = SQL_DEL_ONE_DATA.format(USER_ID)
    conn.execute(sql_del)
    conn.commit()

    # 关闭数据库连接
    conn.close()

- 执行结果,该用户数据已不存在 

结语

关于Sqlite3数据库表的增、删、查、改操作案例到这里就结束了,我们下期见。。。。。。

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

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

相关文章

【Docker】利用Dockerfile制作个人的镜像文件详细讲解

前言 Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的Linux或Windows操作系统的机器上,也可以实现虚拟化,容器是完全使用沙箱机制,相互之间不会有任何接口。 📕作者简介:热…

如何避免死锁--方法三--scoped_lock

scoped_lock是c17新增的一种模板&#xff0c;也是RAII模式。其是可变参数&#xff0c;可以接受各种互斥类型作为参数模板&#xff0c;可以指定多个互斥量。 前文中我们说到&#xff0c;lock可以锁定多个互斥量&#xff0c;scoped_lock也可以做到。 void thread1() {cout <&…

【网络互联设备】网络杂谈(15)之网桥、路由器、网关、集线器、交换机、中继器的作用与概念

涉及知识点 网桥、路由器、网关、集线器、交换机、中继器的作用与概念&#xff0c;常见的网络互联设备&#xff0c;什么是网桥、路由器、网关、集线器、交换机、中继器。 原创于&#xff1a;CSDN博主-《拄杖盲学轻声码》&#xff0c;更多内容可去其主页关注下哈&#xff0c;不…

STM32F103基于HAL工程挂载FatFS驱动SD卡实现IAP功能

STM32F103基于HAL工程挂载FatFS驱动SD卡实现IAP功能 &#x1f3ac;基于SD卡IAP升级演示&#xff1a; &#x1f4cd;相关篇《STM32F103基于HAL工程挂载FatFS驱动SD卡》 &#x1f4cc;《使用STM32F103的串口实现IAP程序升级功能》 &#x1f449;&#x1f3fb;ST相关文档&…

并发-JMM-CPU缓存一致性协议MESI

回顾 指令重排 第一V读&#xff0c;都不能指令重排&#xff1b;第二个V写&#xff0c;都不能指令重排 普通读写&#xff0c;写读都会发生指令重排&#xff0c;V写普通读写会发生指令重排&#xff0c;普通读写V读会发生指令重排 CPU缓存一致性协议MESI java—》cpu的执行过程…

Three.js教程:高光网格材质Phong

推荐&#xff1a;将 NSDT场景编辑器 加入你的3D工具链 其他系列工具&#xff1a; NSDT简石数字孪生 高光网格材质Phong 高光网格材质MeshPhongMaterial和基础网格材质MeshBasicMaterial、漫反射网格材质MeshLambertMaterial一样都是网格模型的Mesh的材质。 高光网格材质MeshPho…

Web测试的主要内容和测试方法有哪些?

Web测试的主要内容&#xff1a; 一、输入框 二、搜索功能 三、增加、修改功能 四、删除功能 五、注册、登录模块 六、上传图片测试 七、查询结果列表 八、返回键检查 九、回车键检查 十、刷新键检查 Web测试的测试方法&#xff1a; 1.在测试时&#xff0c;与网络有关的步骤或者…

npm报错(npm ERR! Unexpected token ‘.‘)

使用 nvm 将 node 切换到高版本后&#xff0c;运行 npm 相关的命令报的这个错 解决办法&#xff1a; 1、通过nvm list 命令查看当前都安装的node版本列表&#xff0c;依次通过 nvm uninstall [version] 命令将已经安装的 node 版本依次删除。 [version] 代表 node 版本号。 2…

目标检测 pytorch复现Yolov4目标检测项目

目标检测 pytorch复现Yolov4目标检测项目 YOLOV4介绍YOLOV4结构解析1、主干特征提取网络Backbone2、特征金字塔3、YoloHead利用获得到的特征进行预测4、预测结果的解码 YOLOV4的训练1、YOLOV4的改进训练技巧2、loss组成 训练自己的YoloV4模型 YOLOV4介绍 YOLOV4结构解析 1、主…

官宣了!B站将以视频播放分钟数代替播放次数

6月26日&#xff0c;哔哩哔哩&#xff08;以下简称“B站”&#xff09;迎来了14周年庆。B站董事长兼CEO陈睿进行了以“很高兴遇见你”为主题的演讲。 在B站14岁的时候&#xff0c;陈睿就演讲向大家宣布&#xff1a;为了更好地挖掘B站的优质内容&#xff0c;B站将以播放分钟数替…

pyocd打包为exe后调用弹黑窗及pyocd的api调用的问题

打包为exe的程序中调用了cmd窗口&#xff0c;调用的时候会自动弹窗&#xff0c;这个弹窗用pyinstaller的-w的方法是不行的&#xff0c;参考RT-ThreadStudio的方法是如下图写一个.bat文件&#xff0c;关闭弹窗回显 echo off cd /D %~dp0 pyocd.exe %* 但一个原因是 它是0.1.1版…

git的指令

rebase 首先在master上切出一个新分支&#xff0c;叫dev 在dev上进行开发xxx 此时master上被他人提交了东西 想把这个master提交的东西移到dev上 最后统一合并到master上 步骤&#xff1a; 1.master上进行pull&#xff0c;确保本地是最新的 2.在dev上输入git rebase master …

【综合布线设计】网络杂谈(18)深入了解综合布线系统设计

涉及知识点 什么是综合布线系统设计&#xff0c;综合布线系统设计的原则&#xff0c;工作区子系统设计&#xff0c;水平子系统设计&#xff0c;垂直子系统设计&#xff0c;管理子系统设计&#xff0c;设备间子系统设计&#xff0c;建筑群子系统设计。深入了解综合布线系统设计…

二叉树OJ题:LeetCode--226.翻转二叉树

朋友们、伙计们&#xff0c;我们又见面了&#xff0c;本期来给大家解读一下LeetCode中第226道二叉树OJ题&#xff0c;如果看完之后对你有一定的启发&#xff0c;那么请留下你的三连&#xff0c;祝大家心想事成&#xff01; 数据结构与算法专栏&#xff1a;数据结构与算法 个 人…

你真的学懂if语句了嘛,看完这篇文章你一定会让你有所收获,彻底玩转if语句!

&#x1f4cc;(,&#xff65;∀&#xff65;)&#xff89;゛hello ,欢迎来到鸽芷咕的个人频道。 &#x1f4dc; 本博主是C/C领域的新星作者&#xff0c;平时喜欢分享一些编程经验和学习中的遇到的难题&#xff0c;喜欢不要忘了关注咯&#xff01; ✅ 鸽芷咕&#xff1a; 个人…

Arrays类 (Java)

文章目录 1. 介绍2. 分析3. 方法3.1 toStriing()方法3.2 sort()方法 1. 介绍 A. 类介绍&#xff1a;  此类包含用来操作数组&#xff08;比如排序和搜索&#xff09;的各种方法。此类还包含一个允许将数组作为列表来查看的静态工厂. 2. 分析 A. 类包结构&#xff1a;java.uti…

linux-2.6.22.6内核nand flash框架分析

内核启动时会在串口打印nand flash的相关信息&#xff0c;通过该信息可定位到内核自带的nand flash相关驱动代码。 例如串口打印S3C24XX NAND Driver&#xff0c;搜索该字符串可找到/home/book/work/linux/linux-2.6.22.6/drivers/mtd/nand/s3c2410.c这个文件&#xff0c;这个…

The Company Requires Superficial StudyPHP 了解PHP ①

作者 : SYFStrive 博客首页 : HomePage &#x1f4dc;&#xff1a; The Company Requires PHP MYSQL &#x1f4cc;&#xff1a;个人社区&#xff08;欢迎大佬们加入&#xff09; &#x1f449;&#xff1a;社区链接&#x1f517; &#x1f4cc;&#xff1a;觉得文章不错可以…

webassembly性能优化

添加调试内容 性能查看 1.点击chrome的性能 2.点击录制按钮 3.开始启动性能分析之后&#xff0c;进行操作 4.操作完成后&#xff0c;点击停止。 5.ctrlf调出搜索&#xff0c;查看相关函数 6.从上到下查看具体耗时的操作。 其中上层包含下层时间。

购物车业务

一、分析购物车vo &#xff08;1&#xff09;添加成功页 public class CartItemVo implements Serializable {/*** 商品id*/private Long skuId;/*** 是否选中*/private Boolean check true;/*** 商品标题*/private String title;/*** 商品图片*/private String image;/***…