Python语言实用教程第11章-数据库应用课件.ppt
- 【下载声明】
1. 本站全部试题类文档,若标题没写含答案,则无答案;标题注明含答案的文档,主观题也可能无答案。请谨慎下单,一旦售出,不予退换。
2. 本站全部PPT文档均不含视频和音频,PPT中出现的音频或视频标识(或文字)仅表示流程,实际无音频或视频文件。请谨慎下单,一旦售出,不予退换。
3. 本页资料《Python语言实用教程第11章-数据库应用课件.ppt》由用户(三亚风情)主动上传,其收益全归该用户。163文库仅提供信息存储空间,仅对该用户上传内容的表现方式做保护处理,对上传内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!
4. 请根据预览情况,自愿下载本文。本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
5. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007及以上版本和PDF阅读器,压缩文件请下载最新的WinRAR软件解压。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- Python 语言 实用教程 11 数据库 应用 课件
- 资源描述:
-
1、一般高级语言都支持数据库操作,一般高级语言都支持数据库操作,PythonPython对多种数据库操作提供了很好的支持。对多种数据库操作提供了很好的支持。PythonPython语语言标准数据库接口为言标准数据库接口为Python DB-APIPython DB-API,Python Python DB-APIDB-API为开发人员提供了一致的数据库应用编程为开发人员提供了一致的数据库应用编程接口。本章主要内容包括:数据库基本知识、接口。本章主要内容包括:数据库基本知识、PythonPython数据库编程技术、多种数据库操作模块的数据库编程技术、多种数据库操作模块的介绍与基本使用等内容。介绍与基
2、本使用等内容。学习重点或难点:学习重点或难点:关系数据库与关系数据库与SQL语言语言 Python数据库编程简介数据库编程简介 通过通过DB-API访问数据库访问数据库 Python数据库编程实例数据库编程实例学习本章后,将能利用学习本章后,将能利用Python数据库访问技术数据库访问技术来编写数据库应用程序,实现对信息的高级管理功能。来编写数据库应用程序,实现对信息的高级管理功能。11.1 关系数据库概述关系数据库概述11.2 Python Python数据库编程概述数据库编程概述11.3 Python Python与与ODBCODBC11.4 Python Python与与SQLite3S
3、QLite311.5 Python Python与与MySQLMySQL11.6 Python Python与与SQL ServerSQL Server 从知识的完整性角度考虑,本节简单介绍关从知识的完整性角度考虑,本节简单介绍关系数据库的基本知识。主要是关系数据库的定义系数据库的基本知识。主要是关系数据库的定义及关系数据库的国际标准及关系数据库的国际标准SQLSQL语言。语言。数据库数据库(Database)是指长期存储在计算机内是指长期存储在计算机内的、有组织的、可共享的数据集合。数据以记录的、有组织的、可共享的数据集合。数据以记录(Record)和字段和字段(Field)的形式存储在数据
4、表的形式存储在数据表(Table)中,由若干个相关联的数据表构成一个数据库。中,由若干个相关联的数据表构成一个数据库。数据库国际标准操作语言数据库国际标准操作语言SQL语言的操作对象语言的操作对象主要是数据表或视图。主要是数据表或视图。SQL语言可分为:数据定语言可分为:数据定义语言义语言DDL、数据操纵语言、数据操纵语言DML、数据查询语言、数据查询语言DQL和数据控制语言和数据控制语言DCL四大类。四大类。1.创建数据表创建数据表CREATE TABLE 表名表名(字段名字段名l 数据类型数据类型 列级约列级约束条件束条件,字段名字段名2 数据类型数据类型 列级约束条件列级约束条件,字段字
5、段名名n 数据类型数据类型 列级约束条件列级约束条件,表级完整性约束表级完整性约束)创建学生信息表创建学生信息表studentcreate table student(sno char(10)primary key,sname char(20),sage integer,sdept char(10)2.修改数据表修改数据表 ALTER TABLE 表名表名 ADD 字段名字段名 数据类型数据类型 约束条件约束条件 在学生表在学生表student中添加一个性别字段中添加一个性别字段ssex其其SQL语句为:语句为:ALTER TABLE student add ssex char(2)not n
6、ull 删除字段使用的格式为:删除字段使用的格式为:ALTER TABLE 表名表名 DROP 字段名字段名 在学生信息表在学生信息表student中删除一个字段性别中删除一个字段性别ssex其其SQL语句语句为:为:ALTER TABLE student DROP ssex3.3.删除数据表删除数据表 在在SQLSQL语言中使用语言中使用DROP TABLEDROP TABLE语句删除某个表语句删除某个表格及表格中的所有记录,其命令格式为:格及表格中的所有记录,其命令格式为:DROP TABLE DROP TABLE 表名表名 在在testtest数据库中删除学生表数据库中删除学生表stud
7、entstudent其其SQLSQL语句语句为:为:DROP DROP TABLE studentTABLE student4.向数据表中插入数据向数据表中插入数据 INSERT语句实现向数据库表格中插入或增加新的数语句实现向数据库表格中插入或增加新的数据行,其据行,其格式如下:格式如下:INSERT INTO 表名表名(字段名字段名l,字段名字段名n)VALUES(值值l,值值n)例如:在学生表例如:在学生表student中插入一条记录,其中插入一条记录,其SQL语句语句为:为:insert into student(sno,sname,sage,sdept)values(20160305,
8、董华董华,19,cs)5.数据更新语句数据更新语句 UPDATE语句实现更新或修改满足规定条件的现有记语句实现更新或修改满足规定条件的现有记录,使用格式如下:录,使用格式如下:UPDATE 表名表名 SET 字段名字段名l=新值新值l,字段名字段名2=新值新值2 WHERE 条件表达式条件表达式 例如:学生表例如:学生表student中的中的sage加加1岁,其岁,其SQL语句为:语句为:Update student set sage=sage+16.删除记录语句删除记录语句 DELETE语句删除数据库表格中的行或记录,其语句删除数据库表格中的行或记录,其命令格式如下:命令格式如下:DELET
9、E FROM 表名表名 WHERE 条件表达式条件表达式 例如:删除学生表例如:删除学生表student中的中的sage字段的值超字段的值超过过24的记录,其语句为:的记录,其语句为:DELETE FROM student where sage247.数据查询语言数据查询语言 最基本的最基本的SELECT查询语句格式:查询语句格式:SELECT DISTINCT 字段名字段名l,字段名字段名2,FROM 表表名名 WHERE 条件表达式条件表达式 例如查询出学生表例如查询出学生表student中的所有姓王的学生中的所有姓王的学生信息,其语句为:信息,其语句为:Select*from stude
10、nt where sname like 王王%关系型数据库拥有共同的规范关系型数据库拥有共同的规范Python Database API Specification V2.0(Python DB-API),MySQL、Oracle等都实现了此规范,然后增加自己的扩展。等都实现了此规范,然后增加自己的扩展。为了增强自己数据库操作的性能与效率等,不同数为了增强自己数据库操作的性能与效率等,不同数据库还会提供操作自己数据库的专门接口模块。据库还会提供操作自己数据库的专门接口模块。sqlite3:sqlite3模块提供了模块提供了SQLite数据库访问的数据库访问的接口。接口。SQLite数据库是以一
11、个文件或内存的形式存数据库是以一个文件或内存的形式存在的自包含的关系型数据库。在的自包含的关系型数据库。DBM-style数据库模块:数据库模块:python提供了多个提供了多个modules来支持来支持UNIX DBM-style数据库文件。数据库文件。dbm模块用来读取标准的模块用来读取标准的UNIX-dbm数据库文件数据库文件;gdbm用来读取用来读取GNU dbm数据库文件数据库文件;dbhash用来读取用来读取Berkeley DB数据库文件。所有的这些模块提供了数据库文件。所有的这些模块提供了一个对象实现了基于字符串的持久化的字典,它一个对象实现了基于字符串的持久化的字典,它与字典
12、与字典dict非常相似,但是它的非常相似,但是它的keys和和values都必都必须是字符串。须是字符串。这里主要介绍这里主要介绍PythonPython标准数据库接口标准数据库接口(Python(Python DB-API)DB-API)。Python DB-APIPython DB-API为开发人员提供了数据为开发人员提供了数据库应用编程接口。库应用编程接口。DB-APIDB-API是一个规范是一个规范,它定义了一它定义了一系列必须的对象和数据库存取方式系列必须的对象和数据库存取方式,以便为各种各以便为各种各样的底层数据库系统和多种多样的数据库接口程样的底层数据库系统和多种多样的数据库接口
13、程序提供一致的访问接口。序提供一致的访问接口。Python 数据库接口支持非常多的数据库,可数据库接口支持非常多的数据库,可以选择适合你项目的数据库:以选择适合你项目的数据库:GadFly、mSQL、MySQL、PostgreSQL、Microsoft SQL Server、Informix、Interbase、Oracle、Sybase等。可以访等。可以访问问Python数据库接口及数据库接口及API查看详细的支持数据库查看详细的支持数据库列表。列表。不同的数据库需要下载不同的不同的数据库需要下载不同的DB-API模块,模块,例如需要访问例如需要访问Oracle数据库和数据库和Mysql数据
14、,你需要数据,你需要下载下载Oracle和和MySQL数据库数据库DB-API模块。模块。Python的的DB-API,为大多数的数据库实现了接口,使用它,为大多数的数据库实现了接口,使用它连接各数据库后,就可以用相同的方式操作各种连接各数据库后,就可以用相同的方式操作各种数据库。数据库。Python DB-API使用流程:使用流程:1)引入)引入DB-API 模块;模块;2)获取与数据库的连接;)获取与数据库的连接;3)执行)执行SQL语句和存语句和存储过程;储过程;4)关闭数据库连接。)关闭数据库连接。pyodbc封装了封装了ODBC API,通过它可以访问各种有,通过它可以访问各种有OD
15、BC驱动的数据库。驱动的数据库。Pyodbc提供的相关对象方法说明如下:提供的相关对象方法说明如下:1、connection 对象方法对象方法 1)close():关闭数据库;:关闭数据库;2)commit():提交当前事务;:提交当前事务;3)rollback():取消当前事务;:取消当前事务;4)cursor():获取当前连接的游标;:获取当前连接的游标;5)errorhandler():作为已给游标的句柄。:作为已给游标的句柄。2.cursor游标对象和方法游标对象和方法(具体略)(具体略)【例【例11-1】查询某个查询某个ODBC数据源的某个表数据源的某个表#encoding=gbki
16、mport pyodbc,sys#conn=pyodbc.connect(DSN=mysqldsn;UID=root;PWD=root)#连接连接MySQL#conn=pyodbc.connect(DRIVER=MySQL ODBC 5.3 ANSI Driver;SERVER=localhost;PORT=3306;DATABASE=Jxgl;USER=root;PASSWORD=root)#conn=pyodbc.connect(DRIVER=MySQL ODBC 5.3 Unicode Driver;SERVER=localhost;PORT=3306;DATABASE=Jxgl;USE
17、R=root;PASSWORD=root)conn =pyodbc.connect(DRIVER=SQL Server;DATABASE=%s;SERVER=%s;UID=%s;PWD=%s%(Jxgl,127.0.0.1,sa,sasasasa)#连接连接SQL Servercursor=conn.cursor()cursor.execute(SELECT*FROM student)while True:row=cursor.fetchone()if not row:break print(row)cursor.close()conn.close()sqlite3是一个很优秀的轻量级数据库。
18、是一个很优秀的轻量级数据库。sqlite3从从Python 2.5版本开始加入到标准库中。通过它,版本开始加入到标准库中。通过它,可以很方便地操作可以很方便地操作SQLite数据库。操作数据库。操作SQLite数据数据库的方法或语句与上面操作库的方法或语句与上面操作ODBC数据源数据的基数据源数据的基本相同。下面直接举例说明:本相同。下面直接举例说明:【例【例11-2】创建一个内存数据库,建表并插入创建一个内存数据库,建表并插入记录后,再显示出来记录后,再显示出来import sqlite3conn=sqlite3.connect(:memory:)cursor=conn.cursor()cu
19、rsor.execute(CREATE TABLE person(name text,age int)cursor.execute(INSERT INTO person VALUES(TOM,20)cursor.execute(INSERT INTO person VALUES(Jhon,22)mit()cursor.execute(SELECT*FROM person)while True:row=cursor.fetchone()if not row:break print(row)cursor.close();conn.close()Python和和MySQL交互的模块有交互的模块有 M
展开阅读全文