(本科)第8章Python数据库应用ppt课件.pptx

上传人:春哥&#****71; 文档编号:15304037 上传时间:2022-05-12 格式:PPTX 页数:33 大小:369.17KB
返回 下载 相关 举报
(本科)第8章Python数据库应用ppt课件.pptx_第1页
第1页 / 共33页
(本科)第8章Python数据库应用ppt课件.pptx_第2页
第2页 / 共33页
点击查看更多>>
资源描述

《(本科)第8章Python数据库应用ppt课件.pptx》由会员分享,可在线阅读,更多相关《(本科)第8章Python数据库应用ppt课件.pptx(33页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、课程主讲人:第8章 Python数据库应用第第8 8章章 PythonPython数据库应用数据库应用8.1 数据库基础u 数据库(Database)数据库是数据的集合,数据库能将大量数据按照一定的方式组织并存储起来,方便的进行管理和维护。u 数据库的特征 以一定的方式组织、存储数据能为多个用户共享具有尽可能少的冗余代码与程序彼此独立 数据库基本概念u 数据库管理系统(DBMS)数据库管理系统(database management system)是一种操纵和管理数据库的大型软件,是用于建立、使用和维护数据库。它对数据库进行统一的管理和控制,以保证数据库的安全性和完整性。它的功能包括: (1)

2、数据定义功能。 (2)数据存取功能。 (3)数据库运行管理功能。 (4)数据库的建立和维护功能。 (5)数据库的传输。常用的数据库管理系统有MS SQL、 SYBASE、DB2、ORACLE、MySQL等。u 数据库系统(DBS)数据库可分为层次型数据库、对象型数据库和关系型数据库。数据库可分为层次型数据库、对象型数据库和关系型数据库。关系型数据库是目前的主流数据库类型。关系型数据库不仅描关系型数据库是目前的主流数据库类型。关系型数据库不仅描述数据本身,而且对数据之间的关系进行描述。述数据本身,而且对数据之间的关系进行描述。u常用术语关系:关系:可以理解为一张二维表,每一个关系都有一个关系名,

3、也就是表名。属性属性: : 可以理解为二维表中的一列,在数据库中称为字段。元组:元组:可以理解为二维表中的一行,在数据库中称为记录。域:域:属性的取值范围,也就是数据库中某一列的取值范围。关键字:关键字:一组可以唯一标识元组的属性,数据库中称为主键,可以由一个或者多个列组成。 关系型数据库u关系型数据库实体间的联系uDB-APIDB-API是一个规范。它定义了一系列必需的对象和数据库存取方式,以便为各种各样的底层数据库系统和多种多样的数据库接口程序提供一致的访问接口。从Python中访问数据库需要接口程序,接口程序是一个Python模块,它提供数据库客户端(通常是C语言编写)的接口以供访问,所

4、有的Python接口程序都一定程度上遵守Python DB-API规范。8.2 结构化查询语言SQL数据库命令和查询操作需要通过SQL语言来执行,SQL(Structured Query Language“结构化查询语言”)是通用的关系型数据库操作语言。可以查询、定义、操纵和控制数据库。它是一种非过程化语言。用于创建数据库中的表。它的语法格式为:CREATE TABLE 表名称(列名称1 数据类型,列名称2 数据类型,列名称3 数据类型,.)u例CREATE TABLE students(stuNumber varchar(12),stuName varchar(255),age intege

5、r(2),sex varchar(2),score integer(4),Address varchar(255),) 数据表的建立(CREATE TABLE)和删除(DROP)uCREATE TABLE uDROP用于删除表(表的结构、属性以及索引也会被删除),它的语法格式为:DROP TABLE 表名称DROP TABLE studentsu例用于从表中选取数据。结果被存储在一个结果表中(称为结果集)。查询语句语法如下所示:SELECT 字段表 FROM 表名 WHERE 查询条件 GROUP BY 分组字段 ORDER BY 字段ASC|DESCu 字段表8.2.2 查询语句SELECT

6、指出所查询列,它可以是一组列名、星号、表达式、变量等构成。例:查询students表中所有列的数据。 SELECT * FROM students例:查询表students中所有记录的stuName, stuNumber字段内容。 SELECT stuName, stuNumber FROM studentsu WHERE子句8.2.2 查询语句SELECTWHERE子句设置查询条件,过滤掉不需要的数据行。WHERE子句可包括各种条件运算符(1)比较运算符:;、=、=、;、=、;、!;、!18 AND sex=女(5)模式匹配符:LIKE、NOT LIKE例:SELECT * FROM stu

7、dents WHERE name like “周%”例:SELECT * FROM students WHERE score like 80-90 说明:指定一个字符、字符串或范围,要求所匹配对象为它们中的任一个。则要求所匹配对象为指定字符以外的任一个字符。u数据分组Group By8.2.2 查询语句SELECTGROUP BY 子句用于结合聚合函数,根据一个或多个列对结果集进行分组SELECT sex,avg(score) as 平均成绩 FROM students Group By sex u例u常用的聚合函数u查询结果排序Order By8.2.2 查询语句SELECT使用ORDER

8、BY子句对查询返回的结果按一列或多列排序。SELECT stuName,stuNumber FROM students ORDER BY stuSCORE DESEu例说明:ASC表示升序,为默认值,DESC为降序INSERT INTO 语句用于向表格中插入新的行。它的语法格式为:INSERT INTO 数据表 (字段1,字段2,字段3 ) VALUES (值1,值2,值3 ) u 例8.2.3 添加记录语句INSERT INTOINSERT INTO students (stuNumber,stuName,age,sex,score,address,city) VALUES(2010005,

9、李帆,19,男,92,Changjiang 12,Zhengzhou)或:INSERT INTO students VALUES(2010005,李帆,19,男,92,Changjiang 12,Zhengzhou)。Update 语句用于修改表中的数据。语法格式为:UPDATE 表名 SET 列名 = 新值 WHERE 列名 = 某值u 例8.2.4 更新语句UPDATEUPDATE students SET age=age+1 WHERE sex=女UPDATE students SET Address = Zhongyuanlu 41, City = Zhengzhou WHERE st

10、uName = 李四DELETE 语句用于删除表中的行。它的语法格式为:DELETE FROM 表名称 WHERE 列名 = 值u 例8.2.5 删除记录语句DELETEDELETE FROM students WHERE stuName = 张三说明:DELETE FROM students表示删除表中所有记录。8.3 SQLite数据库简介Python自带一个轻量级的关系型数据库SQLite。SQLite是一种嵌入式关系型数据库,它的数据库就是一个文件。 SQLite数据库每个存放在SQLite3数据库中的值,都具有下表中的一种存储类型:8.3.2 SQLite3的数据类型存储类型存储类型

11、说明说明NULL 空值INTEGER 带符号整数,根据存入的数值的大小占据1,2,3,4,6或者8个字节REAL浮点数,采用8byte(即双精度)的IEEE格式表示TEXT 字符串文本,采用数据库的编码(UTF-8,UTF-16BE 或者UTF- 16LE)BLOB 无类型,可用于保存二进制文件1. SQLite时间时间/日期函数日期函数:datetime():产生日期和时间date():产生日期time():产生时间 strftime():对以上三个函数产生的日期和时间进行格式化8.3.3 SQLite3的函数2. SQlite算术函数算术函数:abs(X):返回绝对值max(X,Y,.):

12、返回最大值min(X,Y,.):返回最小值random(*):返回随机数round(X,Y): 四舍五入3. SQLite字符串处理函数length(x) :返回字符串字符个数lower(x) :大写转小写upper(x):小写转大写substr(x,y,Z):截取子串like(A,B):确定给定的字符串与指定的模式是否匹配8.3.3 SQLite3的函数4.其它函数:typeof(x):返回数据的类型last_insert_rowid():返回最后插入的数据的IDPython标准模块sqlite3使用C语言实现,提供访问和操作数据库SQLite的各种功能。Sqlite3模块主要包括下列常量、

13、函数和对象:8.3.4 SQLite3的模块Sqlite3.Version:常量,版本号。Sqlite3.Connect(database):):函数,链接到数据库,返回Connect对象。Sqlite3.Connect:数据库连接对象。Sqlite3.Cursor:游标对象。Sqlite3.Row:行对象。8.4 Python的SQLite3数据库编程Python2.5版本以上就内置了SQLite3,所以,在Python中使用SQLite,不需要安装任何东西,直接使用。SQLite3数据库使用SQL语言。SQLite作为后端数据库,可以制作有数据存储需求的工具。Python标准库中的SQLi

