《Python程序设计》教学课件—08数据库操作

上传人:sat****105 文档编号:290120207 上传时间:2022-05-09 格式:PPTX 页数:44 大小:1.63MB
返回 下载 相关 举报
《Python程序设计》教学课件—08数据库操作_第1页
第1页 / 共44页
《Python程序设计》教学课件—08数据库操作_第2页
第2页 / 共44页
《Python程序设计》教学课件—08数据库操作_第3页
第3页 / 共44页
《Python程序设计》教学课件—08数据库操作_第4页
第4页 / 共44页
《Python程序设计》教学课件—08数据库操作_第5页
第5页 / 共44页
点击查看更多>>
资源描述

《《Python程序设计》教学课件—08数据库操作》由会员分享,可在线阅读,更多相关《《Python程序设计》教学课件—08数据库操作(44页珍藏版)》请在金锄头文库上搜索。

1、PythonPython支持许多数据库类型,包括支持许多数据库类型,包括SQLiteSQLite、MySQLMySQL、SQL SeverSQL Sever等,它们基本都遵守等,它们基本都遵守PythonPython的的DB APIDB API协议。本章介绍在协议。本章介绍在PythonPython中访问中访问SQLiteSQLite、SQL SeverSQL Sever数据库的操作。数据库的操作。第8章 数据库操作目录第第8 8章章 数据库数据库操作操作8.1 Python8.1 Python操作数据库的一般步骤操作数据库的一般步骤8.2 8.2 访问访问SQLiteSQLite数据库数据库

2、 8.2.1 8.2.1 连接数据库连接数据库 8.2.2 8.2.2 创建游标对象创建游标对象 8.2.3 8.2.3 执行执行SQLSQL数据操作数据操作 8.2.4 8.2.4 应用实例应用实例8.3 8.3 访问访问SQL ServerSQL Server数据库数据库 8.3.1 8.3.1 安装安装pymssqlpymssql库库 8.3.2 8.3.2 访问数据库访问数据库 8.3.3 8.3.3 应用实例应用实例8.4 8.4 习题习题8.1 Python8.1 Python操作数据库的一般步骤操作数据库的一般步骤Python标准数据库接口为Python DB-API。操作数据库

3、的一般步骤如下:1)导入数据库模块。2)利用数据库模块提供的connect()方法创建数据库连接对象,例如连接对象为conn。3)调用数据库连接对象的conn.cursor()方法创建游标对象,例如游标对象cur。4)调用游标对象的cur.execute()方法或连接对象的conn.execute()方法执行SQL语句(包括DDL、DML、select查询语句等)。如果执行的是查询语句,则处理查询数据。5)如果修改了数据,要调用数据库连接对象的mit()方法提交当前数据库事务。6)调用游标对象的cur.close()方法关闭游标对象。7)调用连接对象的conn.close()方法关闭数据库连接

4、对象。8.2 8.2 访问访问SQLiteSQLite数据库数据库8.2.1 连接数据库1. 导入sqlite3模块使用import语句导入sqlite3模块,其代码如下:from sqlite3 import *或import sqlite32. 创建(打开)数据库连接对象使用sqlite3模块的connect()方法,创建一个表示数据库的连接对象,打开或创建一个数据库,语法格式如下:conn=connect(database.db)或conn=sqlite3.connect(database.db)【例8-1】在D:中创建一个SQLite数据库,文件名为student_info.db。fr

5、om sqlite3 import * # 导入SQLite的sqlite3模块conn=connect(d:student_info.db) # 打开或创建数据库连接对象if conn: print(SQLite数据库连接成功!)conn.close()运行程序,显示如下:SQLite数据库连接成功!8.2 8.2 访问访问SQLiteSQLite数据库数据库8.2.2 创建游标对象1. 游标对象创建数据库的连接对象后,就可以使用Python DB-API的标准方法,调用数据库连接对象的cursor()方法创建Cursor(游标)对象,语法格式如下:cur=conn.cursor()conn

6、是已经创建的连接对象名。执行conn.cursor()方法返回一个游标对象,一般把游标对象赋值给一个变量,例如cur。2. 游标对象的方法和属性游标对象主要用于执行各种SQL语句,包括DDL、DML、select查询语句等。使用游标对象执行不同的SQL语句返回不同的数据。游标对象的方法和属性见表8-1和表8-2。8.2 8.2 访问访问SQLiteSQLite数据库数据库8.2 8.2 访问访问SQLiteSQLite数据库数据库8.2 8.2 访问访问SQLiteSQLite数据库数据库8.2.3 执行SQL数据操作1. 执行SQL语句(1)调用游标对象的execute()方法调用cur.e

7、xecute()方法执行一个SQL语句,其语法格式如下:cur.execute(sql, params)SQLite中常用的SQL语句如下。1)CREATE TABLE:在数据库中创建表。2)DROP TABLE:从数据库中删除表。3)INSERT INTO:向表中添加记录。4)UPDATE:修改表中的一条或多条记录。5)DELETE:从表中删除一条或多条记录。6)SELECT:从表中返回一些记录。(2)调用游标对象的executemany()方法执行多条SQL语句使用executemany()方法,其语法格式如下:executemany(sql, seq_of_parameters)8.2

