专题十七 sqlite3数据库(讲义)-《Python程序设计》职教高考备考讲练测(安徽省)

2025-04-01
| 11页
| 98人阅读
| 0人下载
精品

资源信息

学段 中职
学科 职教专业课
课程 程序设计基础
教材版本 -
年级 -
章节 -
类型 教案-讲义
知识点 面向对象程序设计,异常
使用场景 中职复习
学年 2025-2026
地区(省份) 安徽省
地区(市) -
地区(区县) -
文件格式 DOCX
文件大小 279 KB
发布时间 2025-04-01
更新时间 2025-04-01
作者 PythonStudy
品牌系列 上好课·一轮讲练测
审核时间 2025-04-01
下载链接 https://m.zxxk.com/soft/51368239.html
价格 3.00储值(1储值=1元)
来源 学科网

内容正文:

专题十七 sqlite3数据库 [考纲要求] 1.了解数据库编程接口规范 2.了解sqlite3数据库的特点 3.熟记数据库操作的基本步骤 4.掌握数据表的创建 5.掌握数据表的数据添加、修改、查询、删除的操作 6.掌握删除表的操作 7.了解数据操作定义 [课时安排] 2课时 [知识梳理] Python数据库应用接口 Python自带了一个称为DB-API的数据库编程接口规范,它定义了一套数据库编程接口标准,使得开发者可以使用统一的方法来连接和操作不同类型的数据库。目前最新的版本是PEP 249,该规范定义了一系列的接口和行为,使得Python程序能够方便地与数据库进行交互。 Sqlite3模块 SQLite 是一款轻量级、无需安装、零配置的嵌入式关系数据库。Python 自带 sqlite3 库,无需额外安装。以下是一个简单的 sqlite3 使用示例。 下面是创建sqlite3数据库的整体流程: 步骤 描述 1 导入 sqlite3 模块 2 连接数据库 3 创建游标对象 4 执行 SQL 语句 5 提交更改 6 关闭游标 7 关闭数据库连接 数据库操作的基本步骤 步骤一:导入sqlite3模块 首先,我们需要导入python的sqlite3模块,以便使用其中的函数和类。可以使用以下代码实现: import sqlite3 步骤二:连接数据库 在创建数据库之前,我们需要先连接到一个已经存在的数据库或者创建一个新的数据库。可以使用以下代码来连接数据库: # 连接到数据库,如果数据库不存在,将创建一个新的数据库 conn = sqlite3.connect('example.db') 在上面的代码中,我们使用connect()函数来连接到一个名为example.db的数据库。如果数据库不存在,将会创建一个新的数据库。你可以根据自己的需求更改数据库名称。 步骤三:创建游标对象 一旦成功连接到数据库,我们需要创建一个游标对象,以便执行SQL语句。游标对象允许我们在数据库上执行查询和操作。可以使用以下代码创建游标对象: # 创建游标对象 cursor = conn.cursor() 步骤四:执行SQL语句 在创建游标对象之后,我们可以使用该对象执行各种SQL语句。可以使用以下代码来创建一个表: # 执行SQL语句,创建一个表 cursor.execute('''CREATE TABLE stocks ( date text, trans text, symbol text, qty real, price real)''') 在上面的代码中,我们使用execute()方法执行了一个SQL语句,创建了一个名为stocks的表。表中包含了date、trans、symbol、qty和price这些列。 步骤五:提交更改 在执行完SQL语句后,我们需要提交更改以确保数据的持久化。可以使用以下代码提交更改: # 提交更改 conn.commit() 在上面的代码中,我们使用commit()方法来提交更改。 步骤六:关闭游标(可选项) cursor.close( ) 步骤七:关闭数据库连接 在完成对数据库的操作后,我们需要关闭数据库连接。可以使用以下代码关闭数据库连接: # 关闭数据库连接 conn.close() 在上面的代码中,我们使用close()方法来关闭数据库连接。 总结 通过以上步骤,我们可以在python中创建和操作sqlite数据库。首先,我们导入sqlite3模块,然后连接到数据库,创建游标对象,执行SQL语句,提交更改,最后关闭游标、关闭数据库连接。 数据表的创建 数据表的创建 import sqlite3 # 连接数据库(如果不存在,将自动创建) conn=sqlite3.connect('sqlite_example.db') # 创建游标 cursor=conn.cursor() # 创建users表 integer 整数 text 文本字符串 primary key 主键 autoincrement 自动增长 cursor.execute(""" create table if not exists users( id integer primary key autoincrement, name text not null, # not null 非空 age integer not null, email text # text 文本(类似于python的字符串) ) """) # 提交更改 conn.commit() # 关闭连接 conn.close() 数据表的操作 插入数据 import sqlite3 # 连接数据库(如果不存在,将自动创建) conn=sqlite3.connect('sqlite_example.db') # 创建游标 cursor=conn.cursor() # 插入数据 cursor.execute('insert into users values ("Tony",30,"tony@163.com")') # 提交更改 conn.commit() # 确定 # 关闭连接 conn.close() 总结:insert into 表名(字段1,字段2,…) values (数据1,数据2,…) 其中的(字段1,字段2,…)可以省略 查询数据 import sqlite3 # 连接数据库(如果不存在,将自动创建) conn = sqlite3.connect('sqlite_example.db') # 创建游标 cursor = conn.cursor() # 查询数据 cursor.execute("select * from users") # 获得查询的结果 result = cursor.fetchall() # fetchone 获取一条信息 for row in result: print(row) # 关闭连接 conn.close() 下面是查询数据的方式: SELECT * FROM student; -- 表示所有数据,查询 student 表中所有数据 SELECT id, score FROM student; -- 查询结果只显示 id, score 字段 SELECT score FROM student WHERE id = 1001; -- 查询成绩 - 查询 id 号为 1001 的成绩 SELECT * FROM student WHERE score = 80; -- 查询成绩为 80 的所有字段 SELECT * FROM student WHERE name = "张三"; -- 查询 name 字段为张三的所有信息 SELECT * FROM student WHERE name = "李四" AND score = 90; SELECT * FROM student WHERE score = 80 OR score = 90; -- 查询成绩为 80 或 90 的所有字段 SELECT * FROM student ORDER BY score DESC; -- 按照成绩降序排序 下面的两个查询方式需要了解 where 添加筛选条件 order by 按照什么字段来排序 总结: select * from users 查看所有数据 select (字段1,字段2,…) from users 查看字段1,字段2,…的数据 更新数据(修改数据) import sqlite3 # 连接数据库(如果不存在,将自动创建) conn = sqlite3.connect('sqlite_example.db') # 创建游标 cursor = conn.cursor() # 更新数据 cursor.execute("update users set age=31 where name='Tony'") # 提交更改 conn.commit() # 确定 # 关闭连接 conn.close() 总结: update 表名 set 字段名=新的值 where 条件 如: update users set age=31 where name='Tony' 删除数据 import sqlite3 # 连接数据库(如果不存在,将自动创建) conn = sqlite3.connect('sqlite_example.db') # 创建游标 cursor = conn.cursor() # 删除数据 cursor.execute("delete from users where id=1") # 提交更改 conn.commit() # 关闭连接 conn.close() 总结: delete from 表名 where 条件 如: delete from users where id=1 删除表操作 drop table 表名; 如:drop table users; 数据操作定义 在SQL中,数据定义语言(DDL)、数据查询语言(DQL)、数据操纵语言(DML)和数据控制语言(DCL)是四种主要的操作类型。每种语言都用于不同的目的,下面我将分别解释这四种语言及其用途: 1. 数据定义语言(DDL) 用途:用于定义数据库的结构,包括创建、修改和删除数据库对象。 主要操作: CREATE:创建数据库表、视图、索引等。 ALTER:修改数据库表结构,如添加或删除列。 DROP:删除数据库表、视图等。 TRUNCATE:删除表中的所有数据,但不删除表本身。 2. 数据查询语言(DQL) 用途:用于查询数据库中的数据。 主要操作: SELECT:查询数据。 3. 数据操纵语言(DML) 用途:用于管理数据库中的数据,包括插入、更新和删除数据。 主要操作: INSERT:向表中插入新数据。 UPDATE:更新表中的数据。 DELETE:从表中删除数据。 4. 数据控制语言(DCL) 用途:用于控制对数据库的访问权限,包括授予和收回权限。 主要操作: GRANT:授予用户访问权限。 REVOKE:收回用户的访问权限。 [限时练习] 1.在SQLite3数据库操作中,以下哪个步骤是确保数据持久化的关键操作? A. 导入sqlite3模块 B. 连接数据库 C. 提交更改 D. 关闭数据库连接 【答案】C 【解析】提交更改(conn.commit())是确保数据持久化的关键操作,只有提交更改后,数据才会被保存到数据库中。 2.在SQLite3中,执行SQL语句需要使用以下哪个对象? A. 数据库连接对象 B. 游标对象 C. 模块对象 D. 表对象 【答案】B 【解析】执行SQL语句需要使用游标对象(cursor),通过游标对象的execute()方法可以执行SQL语句。 3.在SQLite3中,以下哪个方法用于查询数据并获取所有结果? A. fetchone() B. fetchall() C. commit() D. close() 【答案】B 【解析】fetchall()方法用于获取查询结果中的所有行,而fetchone()方法仅获取下一行。 4.在SQLite3中,以下哪个SQL语句用于按照指定字段降序排列查询结果? A. SELECT * FROM table ORDER BY field ASC; B. SELECT * FROM table ORDER BY field DESC; C. SELECT * FROM table SORT BY field ASC; D. SELECT * FROM table SORT BY field DESC; 【答案】B 【解析】ORDER BY子句用于对查询结果进行排序,DESC表示降序排列,ASC表示升序排列。 5.在SQLite3中,以下哪个操作属于数据定义语言(DDL)? A. 插入数据 B. 更新数据 C. 删除数据 D. 创建表 【答案】D 【解析】数据定义语言(DDL)用于定义数据库的结构,包括创建、修改和删除数据库对象,如表、视图、索引等。创建表(CREATE TABLE)属于DDL操作。 6.在SQLite3中,以下哪个方法用于关闭数据库连接? A. disconnect() B. close() C. end() D. finish() 【答案】B 【解析】close()方法用于关闭数据库连接,释放资源。在完成对数据库的所有操作后,应该调用此方法以确保资源被正确释放。 7.在SQLite3数据库操作中,以下哪个步骤用于创建游标对象? A. 导入sqlite3模块 B. 连接数据库 C. 创建游标对象 D. 执行SQL语句 【答案】C 【解析】创建游标对象是通过调用数据库连接对象的cursor()方法来实现的,这一步骤是执行SQL语句的前提。 8.在SQLite3数据库操作中,以下哪个方法用于提交事务? A. commit() B. rollback() C. close() D. execute() 【答案】A 【解析】commit()方法用于提交事务,使对数据库的更改永久生效。rollback()方法用于回滚事务,撤销尚未提交的更改。 [归纳小结] 学科网(北京)股份有限公司 $$

资源预览图

专题十七 sqlite3数据库(讲义)-《Python程序设计》职教高考备考讲练测(安徽省)
1
专题十七 sqlite3数据库(讲义)-《Python程序设计》职教高考备考讲练测(安徽省)
2
专题十七 sqlite3数据库(讲义)-《Python程序设计》职教高考备考讲练测(安徽省)
3
所属专辑
由于学科网是一个信息分享及获取的平台,不确保部分用户上传资料的 来源及知识产权归属。如您发现相关资料侵犯您的合法权益,请联系学科网,我们核实后将及时进行处理。