资源简介 (共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 展开更多...... 收起↑ 资源预览