内容正文:
专题十七 sqlite3数据库
Python程序设计
1
考纲解读
一
1.了解数据库编程接口规范
2.了解sqlite3数据库的特点
3.熟记数据库操作的基本步骤
4.掌握数据表的创建
5.掌握数据表的数据添加、修改、查询、删除的操作
6.掌握删除表的操作
7.了解数据操作定义
知识点梳理-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()
数据表的操作
9
知识点梳理-插入数据
二
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()方法用于回滚事务,撤销尚未提交的更改。
归纳小结
四
谢谢观看
26
$$