8、8.2 访问访问SQLiteSQLite数据库数据库2. 提交当前数据库事务提交当前数据库事务,其语法格式如下:mit()3. 关闭游标对象完成所有数据库操作后,应使用游标对象的close()方法关闭游标,语法格式如下:cur.close()4. 回滚回滚rollback()方法的语法格式如下:conn. rollback()5. 关闭数据库连接关闭数据库连接的语法格式如下:conn.close()conn.close()是必需的,否则Python程序会一直占用这个数据库。8.2 8.2 访问访问SQLiteSQLite数据库数据库8.2.4 应用实例1. 定义表CREATE TABLE语句的

9、基本语法格式如下:CREATE TABLE IF NOT EXISTS 表名( 列1 数据类型 PRIMARY KEY(单个列或多个列), 列2 数据类型, , 列n 数据类型)IF NOT EXISTS选项判断如果表不存在,则创建表,否则不创建表。列元组由多个列的定义组成,列之间用逗号分隔。每个定义列包含列名、数据类型、可空性(NULL)以及其他列属性(如主键PRIMARY KEY等)。数据类型可以是:INTEGER(整型数)、REAL(浮点数)、TEXT(文本)、BLOB(大二进制对象)等数据类型。8.2 8.2 访问访问SQLiteSQLite数据库数据库【例8-2】在SQLite数据库

10、student_info.db中创建一个student表,该表包含的列有:id(学号)、name(姓名)、gender(性别)、birthday(出生日期)、phone(手机号码),把id列设置为主键,除phone列外,其他列均不能为空。from sqlite3 import * # 导入sqlite3模块conn=connect(d:student_info.db) # 创建数据库连接对象cur=conn.cursor() # 创建游标对象# 创建表的SQL语句sql=CREATE TABLE IF NOT EXISTS student( id TEXT(10) PRIMARY KEY NO

11、T NULL, name TEXT(10) NOT NULL, gender TEXT(1) NOT NULL, birthday DATE NOT NULL, phone TEXT(20)cur.execute(sql) # 执行SQL语句创建数据表mit() # 提交事务cur.close() # 关闭游标对象conn.close() # 关闭连接对象8.2 8.2 访问访问SQLiteSQLite数据库数据库运行程序后发现看不到运行结果。由于SQLite 3不是可视化的,通常借助于第三方数据库管理工具来查看数据库,例如使用SQLiteManager、Navicat Premium等。例如

12、,在SQLiteManager中打开student_info.db数据库,查看其表结构,如图8-2所示。8.2 8.2 访问访问SQLiteSQLite数据库数据库2. 添加记录使用INSERT INTO语句向数据库的指定表中添加新的记录行,其基本语法格式如下:INSERT INTO 表名(列1, 列2, , 列n) VALUES(值1, 值2, , 值n)如果要为表中的所有列添加值,可以不在语句中指定列名,但要确保值顺序与表中列的顺序一致,此时INSERT INTO语句写成以下形式:INSERT INTO 表名 VALUES(值1, 值2, , 值n)【例8-3】连接到SQLite数据库st

13、udent_info.db,在student表中输入记录。from sqlite3 import * # 导入sqlite3模块conn=connect(D:student_info.db) # 创建数据库连接对象cur=conn.cursor() # 创建游标对象sql=INSERT INTO student VALUES(2020010108, 张三, 男, 2001-1-3, 13501024455)cur.execute(sql) # 执行SQL语句sql=INSERT INTO student VALUES(2020010107, 李四, 女, 2000-10-21, 1350203

14、1234)cur.execute(sql) # 执行SQL语句sql=INSERT INTO student VALUES(2020010121, 王五, 男, 2001-8-12, 13503782363)cur.execute(sql) # 执行SQL语句mit() # 提交事务cur.close() # 关闭游标对象conn.close() # 关闭连接对象8.2 8.2 访问访问SQLiteSQLite数据库数据库运行程序,在SQLiteManager中打开student_info.db数据库,查看表的数据记录,如图8-3所示。8.2 8.2 访问访问SQLiteSQLite数据库数据

15、库【例8-4】连接到SQLite数据库student_info.db,在student表中输入3条记录。使用cur.execute()方法一次只能执行一条SQL语句,使用cur.executemany()方法一次可以执行多条SQL语句,实现批量添加记录。from sqlite3 import * # 导入sqlite3模块conn=connect(D:student_info.db) # 创建数据库连接对象cur=conn.cursor() # 创建游标对象sql=INSERT INTO student VALUES(?, ?, ?, ?, ?)data=(2020010132,钱七,男,20

16、01-4-17,13102026655), (2020010133,孙八,女,2000-9-25,13013023344), (2020010134,周九,女,2001-6-29,13701337788)cur.executemany(sql, data) # 重复执行SQL语句print(添加的记录条数:, cur.rowcount) # 通过rowcount属性获取添加的记录条数mit() # 提交事务cur.close() # 关闭游标对象conn.close() # 关闭连接对象运行程序,显示如下:添加的记录条数: 38.2 8.2 访问访问SQLiteSQLite数据库数据库在SQLiteManager中打开student_info.db数据库,查看表的数据记录,如图8-4所示。8.2 8.2 访问访问SQLiteSQLite数据库数据库【例8-5连接到SQLite数据库student_info.db,用交互方式输入记录。对例8-3的SQL语句中用到的参数使用问号(?)占位符表示,有几个问号占位符就必须有几个参数。from sqlite3 import * # 导入SQLit

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

当前位置:首页 > 高等教育 > 大学课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号