python+sqlite3-数据库增删改查操作

目录

  • python+sqlite3-数据库增删改查操作
    • 01、sqlite数据库
    • 02、下载数据库可视化工具
    • 03、创建数据库
    • 04、python连接数据库
    • 05、查询数据
    • 06、增加数据
    • 07、修改数据
    • 08、删除数据
    • 09、数据库通用工具封装
    • 10、完结

01、sqlite数据库

简介:SQLite,是一款轻型的数据库,它包含在一个相对小的C库中,很多嵌入式产品中使用了它,其中python就嵌入了它。 至2021年已经接近有21个年头,SQLite也迎来了一个版本 SQLite 3已经发布。

02、下载数据库可视化工具

简称:DB4S

全称:DB Browser for SQLite

简介:(DB4S) 是一种高质量、可视化、开源的工具,用于创建、设计和编辑与 SQLite 兼容的数据库文件。DB4S 适用于想要创建、搜索和编辑数据库的用户和开发人员。DB4S 使用熟悉的类似电子表格的界面,无需学习复杂的 SQL 命令。

下载连接:DB Browser for SQLite

03、创建数据库

注:本文以学生信息为数据库进行讲解

保存路径:python项目文件夹

数据库名:student_data

文件扩展名:.db

表名:student

字段:

名称 类型 非空 主键 自增 注释
id INTEGER 序号,自增,无需用户添加
sname TEXT × × 学生姓名
sage INTEGER × × 学生年龄

手动添加测试数据:

sname sage
张三 18
李四 19
王五 20

图示:

04、python连接数据库

# 导入sqlite3模块
from sqlite3 import Error
import sqlite3# try-except:防止因连接失败导致程序崩溃
try:# 数据库文件路径db_file = 'student_data.db'# 连接数据库conn = sqlite3.connect(db_file)# 创建游标cour = conn.cursor()# 测试是否连接成功print('连接成功')# 关闭游标cour.close()# 关闭连接conn.close()
except Error as e:print('连接失败')

05、查询数据

(1)、查询所有student信息

# 导入sqlite3模块
from sqlite3 import Error
import sqlite3# try-except:防止因连接失败导致程序崩溃
try:# 数据库文件路径db_file = 'student_data.db'# 连接数据库conn = sqlite3.connect(db_file)# 创建游标cour = conn.cursor()# 编写sql语句# 查询语句sql:select 列名(*-所有列) from 表名 [where 条件]sql = 'select * from student'# 执行sql语句cour.execute(sql)# 打印查询结果print(cour.fetchall())# 关闭游标cour.close()# 关闭连接conn.close()
except Error as e:print('连接失败')

(2)、条件查询student信息

# 导入sqlite3模块
from sqlite3 import Error
import sqlite3# try-except:防止因连接失败导致程序崩溃
try:# 数据库文件路径db_file = 'student_data.db'# 连接数据库conn = sqlite3.connect(db_file)# 创建游标cour = conn.cursor()# 编写sql语句# 查询语句sql:select 列名(*-所有列) from 表名 [where 条件]# ?-占位符,在cour.execute()参数中,传入数据元组sql = 'select * from student where sname=?'# 构建数据元组name = ('张三',)# 执行sql语句cour.execute(sql, name)# 打印查询结果print(cour.fetchall())# 关闭游标cour.close()# 关闭连接conn.close()
except Error as e:print('连接失败')

06、增加数据

(1)、增加单条student信息

# 导入sqlite3模块
from sqlite3 import Error
import sqlite3# try-except:防止因连接失败导致程序崩溃
try:# 数据库文件路径db_file = 'student_data.db'# 连接数据库conn = sqlite3.connect(db_file)# 创建游标cour = conn.cursor()# 编写sql语句# 添加语句sql:INSERT INTO 表名(列名)# VALUES (<列1的值>,[<列2的值>,<列3的值>]);# ?-占位符,在cour.execute()参数中,传入数据元组# 由于id设置了自增,不需要我们进行输入sql = 'INSERT INTO student(sname, sage) VALUES (?, ?);'# 构建数据元组student_data = ('沐沐',18)# 执行sql语句cour.execute(sql, student_data)# 提交数据-同步到数据库文件-增删改查,除了查询以外有需要进行提交conn.commit()# 打印受影响的行数print(cour.rowcount)# 关闭游标cour.close()# 关闭连接conn.close()
except Error as e:print('连接失败')

(2)、增加多条student信息