14、te3提供该数据库的接口。Python的数据库模块有统一的接口标准,所以数据库操作都有统一的模式,操作数据库SQLite3 主要分为以下几步:8.4.1 访问数据库的步骤1.导入导入Python SQLite数据库模块数据库模块 import sqlite32. 建立数据库连接,返回建立数据库连接,返回Connection对象对象 con = sqlite3.connect(connectstring) 例:con=sqlite3.connect(“E:test.db”)3. 创建游标对象创建游标对象 cur=con.cursor() 4. 使用使用Cursor对象的对象的execute执行执

15、行SQL命令返回结果集命令返回结果集 cur.execute(sql):执行SQL语句。 cur.execute(sql,parameters):执行代参数的SQL语句。 cur.executemany(sql,seq_of_pqrameters):根据参数执行多次SQL语句。 cur.executescript(sql_script):执行SQL脚本。 例:cur.execute(CREATE TABLE category(id primary key,sort,name)5. 获取游标的查询结果集获取游标的查询结果集 cur.fetchone():返回结果集的下一行(Row对象);无数据时

16、,返回None。 cur.fetchall():返回结果集的剩余行(Row对象列表),无数据时,返回空List。 cur.fetchmany():返回结果集的多行(Row对象列表),无数据时,返回空List。 例: print cur.fetchall() #提取查询到的数据 也可以直接使用循环输出结果,例如: For row in cur.execute(select * from catagory): Print(row0,row1)6. 数据库的提交和回滚数据库的提交和回滚 mit():事务提交 con.rollback():事务回滚 7. 关闭关闭Cursor对象和对象和Connect

17、ion对象对象 cur.close():关闭 Cursor对象 con.close():关闭Connection对象8.4.1 访问数据库的步骤【例8-1】:创建数据库sales,并在其中创建表book,表中包含三列,id、price和name,其中id为主键(primary key)。8.4.2 创建数据库和表#导入Python SQLite数据库模块import sqlite3#创建SQLite数据库con=sqlite3.connect(E:sales.db)#创建表book:包含三个列,id(主键)、price和namecon.execute(create table book(id

18、primary key,price,name))说明:connection对象的execute方法是Cursor对象对应方法的快捷方式,系统会创建一个临时Cursor对象,然后调用对应的方法,并返回Cursor对象。在数据库表中插入、更新、删除记录的一般步骤为:1.建立数据库连接;2.创建游标对象cur,使用cur.execute(sql)执行SQL的insert、Update、delete等语句完成数据库记录的插入、更新、删除操作,并根据返回值判断操作结果;3.提交操作;4.关闭数据库。8.4.3 数据库的插入、更新和删除操作import sqlite3books=(021,25,大学计算机

19、),(022,30, 大学英语),(023,18, 艺术欣赏 ) ,( 024,35, 高级语言程序设计)#打开数据库Con=sqlite3.connect(E:sales.db)#创建游标对象Cur=Con.cursor()#插入一行数据Cur.execute(insert into book(id,price,name) values (001,33,大学计算机多媒体)Cur.execute(insert into book(id,price,name) values (?,?,?) ,(002,28,数据库基础)8.4.3 数据库的插入、更新和删除操作#插入多行数据Cur.execute

