手把手教你学Python之操作数据库(掌握Python操作SQLite数据库)

目录

1、数据库基础

(1)常见数据库类型

(2)关系型数据库

(3)SQLite数据库

2、结构化查询语言SQL

3、Python操作数据库

(1)Python操作数据库核心API

(2)Python操作SQLite流程

4、Python操作数据库案例


1、数据库基础

数据库是数据的仓库,将大量数据按照一定的方式组织并存储起来,方便进行管理和维护,例如快速检索和统计等。数据库的主要特点:

  • 以一定的方式组织、存储数据;
  • 能为多个用户共享;
  • 与程序彼此独立。
  • ……

数据库管理系统是一种操纵和管理数据库的大型软件。它对数据库进行统一的管理和控制,以保证数据库的安全性和完整性。用户通过DBMS访问数据库中的数据,数据库管理员通过DBMS进行数据库的维护工作。主要功能包括:数据定义(创建数据库、表等)、数据操纵(增删查改等)、数据库控制(并发、权限等)、数据库维护(转存、恢复等)等。

(1)常见数据库类型

   当前常见的数据库类型有:关系型数据库键值存储数据库面向文档数据库图数据库等。

  1. 关系型数据库:当前应用最广泛的数据库类型,把复杂的数据结构归结为简单的二元关系(即二维表形式),例如MySQLSQL ServerOracleSQLite等;
  2. 键值存储数据库:使用简单的键值方法来存储数据,其中键作为唯一标记,是一种非关系数据库,例如Redis
  3. 面向文档数据库:用于存放并获取文档,主要是XML、JSON等具备自我描述特性、呈现层次结构的文档,例如MongoDB
  4. 图数据库:一种存储图关系的数据库,应用图理论存储实体之间的关系信息,例如Neo4J

(2)关系型数据库

关系型数据库是指采用关系模型组织数据的数据库,它以行和列的形式存储数据,一系列的行和列组成了表,一组表组成了数据库。在关系模型中,实体以及实体之间的联系都会映射成统一的关系二维表,关系型数据库操作的对象和返回的结果都是二维表

    1. 关系可以理解为一张二维表,每个关系都有一个关系名,也就是表名;
    2. 属性: 可以理解为二维表中的一列,在数据库中称为字段,属性名就是表中的列名;
    3. 属性值的取值范围,数据库中某一列的取值范围;
    4. 元组可以理解为二维表中的一行,在数据库中称为记录
    5. 分量元组中的一个属性值
    6. 关键字可以唯一标识元组的属性或属性组,数据库中称为主键

(3)SQLite数据库

   SQLite是一个轻量级的关系型数据库,SQLite并没有包含大型客户/服务器数据库(如Oracle、SQL Server)的所有特性,但它包含了操作本地数据的所有功能,简单易用、反应快

  • SQLite本质上就是一个文件,内部只支持 NULLINTEGERREAL浮点数)、TEXT(字符串文本)BLOB(二进制对象)这五种数据类型,但实际上SQLite也接受varchar(n)等数据类型,只不过在运算或保存时会转成上面对应的数据类型
  • 在SQLite中可以把各种类型的数据保存到任何字段中,而不用关心字段声明的数据类型是什么。因此SQLite在解析建表语句时,会忽略建表语句中跟在字段名后面的数据类型信息

2、结构化查询语言SQL

结构化查询语言(Structured Query Language 简称SQL ),是一种特殊的编程语言,主要用于关系型数据库的操作,包括数据存取、查询、更新和管理等

SQL语言是一种高级的非过程化编程语言,用户使用SQL对数据操作时,并不需要知道数据的存储方式和操作细节。不同的关系型数据库底层存储方式不同,但是可以使用相同的SQL语句进行操作,对于用户来说,操作方式类似,可以快速在不同的数据库上进行移植

SQL语言不仅可独立使用,还可嵌入到其他高级语言(如Java、Python等)中,两种方式下SQL语法结构基本一致为用户提供了极大的灵活性和便利性

创建数据库表时,使用create table,删除表时,使用drop table,建议在建表和删表前进行判断,否则创建一个已存在的表删除不存在的表都会报错。具体语法细节如下。

   从数据库中查询数据时,使用select语句,通过where子句指定查询条件,通过group by子句对查询结果进行分组,通过order by子句对查询结果进行排序。具体语法细节如下:

   向数据库表中插入内容时,使用insert into语句。可以指定字段以及对应的值,字段和值的顺序需一一对应。当省略字段时,表示按照数据库表中字段的顺序插入相应的值

   更新数据库表中的内容时,使用update语句,可以通过where子句指定需要更新的记录,否则更新所有记录;删除数据库表中的内容时,使用delete语句,可以通过where子句指定需要删除的记录,否则删除所有记录,但是并不会删除表结构,注意和drop table之间的区别

 

3、Python操作数据库

Python提供了一个标准数据库API,称为DB-API,用于处理基于SQL的数据库的访问和操作

 

DB-API在代码与驱动程序之间提供了一个抽象层,定义了一系列必需的数据库存取方式,使得不同的数据库拥有统一的访问接口,从而可以很方便的在不同的数据库之间进行切换,而无需丢弃现有的代码。

(1)Python操作数据库核心API

 

(2)Python操作SQLite流程

  1. 导入模块:sqlite3
  2. 连接数据库得到Connection对象:sqlite3. connect(文件名)
  3. 获取Cursor对象:Connection对象.cursor()
  4. 执行数据库的增删查改操作:Cursor对象.execute(sql语句)
  5. 提交数据库操作: Connection对象. commit()
  6. 关闭Cursor:Cursor对象.close()
  7. 关闭Connection:Connection对象.close()

注意:当需要对数据库进行修改时,一定要调用commit()方法,否则不会更新数据库

4、Python操作数据库案例

小小练习题

更多关于手把手教你学Python的文章请关注微信公众号:手把手教你学编程。详细的视频讲解可查看 CSDN学院 里的手把手教你学Python系列视频:https://edu.csdn.net/lecturer/5686。   欢迎加入QQ群一起学习交流:858228002 。

  • 1
    点赞
  • 22
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

高成珍

前行路上与你相伴!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值