# 导入sqlite3模块
from sqlite3 import Error
import sqlite3# try-except:防止因连接失败导致程序崩溃
try:# 数据库文件路径db_file = 'student_data.db'# 连接数据库conn = sqlite3.connect(db_file)# 创建游标cour = conn.cursor()# 编写sql语句# 添加语句sql:INSERT INTO 表名(列名)# VALUES (<列1的值>,[<列2的值>,<列3的值>]);# ?-占位符,在cour.execute()参数中,传入数据元组# 由于id设置了自增,不需要我们进行输入sql = 'INSERT INTO student(sname, sage) VALUES (?, ?);'# 构建数据元组列表student_data = [('沐风', 18), ('若若', 19), ('柜子', 20)]# 执行sql语句cour.executemany(sql, student_data)# 提交数据-同步到数据库文件-增删改查,除了查询以外有需要进行提交conn.commit()# 打印受影响的行数print(cour.rowcount)# 关闭游标cour.close()# 关闭连接conn.close()
except Error as e:print('连接失败')

07、修改数据

# 导入sqlite3模块
from sqlite3 import Error
import sqlite3# try-except:防止因连接失败导致程序崩溃
try:# 数据库文件路径db_file = 'student_data.db'# 连接数据库conn = sqlite3.connect(db_file)# 创建游标cour = conn.cursor()# 编写sql语句# 修改语句sql:UPDATE  <表名># SET  <列名1>=<值1>[,<列名2>=<值2>]# [WHERE <条件>];# ?-占位符,在cour.execute()参数中,传入数据元组# 由于id设置了主键、自增,不能修改sql = 'update student set sname=?, sage=? where id=?'# 构建数据元组student_data = ('小小', 18, 1)# 执行sql语句cour.execute(sql, student_data)# 提交数据-同步到数据库文件-增删改查,除了查询以外有需要进行提交conn.commit()# 打印受影响的行数print(cour.rowcount)# 关闭游标cour.close()# 关闭连接conn.close()
except Error as e:print('连接失败')

08、删除数据

(1)、删除单条student信息

# 导入sqlite3模块
from sqlite3 import Error
import sqlite3# try-except:防止因连接失败导致程序崩溃
try:# 数据库文件路径db_file = 'student_data.db'# 连接数据库conn = sqlite3.connect(db_file)# 创建游标cour = conn.cursor()# 编写sql语句# 删除语句sql:DELETE FROM 表名# WHERE <列名1>=<值1># ?-占位符,在cour.execute()参数中,传入数据元组sql = 'delete from student where id=?'# 构建数据元组student_data = (1,)# 执行sql语句cour.execute(sql, student_data)# 提交数据-同步到数据库文件-增删改查,除了查询以外有需要进行提交conn.commit()# 打印受影响的行数print(cour.rowcount)# 关闭游标cour.close()# 关闭连接conn.close()
except Error as e:print('连接失败')

(2)、删除多条student信息

# 导入sqlite3模块
from sqlite3 import Error
import sqlite3# try-except:防止因连接失败导致程序崩溃
try:# 数据库文件路径db_file = 'student_data.db'# 连接数据库conn = sqlite3.connect(db_file)# 创建游标cour = conn.cursor()# 编写sql语句# 删除语句sql:DELETE FROM 表名# WHERE <列名1>=<值1># ?-占位符,在cour.execute()参数中,传入数据元组sql = 'delete from student where id=?'# 构建数据元组列表student_data = [(2,), (3,), (4,)]# 执行sql语句cour.executemany(sql, student_data)# 提交数据-同步到数据库文件-增删改查,除了查询以外有需要进行提交conn.commit()# 打印受影响的行数print(cour.rowcount)# 关闭游标cour.close()# 关闭连接conn.close()
except Error as e:print('连接失败')

09、数据库通用工具封装

注:以查询student数据为例

封装原因:由于建立数据库连接和关闭游标、数据库连接等都是相同的执行语句,为了防止代码冗余,体现面向对象的编程思想

# 导入sqlite3模块
from sqlite3 import Error
import sqlite3# 连接数据库,返回连接对象-conn
def db_conn(db_file):# try-except:防止因连接失败导致程序崩溃try:# 连接数据库conn = sqlite3.connect(db_file)return connexcept Error as e:print('连接失败')return None# 关闭数据库,关闭游标
def close_db(cour, conn):close_cour = courclose_conn = connif close_cour != None:close_cour.close()close_conn.close()return Trueelse:return Falseif __name__ == '__main__':# 数据库文件路径db_file = 'student_data.db'stu_conn = db_conn(db_file)# 创建游标stu_cour = stu_conn.cursor()# 编写sql语句sql = 'select * from student'# 执行sql语句stu_cour.execute(sql)# 打印查询结果print(stu_cour.fetchall())# 关闭游标和数据库连接result = close_db(stu_cour, stu_conn)# 打印关闭结果print(result)

10、完结


恭喜你-学完了本教程-完结撒花-★,°:.☆( ̄▽ ̄)/$:.°★ 。

