单元8 数据库访问与使用 课件(共34张PPT)-《Python程序设计》同步教学(人民邮电版)

资源下载
  1. 二一教育资源

单元8 数据库访问与使用 课件(共34张PPT)-《Python程序设计》同步教学(人民邮电版)

资源简介

(共34张PPT)
单元8
数据库访问与使用
Python程序设计
知识入门
知识要点
1.下载与安装MySQL 2.创建与查看MySQL 服务器主机上的数据库 3.MySQL 命令提示符窗口中执行SQL 脚本文件 4.下载与安装pymysql 模块
1.下载与安装MySQL
参考附录3 介绍的方法,正确下载与安装MySQL。
2.创建与查看MySQL 服务器主机上的数据库
在Windows 命令提示符窗口的提示符“>”后输入命令“MySQL –u root –p”,按【Enter】键后,输入正确的密码,当提示符变为“MySQL>”时,表示已经成功登录MySQL 服务器。
(1)打开Windows 命令提示符窗口,登录MySQL 服务器
2.创建与查看MySQL 服务器主机上的数据库
在提示符“MySQL>”后面输入以下语句。
show databases;
按【Enter】键,执行以上语句,输出结果如图所示。
(2)查看MySQL 服务器主机上的初始数据库
(3)创建MySQL 数据库“eCommerce”
在提示符“MySQL>”后面输入以下创建数据库“eCommerce”的语句。
create database if not exists eCommerce character set UTF8;
执行该语句后,输出以下提示信息。
Query OK, 1 row affected, 1 warning (0.40 sec)
2.创建与查看MySQL 服务器主机上的数据库
在提示符“MySQL>”后面输入以下语句。
show databases;
按【Enter】键,执行该语句,输出结果如图所示。
在提示符后输入“quit”或“exit”命令即可退出MySQL,显示“Bye”的提示信息。
(4)再一次查看MySQL 服务器主机上的数据库
3.MySQL 命令提示符窗口中执行SQL 脚本文件
MySQL -h 服务器名称/ 服务器地址 –u 用户名称 -p 数据库名 < 完整路径的脚本文件>
例如MySQL -h localhost –u root -p eCommerce D:\PycharmProject\Unit08\product.sql 或者MySQL -h 127.0.0.1 –u root -p eCommerce D:\PycharmProject\Unit08\product.sql。
source < 完整路径的脚本文件> 或者 \. < 完整路径的脚本文件>
例如source D:\PycharmProject\Unit08\product.sql 或者\. D:\PycharmProject\Unit08\product.sql。
(1)在未连接数据库的情况下输入以下命令
(2)在已经连接数据库的情况下,在命令提示符“MySQL>”后输入以下语句
4.下载与安装pymysql 模块
pymysql 是Python 3 中用于连接MySQL 服务器的一个模块,Python 2 中则使用MySQLdb。pymysql 遵循Python 数据库API 2.0 规范,并包含了pure-Python MySQL 客户端模块。
在使用pymysql 之前,从github 网站下载Pymysql,并确保pymysql 已安装。
如果还未安装,可以使用以下命令安装最新版的pymysql。
pip install pymysql
循序渐进
知识要点
8.1 创建与使用SQLite数据表 8.1.1 创建SQLite数据库文件与数据表 8.1.2 操作SQLite数据库 【任务8-1】创建、新增、查询、删除SQLite数据表 【任务8-2】查询、更新、删除SQLite数据表中的数据 8.2 创建与使用MySQL数据表 8.2.1 连接MySQL数据库
8.2.2 创建MySQL数据表
8.2.3 MySQL数据表的插入操作
8.2.4 MySQL数据表的查询操作
8.2.5 MySQL数据表的更新操作
8.2.6 MySQL数据表的删除操作
【任务8-3】创建“books”数据表并显示数据表的结构信息
8.1.1 创建SQLite 数据库文件与数据表
由于Python 内置了sqlite3 模块,可以直接使用import 语句导入sqlite3 模块。Python 创建数据表的通用流程如下。
(1)使用connect() 方法创建连接对象。
(2)使用cursor() 方法获取游标对象。
(3)使用execute() 方法执行一条SQL 语句,创建数据表。
(4)使用游标对象的close() 方法关闭游标。
(5)使用连接对象的close() 方法关闭连接对象。
8.1.1 创建SQLite 数据库文件与数据表
【实例8-1】演示创建SQLite 数据库文件“dbtest.db”与数据表“teacher”的方法
实例8-1 的代码如下所示
提示
实例8-1 的代码如果成功运行过一次,再次运行时,会出现异常信息“sqlite3.OperationalError: table teacher already exists”,表示数据表“teacher”已经存在,不能创建同
名的数据表。
8.1.2 操作SQLite 数据库
1.在数据表中新增记录
向数据表中新增数据,可以使用如下SQL 语句。
insert into 数据表名称( 字段名1, 字段名2,…, 字段名n)
values( 字段值1, 字段值2,…, 字段值n )
向数据表中新增数据时,需要根据字段的数据类型正确赋值,否则新增记录会失败。
【实例8-2】演示向数据表“teacher”中新增3 条记录的方法
说明
实例8-2 的代码成功运行,即表示向数据表“teacher”中新增了3 条记录。
8.1.2 操作SQLite 数据库
2.查看数据表中的记录
查询SQLite 数据表中的数据可以使用如下SQL 语句。
select 字段名1, 字段名2,…, 字段名n from 数据表名称 where < 查询条件>
在select 查询语句中,使用问号“ ”作为占位符代替具体的字段值,然后使用一个元组来替换问号,如果元组中只有一个元素,该元素后面的逗号“,”不能省略。使用占位符的方式可以避免SQL 注入的风险。
例如,从数据表“teacher”中查询ID 大于2 的所有记录,可以使用以下SQL 语句。
sql="select * from teacher where ID> " , (2,)
上述语句等价于如下语句。
sql="select * from teacher where ID>2"
8.1.2 操作SQLite 数据库
【实例8-3】演示查询数据表“teacher”中记录的多种方法
实例8-3 的代码如下所示
运行结果
(1, ' 宁夏', ' 男', ' 汉族', ' 教授')
[(2, ' 郑州', ' 男', ' 汉族', ' 副教授')]
[(3, ' 叶丽', ' 女', ' 苗族', ' 讲师')]
8.1.2 操作SQLite 数据库
3.修改数据表中的记录
修改数据表中的数据可以使用如下SQL 语句。
update 数据表名称set 字段名= 字段值where < 查询条件>
【实例8-4】演示将数据表“teacher”中ID 为3 的name 字段值修改为“夏丽”
运行结果
[(3, ' 夏丽', ' 女', ' 苗族', ' 讲师')]
8.1.2 操作SQLite 数据库
4.删除数据表的记录
删除数据表中的记录可以使用如下SQL 语句。
delete from 数据表名称where < 查询条件>
【实例8-5】演示将数据表“teacher”中ID 为2 的记录删除
运行结果
[(1, ' 宁夏', ' 男', ' 汉族', ' 教授'), (3, ' 夏丽', ' 女', ' 苗族', ' 讲师')]
创建、新增、查询、删除SQLite 数据表
【任务8-1】
【任务描述】
(1)在PyCharm 中创建项目“Unit08”。
(2)在项目“Unit08”中创建Python 程序文件“t8-1.py”。
(3)自定义getInsertSql() 函数用于返回SQL 插入语句,自定义execInsert() 函数用于向数据表中插入多条记录。
(4)创建SQLite 数据库文件“电子商务.db”。
(5)如果SQLite 数据库“电子商务.db”中已存在“用户表”,先删除该数据表,然后重新创建数据表“用户表”,该数据表包括用户ID、用户编号、用户名称、密码4 个字段,各字段的数据类型及长度见程序文件“t8-1.py”中的代码。
(6)向数据表“用户表”中插入5 条记录。
(7)查询用户名称为“admin”、密码为“666”的记录。
【任务8-1】
01
【任务实施】
02
成功启动PyCharm 后,在指定位置“D:\PycharmProject\”创建PyCharm 项目“Unit08”
在PyCharm 项目“Unit08”中,新建Python 程序文件“t8-1.py”,PyCharm 窗口中显示程序文件“t8-1.py”的代码编辑区域,在该程序文件的代码编辑区域中自动添加了模板内容。
03
在文件“t8-1.py”的代码编辑区域中的已有模板注释内容下面输入代码,程序文件“t8-1.py”的代码如下所示。
【任务8-1】
04
【任务实施】
在PyCharm 窗口中选择【运行】菜单,在弹出的下拉菜单中选择【运行】命令。在弹出的【运行】对话框中选择【t8-1】选项,程序文件“t8-1.py”开始运行。程序文件“t8-1.py”的运行结果如下。
插入第 1 条记录,数据为: 1 2020011 admin 666
插入第 2 条记录,数据为: 2 2020012 better 888
插入第 3 条记录,数据为: 3 2020013 向前 123456
插入第 4 条记录,数据为: 4 2020014 寻找 123
插入第 5 条记录,数据为: 5 2020015 向好汉 1456
数据表“用户表”的记录数量: 5
查询、更新、删除SQLite 数据表中的数据
【任务8-2】
【任务描述】
(1)在项目“Unit08”中创建Python 程序文件“t8-2.py”。
(2)在程序文件“t8-2.py”中自定义多个函数:initDb() 函数用于创建数据库文件“电子商务.db”和一个游标对象;getSelectSql() 函数用于返回SQL 查询语句;getUserInfo() 函数用于获取包含指定用户名称和密码的记录数;getUpdateSql() 函数用于返回SQL 修改语句;getDeleteSql() 函数用于返回满足指定条件的SQL 删除语句。
(3)连接SQLite 数据库“电子商务.db”。
(4)从数据表“用户表”中查询符合指定条件的记录。
(5)将数据表“用户表”中用户ID 为“1”的记录对应的密码修改为“666”。
(6)删除数据表“用户表”中用户名称为“向前”的记录。
【任务8-2】
01
【任务实施】
02
在PyCharm 项目“Unit08”中,新建Python 程序文件“t8-2.py”,PyCharm 窗口中显示程序文件“t8-2.py”的代码编辑区域,在该程序文件的代码编辑区域中自动添加了模板内容。
在文件“t8-2.py”的代码编辑区域中的已有模板注释内容下面输入代码,程序文件“t8-2.py”的代码如下所示。
【任务8-2】
03
【任务实施】
在PyCharm 窗口中选择【运行】菜单,在弹出的下拉菜单中选择【运行】命令。在弹出的【运行】对话框中选择【t8-2】选项,程序文件“t8-2.py”开始运行。程序文件“t8-2.py”的运行结果如下。
“用户表”符合条件的查询结果记录数: 1
“用户表”符合条件的查询结果记录数: 1
“用户表”修改的记录数: 3
“用户表”删除的记录数: 4
循序渐进
知识要点
8.1 创建与使用SQLite数据表 8.1.1 创建SQLite数据库文件与数据表 8.1.2 操作SQLite数据库 【任务8-1】创建、新增、查询、删除SQLite数据表 【任务8-2】查询、更新、删除SQLite数据表中的数据 8.2 创建与使用MySQL数据表 8.2.1 连接MySQL数据库
8.2.2 创建MySQL数据表
8.2.3 MySQL数据表的插入操作
8.2.4 MySQL数据表的查询操作
8.2.5 MySQL数据表的更新操作
8.2.6 MySQL数据表的删除操作
【任务8-3】创建“books”数据表并显示数据表的结构信息
8.2.1 连接MySQL 数据库
在Windows 命令提示符窗口的提示符“>”后输入命令“MySQL –u root –p”,按【Enter】键后,输入正确的密码,当提示符变为“MySQL>”时,表示已经成功登录MySQL 服务器。
在连接数据库前,先创建一个数据库“testdb”,在提示符“MySQL>”后面输入以下创建数据库“testdb”的语句。
create database if not exists testdb;
接下来可以连接MySQL 数据库。
8.2.1 连接MySQL 数据库
【实例8-6】演示使用pymysql 的connect() 方法连接MySQL 数据库
实例3-5 的代码如下所示。
import pymysql
# 参数1 为主机名或IP ;参数2 为用户名;参数3 为密码;参数4 为数据库名称
conn = pymysql.connect("localhost", "root", "123456", "testdb")
# 使用cursor() 方法创建一个游标对象
cursor = conn.cursor()
# 使用execute() 方法执行SQL 查询
cursor.execute("Select Version()")
# 使用fetchone() 方法获取单条数据
data = cursor.fetchone()
print ("Database version :", data)
# 关闭数据库连接
conn.close()
Database version : ('8.0.19',)
运行结果
提示
在提示符“MySQL>”后面输入“exit”命令并按【Enter】键就可以退出MySQL。
8.2.2 创建MySQL 数据表
数据库连接成功以后,就可以在数据库中创建数据表了。创建数据表需要使用execute()方法。
【实例8-7】演示MySQL 数据表“student”的创建方法
运行结果
create table student
(
ID int(4) not null,
name varchar(30) not null,
sex varchar(2) not null,
nation varchar(30) null
);
8.2.3 MySQL 数据表的插入操作
使用insert 语句可以向数据表中插入记录。
【实例8-8】演示使用insert 语句向数据表“student”中插入记录
说明
实例8-8 的代码成功运行,则表示向数据表“student”中成功插入一条记录。
8.2.3 MySQL 数据表的插入操作
【实例8-9】演示使用带参数的insert 语句向数据表“student”中插入记录
说明
实例8-9 的代码成功运行,则表示使用带参数的insert 语句向数据表“student”中成功插入一条记录。
实例8-9 中使用“s%”作为占位符,防止SQL 注入,而参数值以元组形式传递给占位符。
8.2.4 MySQL 数据表的查询操作
在Python 中查询MySQL 数据表时,使用fetchone() 方法可获取数据表中的一条记录,使用fetchall() 方法可获取数据表中的多条记录。只读属性rowcount 可用于返回执行execute() 方法后影响的行数。
【实例8-10】演示从数据表“student”中查询所有男学生的记录
运行结果
序号 姓名 性别 民族:
1 张山 男 汉族
2 丁好 男 汉族
8.2.5 MySQL 数据表的更新操作
更新操作用于更新数据表中的数据。
【实例8-11】演示将数据表“student”中“丁好”的性别修改为“女”
实例8-11 的代码成功运行,则表示在数据表“student”中成功修改了数据。
说明
8.2.6 MySQL 数据表的删除操作
删除操作用于删除数据表中的数据。
【实例8-12】演示删除数据表“student”中姓名为“丁好”的记录
实例8-12 的代码成功运行,则表示从数据表“student”中成功删除了一条记录。
说明
创建“books”数据表并显示数据表的结构信息
【任务8-3】
【任务描述】
(1)在项目“Unit08”中创建Python 程序文件“t8-3.py”。
(2)连接已存在的MySQL 数据库“eCommerce”。
(3)在MySQL 数据库“eCommerce”中创建数据表“books”。
(4)输出数据表“books”的结构信息。
【任务8-3】
01
【任务实施】
在PyCharm 项目“Unit08”中创建Python 程序文件“t8-3.py”。在程序文件“t8-3.py”中编写代码,实现所需功能,程序文件“t8-3.py”的代码如下所示。
【任务8-3】
02
【任务实施】
程序文件“t8-3.py”的运行结果如下。
数据表中的记录数:0
数据的结构信息:(' 商品ID', 3, None, 8, 8, 0, False)
数据的结构信息:(' 商品编号', 253, None, 48, 48, 0, False)
数据的结构信息:(' 图书名称', 253, None, 200, 200, 0, False)
数据的结构信息:(' 价格', 246, None, 10, 10, 2, True)
数据的结构信息:('ISBN', 253, None, 52, 52, 0, False)
数据的结构信息:(' 作者', 253, None, 120, 120, 0, True)
数据的结构信息:(' 出版社', 253, None, 48, 48, 0, True)
数据的结构信息:(' 出版日期', 253, None, 40, 40, 0, True)
数据的结构信息:(' 版次', 3, None, 1, 1, 0, True)
数据表的字段名:商品ID, 商品编号, 图书名称, 价格,ISBN, 作者, 出版社, 出版日期, 版次
THANKS

展开更多......

收起↑

资源预览