Python程序设计基础教程(微课版) 课件 第9章 - Python数据库编程_第1页
Python程序设计基础教程(微课版) 课件 第9章 - Python数据库编程_第2页
Python程序设计基础教程(微课版) 课件 第9章 - Python数据库编程_第3页
Python程序设计基础教程(微课版) 课件 第9章 - Python数据库编程_第4页
Python程序设计基础教程(微课版) 课件 第9章 - Python数据库编程_第5页
已阅读5页,还剩26页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

Python程序设计第9章Python数据库编程学习目标理解sqlite3开发流程掌握sqlite3API使用知识目标能够使用sqlite3编写简单的数据库应用能力目标新技术适应性数据安全和隐私保护情感态度与价值观了解SQLite3数据库010203了解sqlite3模块

sqlite3常用API目

录了解SQLite3数据库010203了解sqlite3模块sqlite3常用API目

录SQLite3应用SQLite3特点SQLite3:轻量级关系数据库嵌入式设备移动应用开发小中型桌面应用特点嵌入式数据库引擎无服务器架构零配置跨平台9.1.1SQLite3数据库主要特点212了解SQLite3数据库010203了解sqlite3模块sqlite3常用API目

录了解sqlite3模块0203sqlite3常用API目

录了解SQLite3数据库01sqlite3功能sqlite3基本使用sqlite3模块:对SQLite3C语言接口的封装,用于在Python环境下与SQLite3数据库交互主要功能连接与游标执行SQL命令获取查询结果事务处理错误处理数据类型:NULL、INTEGER、REAL、TEXT、BLOB9.1.2初识sqlite3模块213sqlite3模块的基本使用9.1.2初识sqlite3模块213importsqlite3connection=sqlite3.connect('9-1.db')c=connection.cursor()#创建游标对象print("数据库打开成功")示例9-1sqlite3模块的基本使用9.1.2初识sqlite3模块213c.execute('CREATETABLEcompany(idINTPRIMARYKEYNOTNULL,'

'nameTEXTNOTNULL,'

'ageINTNOTNULL,'

'addressCHAR(50),'

'salaryREAL);')#创建表print("数据表创建成功")示例9-1sqlite3模块的基本使用9.1.2初识sqlite3模块213connection.execute('INSERTINTOcompany(id,name,age,address,salary)''VALUES(1,"Paul",32,"California",20000)')mit()#提交事务connection.close()#关闭数据库连接示例9-1了解SQLite3数据库010203了解sqlite3模块sqlite3常用API目

录sqlite3常用API03目

录了解SQLite3数据库0102了解sqlite3模块连接与游标对象SQL命令执行查询与遍历结果事务提交与回滚关闭资源connect():创建一个连接对象并返回,该对象关联至一个SQLite数据库文件database字符串“:memory:”:创建一个内存数据库文件文件名:文件存在则打开,不存在则创建后再打开timeout:设置连接等待时间,默认为5秒9.2.1连接数据库

214连接对象=sqlite3.connect(database[,

timeout,...])9.2.1连接数据库214连接数据库importsqlite3try:

#尝试连接到SQLite数据库

conn=sqlite3.connect('9-2.db')

print('连接成功')

conn.close()exceptsqlite3.Errorase:

#捕获并处理连接失败时抛出的异常

print(f'连接失败:{e}')示例9-29.2.2获取游标对象215cursor():创建一个游标对象并返回,该对象提供执行SQL命令、获取查询结果的方法importsqlite3try:

conn=sqlite3.connect('9-3.db')

c=conn.cursor()#获取游标对象

conn.close()exceptsqlite3.Errorase:

print(f'发生异常:{e}')示例9-3连接对象.cursor([cursorClass])9.2.3执行SQL命令215execute():用于执行SQL命令sql:要执行的SQL语句字符串,可以是CREATETABLE、INSERTINTO、UPDATE、DELETE或SELECT等parameters:可选参数,可以是一个元组或字典,为参数化查询中的占位符游标对象.execute(sql[,parameters])9.2.3执行SQL命令215通过游标对象创建表并插入数据importsqlite3try:

conn=sqlite3.connect('9-4.db')

c=conn.cursor()

c.execute('CREATETABLEIFNOTEXISTSusers

('

'idINTEGERPRIMARYKEY,'

'nameTEXT,'

'ageINTEGER)')示例9-49.2.3执行SQL命令215

#插入一条记录,无参数

c.execute('INSERTINTOusers(name,age)VALUES("John",35)')

#插入一条记录,使用参数化查询

c.execute('INSERTINTOusers(name,age)VALUES(?,?)',('Alice',30))

mit()#提交事务

c.close()#关闭游标

conn.close()#关闭数据库exceptsqlite3.Errorase:

print(f'发生异常:{e}')示例9-49.2.3执行SQL命令216通过游标对象更新和删除数据conn=sqlite3.connect('9-4.db')

c=conn.cursor()#将users表里name="John"的记录中的age字段设置为31c.execute('UPDATEuserssetage=31WHEREname="John"')#删除users表中name="Alice"的记录c.execute('DELETEFROMusersWHEREname="Alice"')mit()

c.close()conn.close()示例9-5cursor.fetchone():从游标内部缓冲区中获取一行查询结果成功则返回包含该行数据的元组没有更多数据可获取返回None适合需要逐行处理查询结果的场景9.2.4查询数据与遍历结果2169.2.4查询数据与遍历结果216fetchone()的使用conn=sqlite3.connect('9-4.db')c=conn.cursor()results=c.execute('SELECT*FROMusers')#获取查询结果的第一行row=results.fetchone()whilerowisnotNone:#只要获取结果不为None

print(row)#输出该条查询结果

row=cursor.fetchone()#获取下一行示例9-6cursor.fetchmany(size):从游标内部缓冲区中获取指定数量的查询结果返回一个列表对象,元素为元组,一个元组代表一行数据少于指定的size则返回所有记录9.2.4查询数据与遍历结果2179.2.4查询数据与遍历结果217fetchmany()的使用conn=sqlite3.connect('9-6.db')

c=conn.cursor()

results=c.execute('SELECTname,ageFROMusersORDERBYageASC')#获取查询结果的第3行,即年龄最小的3个人rows=results.fetchmany(3)forrinrows:#rows是包含3个元组的列表对象

print(r)#每个元组代表一条查询结果示例9-7cursor.fetchall:从游标内部缓冲区中获取所有查询结果返回一个列表对象,元素为元组,一个元组代表一行数据9.2.4查询数据与遍历结果2179.2.4查询数据与遍历结果217fetchall()的使用方法conn=sqlite3.connect('9-4.db')c=conn.cursor()#去users表里查询所有记录results=c.execute('SELECT*FROMusers')#取出当前缓冲区中的所有结果rows=results.fetchall()forrinrows:

print(r)示例9-8事务:一系列操作的逻辑单元,要么全部执行,要么全部不执行事务确保了数据库从一个一致的状态转换到另一个一致的状态如果事务中的某个操作执行失败,或者事务被显式地回滚,所有在该事务中执行的操作都会被撤销,数据库将恢复到事务开始之前的状态9.2.5事务提交与回滚218execute()方法不会立即修改数据库文件,而是被暂存在当前的事务中,只有当事务被提交时,这些修改才会写入数据库连接对象.commit():提交当前事务连接对象.rollback():撤销更改9.2.5事务提交与回滚2189.2.5事务提交与回滚218示例9-5中commit()的使用conn=sqlite3.connect('9-4.db')

c=conn.cursor()#将users表里name="John"的记录中的age字段设置为31c.execute('UPDATEu

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论