python+sqlite3-数据库增删改查操作相关推荐

  1. Java+MyEclipse+Tomcat (六)详解Servlet和DAO数据库增删改查操作

    此篇文章主要讲述DAO.Java Bean和Servlet实现操作数据库,把链接数据库.数据库操作.前端界面显示分模块化实现.其中包括数据的CRUD增删改查操作,并通过一个常用的JSP网站前端模板界面 ...

  2. java servlet dao_Java+MyEclipse+Tomcat 详解Servlet和DAO数据库增删改查操作(源码)

    [实例简介] 该资源主要参考自己的博客http://blog.csdn.net/eastmount/article/details/45936121 讲诉Java+MyEclipse+Tomcat 详 ...

  3. Mybatis实现简单的数据库增删改查操作

    简介: MyBatis 是支持定制化 SQL.存储过程以及高级映射的优秀的持久层框架.MyBatis 避免了几乎所有的 JDBC 代码和手动设置参数以及获取结果集.MyBatis 可以对配置和原生Ma ...

  4. codeigniter mysql_CI框架(CodeIgniter)实现的数据库增删改查操作总结

    本文实例讲述了CI框架(CodeIgniter)实现的数据库增删改查操作.分享给大家供大家参考,具体如下: controllers下的 cquery.php文件 class CQuery extend ...

  5. python对sqlite增删改查_Python操作sqlite3数据库 增删改查

    SQLite,是一款轻型的数据库,占用资源非常的低.这里记录下对sqlite3的增删改查相关操作,顺便复习一下SQL语句- -. 一.创建数据库 连接到一个现有的数据库.如果数据库不存在,那么它就会被 ...

  6. Python面向对象编程案例:封装数据库增删改查操作

    问题描述:编写一个类,封装对SQLite数据库的增删改查操作,使得数据库操作更加友好,类的使用者不需要了解SQL语句的语法规则,只需要了解类的接口即可. 思考下面的问题,尝试着写一写,然后到达文末查看 ...

  7. Spring整合JDBCTemplate实现数据库增删改查操作

    SpringJDBC: 正常jdbc连接数据库流程: 1.注册驱动 2. 获取连接 2. 获取Statement或者PreparedStatement对象 3. 执行sql操作 4. 处理结果集 查询 ...

  8. Python之MySQL数据库增删改查操作

    一.插入操作 1.插入1 import pymysqldef get_conn():conn = pymysql.connect(host='localhost',port=3306,user='ro ...

  9. Android SQLite数据库增删改查操作

    一.使用嵌入式关系型SQLite数据库存储数据 在Android平台上,集成了一个嵌入式关系型数据库--SQLite,SQLite3支持NULL.INTEGER.REAL(浮点数字). TEXT(字符 ...

  10. java连接mysql数据库增删改查_java连接mysql数据库增删改查操作记录

    1. 连接数据库.得到数据库连接变量 注意连接数据库的时候 (1)打开DB Browser 新建一个Database Driver,注意加入Driver JARs的时候加入的包,我的是mysql-co ...

最新文章

  1. ibatis.net私人学习资料,勿下(加密)
  2. 【技术趋势】德勤发布2020技术趋势报告,五个新趋势可引发颠覆性变革
  3. 【Android 界面效果22】Android的Tab与TabHost
  4. 数据结构的简单理解(2)
  5. SAP Cloud for Customer OData v1和v2的区别
  6. 一个.NET Core开发者的Linux入门学习笔记
  7. jQuery对checkbox的操作(转载)
  8. Linux下程序开机启动
  9. ObjectDataProvider
  10. log4j.properties文件示例
  11. Markdown语法(一)标题段落分割线
  12. 如何优雅地(用TeX)写AI论文
  13. [LTE] LTE基本架构
  14. pyodbc linux 乱码,关于python:无法在Linux上安装pyodbc
  15. 【日语口语词典学习】第0003页
  16. 大一学计算机需要准备做东西,我是浙江大学大一的学生,以后打算学习计算机专业,想去卡耐基梅隆大学或MIT读研,不知道需要做哪些准备?...
  17. hexo(next)——每日一言、今日诗词
  18. 计算机键盘键盘一个按键坏了,我的世界:如果键盘坏掉一个键,六种情况,哪个会影响你玩MC?...
  19. python中的与或非 | ^
  20. 运动控制卡的函数库与Linux,运动控制卡应用开发教程之ROS(下)

热门文章

  1. git本地项目关联远程仓库
  2. 过度依赖Android国产手机厂商警惕重蹈DVD覆辙
  3. Leo_土石方拉运结算管理系统
  4. 20条机械设计知识点干货,记得收藏哦!
  5. JavaScript利用正则表达式来禁止键盘输入数字
  6. 原笔迹电子签名是不是可靠的电子签名方式?
  7. linux拒绝一个ip访问,linux设置iptables禁止某个IP访问
  8. 吾弈乾坤(2012.03.27)
  9. PaddleDetection研究报告——百度目标检测PP-YOLOE论文解读+实践应用
  10. node笔记_读写excel