当前位置: 首页 > news >正文

69-SQLite应用

1. SQLite操作

1.1了解数据库

在这里插入图片描述

1.2 操作数据库步骤

在这里插入图片描述

# -*- coding: utf-8 -*-
"""
@Project : 01-python-learn
@File    : 03_SQLite3添加数据.py
@IDE     : PyCharm
@Author  : 刘庆东
@Date    : 2025/9/15 14:05
"""
# 1. 导入模块
import  sqlite3
"""连接到SQLite数据库 数据库文件 mrsoft.db 如果文件不存在自动帮我们创建ctrl+Alt +T 出现块提示  
"""# 2. 获取数据库连接
try:conn=sqlite3.connect('mrsoft.db')# 3. 创建游标对象 Cursorcursor = conn.cursor()# 4. 执行sql操作# cursor.execute('insert into user (id,name) values ("1","guangtouqiang")')# cursor.execute('insert into user (id,name) values ("2","李老板")')# cursor.execute('insert into user (id,name) values ("3","熊大")')"""上面三行代码 能实现效果 但是不好   "sql注入攻击"select * from admin  where name='liushao 'or 1=1 or''下面是安全的写法!!!!"""#使用sql预编译模式  防止sql注入攻击# sql="insert into user (id,name) values (?,?)"# cursor.execute(sql,(4,'张无忌'))# 一次性放入多条数据  [使用数据容器中的字典 ]sql = "insert into user (id,name) values (?,?)"data =[(5,"成昆"),(6,"周芷若"),(7,"宋青书")]cursor.executemany(sql,data)print("一次存储多条数据")# 5. 关闭游标cursor.close()# 6. 提交事务conn.commit()
except Exception as e:print(e)
finally:# 7. 关闭数据库连接conn.close()
1.2查询数据三种方式fetchone():获取查询结果集中的下一条记录。fetchmany(size):获取指定数量的记录。fetchall():获取结构集的所有记录。
# -*- coding: utf-8 -*-
"""
@Project : 01-python-learn
@File    : 04_SQLite3查询.py
@IDE     : PyCharm
@Author  : 刘庆东
@Date    : 2025/9/15 14:30
"""
# 1. 导入模块
import  sqlite3
"""连接到SQLite数据库 数据库文件 mrsoft.db 如果文件不存在自动帮我们创建ctrl+Alt +T 出现块提示  
"""# 2. 获取数据库连接
try:conn=sqlite3.connect('mrsoft.db')# 3. 创建游标对象 Cursorcursor = conn.cursor()# 4. 操作sql cursor.execute("select * from user")# 查询一条数据result1=cursor.fetchone()print(result1)
"""
控制台输出结果是:
(1, 'guangtouqiang')
"""# 查询前两条数据result2 = cursor.fetchmany(2)print(result2)"""
控制台输出结果是:
[(1, 'guangtouqiang'), (2, '李老板')]
"""# 提取全部的数据result3=cursor.fetchall()print(result3)
"""
控制台输出结果是:
[(1, 'guangtouqiang'), (2, '李老板'), (3, '熊大'), (4, '张无忌'), (5, '成昆'), (6, '周芷若'), (7, '宋青书')]
"""# 查询的时候 不对数据库的表做改变  可以不使用事务 !!!# 6. 关闭游标cursor.close()
except Exception as e:print(e)
finally:# 7. 关闭数据库连接conn.close()

更新操作

# -*- coding: utf-8 -*-
"""
@Project : 01-python-learn
@File    : 05_SQLite更新.py
@IDE     : PyCharm
@Author  : 刘庆东
@Date    : 2025/9/15 14:52
"""
# 1.引入模块
import sqlite3try:# 2. 创建数据库连接对象 Connectionconnection = sqlite3.connect("mrsoft.db")# 3. 获取游标cursor = connection.cursor()# 4. 执行sql语句操作cursor.execute('update user set name=? where id=?',('光头强',1))# 立刻做查询cursor.execute("select * from user")#读取数据result=cursor.fetchall()print(result)# 5.关闭游标cursor.close()# 6. 提交事务connection.commit()
except Exception as e:print(e)# 打印的是错误的堆栈信息
finally:# 7.关闭数据库连接connection.close()

删除操作

# -*- coding: utf-8 -*-
"""
@Project : 01-python-learn
@File    : 06_SQLite删除.py
@IDE     : PyCharm
@Author  : 刘庆东
@Date    : 2025/9/15 14:56
"""# 1.引入模块
import sqlite3try:# 2. 创建数据库连接对象 Connectionconnection = sqlite3.connect("mrsoft.db")# 3. 获取游标cursor = connection.cursor()# 4. 执行sql语句操作cursor.execute('delete from user where id=?',(5,))#注意了一个参数也要写 ,#刚才没有写查询的sql语句cursor.execute(('select * from user'))result=cursor.fetchall()# 立刻做查询print(result)# 5.关闭游标cursor.close()# 6. 提交事务connection.commit()
except Exception as e:print(e)  # 打印的是错误的堆栈信息
finally:# 7.关闭数据库连接connection.close()

文章转载自:

http://6OvRc9bH.qkdbz.cn
http://XcPqJzeg.qkdbz.cn
http://bHWuWMsa.qkdbz.cn
http://29YB6snH.qkdbz.cn
http://yBMwX4wK.qkdbz.cn
http://5eoL0YXs.qkdbz.cn
http://X5ao3tJ7.qkdbz.cn
http://XoGeQv5a.qkdbz.cn
http://XtaMyMXL.qkdbz.cn
http://Qfunl7vm.qkdbz.cn
http://UQuPXwpK.qkdbz.cn
http://tn1Y4PbZ.qkdbz.cn
http://oYS0feRd.qkdbz.cn
http://qkpxJopF.qkdbz.cn
http://Jy4Z9d3P.qkdbz.cn
http://9eImR8KA.qkdbz.cn
http://lChARZtM.qkdbz.cn
http://tfjFrUBL.qkdbz.cn
http://dis0Mkek.qkdbz.cn
http://B6brIzRR.qkdbz.cn
http://ZwRhlV1I.qkdbz.cn
http://ARugQUgo.qkdbz.cn
http://N8bvIWwq.qkdbz.cn
http://sIWaMNrE.qkdbz.cn
http://HfhZt2Fo.qkdbz.cn
http://i9IFualA.qkdbz.cn
http://YvA98dG0.qkdbz.cn
http://chlf2zKr.qkdbz.cn
http://3Wi3WKuE.qkdbz.cn
http://6nDhBoLj.qkdbz.cn
http://www.dtcms.com/a/385608.html

相关文章:

  • Day06 双指针扫描 | 11. 盛最多水的容器
  • LeetCode 刷题【77. 组合、78. 子集、79. 单词搜索】
  • Jenkins 构建清理策略:自带功能 vs Discard Old Build 插件,全场景实操指南
  • DevOps历程-Gogs的安装与部署
  • FreeRTOS 任务静态创建与句柄详解
  • 嵌入式音视频开发——RTMP协议详解
  • 每日一题(6)
  • 信号量主要API及综合应用
  • 【开题答辩全过程】以 B站用户视频喜好倾向数据分析系统为例,包含答辩的问题和答案
  • ARM架构学习6.2——中断理解
  • 搭建Qt5.14.2+msvc2017_x64项目测试Opencv4.10功能
  • Steger 算法 的原理和流程
  • WD5030K:一款7-30V宽输入范围、12A高效同步降压DC-DC转换器芯片详解
  • 《2025年AI产业发展十大趋势报告》五十七
  • 滴滴试点返程费自主议价将会怎么改变市场?
  • 【嵌入式原理系列-第八篇】USART从原理到配置全解析
  • Python4-seaborn
  • 使用 Aamzon Step Functions 重构无服务器工作流
  • 模电基础:场效应管
  • Typescript工具类型
  • Spring异步编程- 浅谈 Reactor 核心操作符
  • 21.5 单卡24G训7B大模型!HuggingFace TRL+QLoRA实战,3倍提速显存直降70%
  • git中,如果在文件夹A下有文件夹B、C文件夹,现在在A下创建仓库,连接远程仓库,那么如何在提交的时候忽略B、C,排除对B、C管理
  • Java Web 入门实战:SpringBoot+Spring MVC 从 0 到 1 学习指南
  • 电磁流量计可靠品牌之选,基恩士提供多样化解决方案
  • 三大基础无源电子元件——电阻(R)、电感(L)、电容(C)
  • Baklib:从传统到AI驱动的新一代数字体验平台
  • 机器视觉在人形机器人中有哪些检测应用
  • Java的Arrays类
  • 每天认识一个电子器件之LED灯