20、many(insert into book(id,price,name) values (?,?,?) ,Books)#修改一行数据Cur.execute(Update book set price=? where name=? ,(25,大学英语)#删除一行数据n= Cur.execute(delete from book where price=?,(25,)print(删除了,n.rowcount,行记录)Cmit()Cur.close()Con.close()运行结果如下:删除了 2 行记录u 【例8-2】查询数据库的步骤为:1.建立数据库连接;2. 创建游标对象cur,使用cur.e

21、xecute(sql)执行SQL的select语句;3.循环输出结果8.4.4 数据库表的查询操作import sqlite3#打开数据库Con=sqlite3.connect(E:sales.db)#创建游标对象Cur=Con.cursor()#查询数据库表Cur.execute(select id,price,name from book)for row in Cur: print(row)8.4.3 数据库查询操作运行结果如下:(001, 33, 大学计算机多媒体)(002, 28, 数据库基础)(023, 18, 艺术欣赏 )(024, 35, 高级语言程序设计)u 例8.4.5 数据库使用实例u【例8-3】:设计一个学生通讯录,可以添加、删除、修改里面的信息。 图图8-2 程序运行界面程序运行界面8.5 智力问答游戏功能介绍 智力问答测试,内容涉及到历史,经济,风情,民俗、地理、人文等多个古今中外各方面的知识,让您在轻松娱乐,益智,搞笑的时候,不知不觉的增长知识。答题过程中做对、做错实时跟踪。测试完成后,能根据用户答题情况给出成绩。程序运行界面如图所示。数据库使用实例u设计一个学生通讯录,可以添加、删除、修改里面的信息。 程序运行程序运行界面界面

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育专区 > 大学资料

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