收藏 分销(赏)

Python程序设计基础 Chap12 数据库支持.pdf

上传人:曲**** 文档编号:231264 上传时间:2023-03-21 格式:PDF 页数:29 大小:1.02MB
下载 相关 举报
Python程序设计基础 Chap12 数据库支持.pdf_第1页
第1页 / 共29页
Python程序设计基础 Chap12 数据库支持.pdf_第2页
第2页 / 共29页
Python程序设计基础 Chap12 数据库支持.pdf_第3页
第3页 / 共29页
Python程序设计基础 Chap12 数据库支持.pdf_第4页
第4页 / 共29页
Python程序设计基础 Chap12 数据库支持.pdf_第5页
第5页 / 共29页
点击查看更多>>
资源描述

1、内家提纲12.1 数据库概述12.2 Python数据库编程接口 CDB-AP1J -.O12.3 MySQL关系数据库操作12.4 SQLite数据库与操作引例。引例如右表所示是联想电脑 某年在各地区的销售情 况。现在问题是:(1)表中数据如何保 持?(2)如何对多表中的 数据进行关联操作?如 求销量前5的地区的平 均成交均价?地区联想电 脑成交均价(元)广州1233335655.00深圳945645700.00珠海856775645.00中山677775635.00佛山456465650.00北京967865800.00上海1200785810.00海南355555600.00成都2344

2、55648.0012.1数据库概述:数据库数据库(Database)是按照数据结构来组织、存储和管理 数据的建立在计算机存储设备上的仓库,用户可以对 其中的数据进行新增、查询、更新、删除等操作。:数据库管理系统典型关系数据库管理系统 Microsoft SQL Server,MySQL、Oracle、SQLite 典型非关系数据库 Mongodb,Redis,Hbase122 Python数据库编程接口(DB-APD 12.2.1 DB-API简介与统一操作模式 DB-API 简介 DB-API是一个规范,它定义了一系列必须的对象和数据 库存取方式,可以为各种不同的数据库管理系统的数据 库操作

3、提供一致的访问接口。12.2 Python数据库编程接口(DB-API)12.2.1 DB-API 简介与统一 操作模式 Python DBAPI统一操作流 程(1)导入DB-API模块;(2)获取与数据库的连接;(3)执行相关操作(SQL语 句和存储过程);(4)关闭与数据库的连接。12.2 Python数据库编程接 口(DB-API):7222 模块接口(Module Interface)模块方法与属性 Connect。为连接函数;apilevel为字符串常量,表示该DB-API所兼容的DB-API最高版本号,默认为“1.0”;threadsafety为整型常量,表示该DB-API所支持的

4、线程安全级别,其可能取值范围0-3;paramstyle为字符串常量,表示该DP-API所期望的SQL参数风格。类别名称描述方法connect()连接函数,同时也是Connection对象 构造函数全局属性apilevelDB-API的版本号threadsafety线程安全级别paramstyle支持的SQL语句参数风格122 Python数据库编程接口(DB-APD:7222 模块接口(Module Interface)connect。函数 connect。是一个用来建立程序与数据库连接的函数,并返回 一个Connection对象。具体参数如下表所列。参数名参数意义dsn数据源user用户名

5、password用户密码host数据库所在主机database数据库名称 一个连接案例:connect(dsn=,myhost:MYDBJ user=guido,password=234$)122 Python数据库编程接口(DB-API):7 223 Connection连接对象 Connection连接对象搭建了应用程序与数据库之间的桥梁,完成将命令 送往服务器,并从服务器接收数据等功能。该对象常用方法如下表:方法描述备注cursor()方法返回给定连接上建立的游标对象(Cursor Object)。如果数据库没有提供对应的游标对象,那 么将由程序来模拟实现游标功能。close()马上关闭

6、数据连接(而不是当_del_方 法被调用的时候),连接应该此后变得不口 用,再次访问本连接对象应该触发一个错误(Error或其子类),同样所有使用本连接 对象的游标(cursor)对象,也会导致例 外发生。需要注意的是,在关闭连接对象之前,没 有首先提交对数据库的改变 将会导致一 个隐含的回滚动作(rollback),这将丢 弃之前的数据改变操作。commit()提交任何挂起的事务到数据库中。需要注意的是,如果数据库支持自动提交(auto-commit),必须在初始化时关 闭。一般会有一个接口函数关闭此特性。rollback()此为可选方法,对于支持事务的数据库,调 用此方法将导致数据库回滚到

7、事务开始时的 状态。关闭数据库连接之前没有明确调用 commit。提交数据更新,将隐含导致 rollback。被执行。122 Python数据库编程接口(DB-APD 12.24 Cursor游标对象游标对象用来实现程序与数据库的交互,一个游标对象允许用户执行数 据库操作的相关命令以及获取到查询结果。该对象常用方法如下表:类别名称描述属性connection创建此游标对象的数据库连接arraysize使用fetchmany。方法一次取出多少条记 录,默认为1lastrowid返回最后更新id(可选)rowcount最后一次execute()操作返回或影响的 行数方法excute(sql,arg

8、s)执彳L个数据库查询或命令excutemany(sql,args):执行多个数据库查询或命令fetchone()得到结果集的下一行fetchmany(size=cursor.arraysize)得到结果集的下几行fetchall()得到结果集中剩下的所有行Jter_()创建一个迭代器对象next()使用迭代对象得到结果集的下一行close()关闭此游标对象妆3 MySQL关系数据库操彳概述 MySQL是一个关系型数据库管理系统,目前属于Oracle旗 下产品。MySQL支持UNIX、Linux、Mac OS、Windows 等多种操作系统。目前MySQL是最流行的关系型数据库管 理系统之一。

9、支持MySQL的Python DB-API 在Python2.x中使用最为广泛的是mysqldb;在Python3.x中使用最为广泛的是PyMySQL;MySQL Connector/Python 是 MySQL 官方提供的 Python3.x连接 MySQL数据库的驱动程序;.廿3 MySQL关至数据库操作 12.3.1 PyMySQL下载与安装直接使用pip命令安装$pip install PyMySQL安装过程及成功界面如下图所示。Collecting PyMySQL1 62kB/s38z51 Z64z77y.90 z1 0 0 z!Downloading PyMySQL-0.7.Il-

10、py2.py3-none-any.whl I 30 kB 1 1 9kB/s eta 0:0 0:0 1I 40 kB 87kB/s eta 0:0 0I 51 kB 1 0 9kB/s eta!61 kB 1 30 kB/sI 71 kB 1 51;81 kBInstalling collected packages:PyMySQLSuccessfully installed PyMySQL-0.7.1 1.23 MygQL琴蓼遇库操彳 12.3.2 PyMySQL基本操作 12.3.2.1数据库连接操作 PyMySQL主要是通过connect O来建立与数据库的连接,案例代码如下:impo

11、rt pymysql connection=pymysql.connect(host=r,local host,user=,pythonl,J passwd=r,123456,db=Userinfo,port=3306,)print(connection.host_info)connection.close()12.3.2 PyMySQL基本操作12.3.2.2创建数据库表操作 import pymysql connection=pymysql.Connect(hostlocalhost1,port=3306,L/ser=python,passwd=12345Q,dbUserlnfo9)cur

12、sor=connection.cursor()cursor.executeDROP TABLE IF EXISTS UserList)sql=CREATE TABLE UserList(userID CHAR(32)not NULL,userName CHAR(40)not NULL,userPassword CHAR(20),userAge INT cursor.execute(sql)connection.close().上3 MySQL关系数据库操彳 12.3.2 PyMySQL基本操作 12.3.2.1新增、删除、更新记录操作 Python异常处理机制-try:-可能会发生异常语句块-

13、except Exception as e:第一种异常类型处理-except Exception as e:-第二种异常类型处理-except:-其他的异常类型处理 else:如果没发生任何异常则执行这里-finally:12.3.2 PyMySQL基本操作12.3.2.1新增、删除、更新记录操作 通过connection对象的cursor。方法获取游标cursor对象的各 种方法实现数据库记录的新增、删除与更新;新增记录SQL语句一”INSERT INTOUserList(userlD,userName,userPassword,userAge)VAL UES(,1,J,zheng,J,12

14、3,J20),1,n,删除记录SQL语句一 updatesql=UPDATE UserList SET userAge=userAge+1 WHERE userName=zheng更新记录SQL语句一 deletesql=DELETE FROM UserList WHERE userName=zhena,n 新增记录示例:import pymysql connection=pymysqLConnect(host=localhostf,port=3306,user=python;passwd=123456,dbUserlnfo1)cursor=connection.cursor()inserts

15、ql=INSERT INTOUserList(userlD,userName,userPassword,userAge)VAL UES(T;zheng7123,20)try:cursor.execute(insertsql)mit()except Exception as e:connection.rollback()print(e)finally:connection,close().七3 MySQ矮系数据库操作 12.3.2 PyMySQL基本操作12.323查询记录操作相对于新增、修改和删除而言,数据库的查询操作比较复杂,主要体现在对查询结果的处理上,在实际使用过程中可以 通过curso

16、r的相关属性和方法实现对结果集的获取和处理。请 参考下面示例程序;查询记录示例:import pymysql connection=pymysql.Connect(host=localhost,port=3306,user=root,passwd=n,db=Userlnfo)cursor=connection.cursor()selectsql=SELECT*FROM UserLisCn,try:cursor.execute(selectsql)resultSet=cursor.fetchall()for data in resultSet:userID=dataO userName=data

17、1 userPassword=data2 userAge=data3 print(userlD+userName+userPassword+str(userAge)except Exception as e:print(e)finally:connection.close()b12.4 SQLite数据库与操作 124.1 SQUte介绍与安装 SQLite 介绍 SQUte是一个软件库,实现了自给自足的、无服务器的、零 配置的、事务性的SQL数据库引擎,它的数据库就是一个文 件,SQUte直接访问其存储文件。与关系数据库进行交互的标准SQUte命令类似于SQL,包括 CREATE.SELEC

18、T.INSERT.UPDATE.DELETE和 DROP,但是在SQLite中,并不完整支持SQL92特性,比如 ALTER TABLE命令,只是支持 RENAME TABLE 和 ALTER TABLE 的 ADD COLUMN variants 命令,不支持 DROP COLUMN、ALTER COLUMN.ADD CONSTRAINTo12.4 SQLite数据库与操作 124.1 SQUte介绍与安装 SQLite 安装 1、进入到http:sqMe-tools-win32-*.zip 和 sqlite-dll-win32-*.zip 两个压缩文件。www.sqlite.org/dow

19、nload.html页面下载 2、在某个系统盘创建相关文件夹,比如E:SQUte,然后将以 上两个文件夹解压缩得到E:SQLite,如果sqlite-tools-win32-二zip解压缩后存在子文件夹,则将该子文件夹内的文件复制到 E:SQLite,这样在E:SQUte将得到sqMe3.def、sqlite3.dll Iite3.exe sqldiff.exe sqlite3_analyzer.exe五个文件。将添加E:SQLite到PATH环境变量,最后在命令提示符,使用sqlite3命令,将显示如下结果,表明SQUte安装正sql下确C:Misers MJ ipsqlite3SQLite

20、 uei-s Ion 3.21.0 20 1 7-1 0-24 1 8=55=49Enter-he Ip*f oi*usage hints._Connected to a-Use-open FILENAME七。reopen on a.pe rs is tent database-12.4 SQLite数据库与操作 124.1 SQUte介绍与安装 SQLite基本操作 SQLite命令形式-第一种是在cmd命令行中执行的命令,比如sqlite3.exe命令;-第二种是进入sqlite环境后的“点命令”,比如.help,该种命令 以开始,结尾没有“;”;-第三种是对数据进行操作的命令,比如sel

21、ect,该种命令结尾必 须以”结束。12.4 SQLite数据库与操作 124.1 SQUte介绍与安装 SQLite基本操作 SQUte命令:创建和打开数据库-创建数据库命令:sqlite3数据库名-创建成功后会进入至Usqlite操作环境-在该环境中,通过“.database”查看已有的数据库,通过“.quit”退出该环境-再次输入“sqlite3 e:sqlitedemo.db”则会进入该已创建的数据库 中 m C:Windowssystem32cmd.exe-sqlite3 Userlnfo.dbE:SQLiteXsQlite3 Userlnfo.dblSQLite version 3

22、.21.0 20 1 7-1 0-24 1 8:55:49Enter.help page hints.sqlite -databasemain:E:SQLite7JserInfo.db sqlite&12.4 SQLite数据库与操作 124.1 SQUte介绍与安装 SQLite基本操作 SQUte命令:创建表-SQLite使用CREATE TABLE语句在任何给定的数据库创建一个新 表,创建基本表需要涉及到命名表、定义列及每一列的数据类型 O基本语法如下:-CREATE TABLE table_name(-column 1 datatype PRIMARY KEY(one or more

23、columns),-column2 datatype,12.4 SQLite数据库与操作 124.1 SQUte介绍与安装 SQLite基本操作 SQUte命令:表基本操作新增、查询、删除、更新表数据记录-在SQUte环境中,表数据记录的基本操作与其他关系数据库的操作差别不大。-新增数据记录语句:-INSERT INTO TABLE_NAME(columnl,column2,column3,.columnN)-VALUES(value 1,value2,value3,.valueN);-删除数据记录语句:-DELETE FROM table_name WHERE condition;-更新表数

24、据记录语句:-UPDATE table_name-SET column 1=valuel,column2=value2.,columnN=valueN-WHERE condition;-查询表数据记录语句:-SELECT column 1,column2,columnN FROM table_name where condition;12.4 SQLite数据库与操作 12.4.2 SQLite-Python接口及操作当采用Python操作SQUte时也需要一个面向SQUte的数据库 引擎的数据库接口,pysqlite即为一个面向Python编程的DB-API接口,它让一切对于SQUte的操作

25、都变得异常简单。从Python2.5起,pysqlite成为Python的一个标准模块,在使用 时,它被简称为sqlite3模块。12.4 SQLite数据库与操作 12.4.2 SQUte-Python接口及操作 Python中操作SQUte数据库过程(1)用541心30的6戊(“1156013”)创建数据库连接,假设返回 的连接对象为conn;(2)使用conn.cursor。方法创建游标对象cursor;(3)基于cursor对象执行各种操作。如果该数据库操作不需 要返回结果,就直接用cursor.execute(sql)执行sql语句,根据 数据库事务隔离级别的不同,可能修改数据库需要

26、 mit;如果需要返回查询结果则用conn,cursor创建 游标对象cur,通过cursor.execute查询数据库,用cur.fetchall/cur.fetchone/cur.fetchmany 返回查询结果;(4)关闭cursor,conn对象。12.4 SQLite数据库与操作 124.2 SQUte-Python接口及操作 Python中操作SQLite数据库示例-请具体源码请参考课本examl 2-5.py12.5本章小结 1.数据库:数据库(Database)是按照数据结构来组织、存储和管理数据 的建立在计算机存储设备上的仓库,用户可以对其中的数据进行新增、查询、更新、删除等

27、操作;2.DB-API:DB-API是一个规范,它定义了一些列必须的对象和数据库 存取方式,可以为各种不同的数据库接口程序提供一致的访问接口,使 得在不同的数据库之间移植代码成为一件轻松的事情。3.游标:游标对象允许用户执行数据库的相关命令以及获取到查询结果 o 常见的游标的方法有execute。,fetchone(),fetchall()等。4.PyMySQL是一个支持python3.x操作MySQL数据库的数据库操作包,其基于DB-API规范,用户通过该包可以方便操作MySQL数据库。5.SQLite是一个软件库,实现了自给自足的、无服务器的、零配置的、事务性的SQL数据库引擎,在小型或者嵌入式应用系统上目前受到广泛 的使用。sqlite3提供了与DB-API2.0规范兼容的SQL接口,目前已经集 成在Python安装包里面,用户可以直接使用sqlite3包实现对SQLite数据 库的各种操作。

展开阅读全文
相似文档                                   自信AI助手自信AI助手
猜你喜欢                                   自信AI导航自信AI导航
搜索标签

当前位置:首页 > 通信科技 > 数据库/数据算法

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        获赠5币

©2010-2024 宁波自信网络信息技术有限公司  版权所有

客服电话:4008-655-100  投诉/维权电话:4009-655-100

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :gzh.png    weibo.png    LOFTER.png 

客服