“ 本文通过简单示例引入了Python中对数据库的基本增删查改操作,供读者学习了解Python中如何对数据库进行操作,具体复杂操作还需自行学习各类数据库语法。“
PS:“ 本文适用于初学Python数据库操作新手学习。 ”
- 博主每篇文章的注释都是干货!每个代码段都有详细注释,一定要认真看注释!!!
数据库连接基本框架
-
步骤:
-
连接数据库
-
取得游标
-
执行语句
-
释放游标
-
关闭数据库
- 一定要认真看注释!!!
# sqlite框架
import sqlite3
conn = sqlite3.connect('demos.db') # 连接数据库,没有则自动建立
cursor = conn.cursor() # 取得游标
sql = 'create table user(id int(8) primary key, name varchar(50))' # sql语句创建表单
cursor.execute(sql) # 执行sql语句
cursor.close() # 释放游标
conn.close() # 关闭连接
数据库写入
- 核心
- sql语句定义
- sql语句execute()
- 写入(删除、修改)数据要commit()
- 一定要认真看注释!!!
# 创建两组数据[(18, 'yushiba'), (19, 'yushi')]
import sqlite3
conn = sqlite3.connect('demos.db')
cursor = conn.cursor()
sql0 = 'create table user(id int(8) primary key, name varchar(50))' # sql创建表单
sql1 = "insert into user(id,name) values ('18','yushiba')" # sql语句,注意保持id唯一性
sql2 = "insert into user(id,name) values ('19','yushi')"
cursor.execute(sql0) # 执行语句
cursor.execute(sql1)
cursor.execute(sql2)
cursor.close()
conn.commit() # 写入数据sql1得有提交commit
conn.close()
数据库查找并打印
- 核心
- sql语句定义
- sql语句执行
- 游标保存结果fetchall()
- 一定要认真看注释!!!
# 读取并打印
# 预期结果:[(18, 'yushiba'), (19, 'yushi')]
import sqlite3
conn = sqlite3.connect('demos.db')
cursor = conn.cursor()
sql = 'select * from user' # *代表全选
cursor.execute(sql)
result = cursor.fetchall() # 游标保存所有结果
print(result)
cursor.close()
conn.close()
# 打印结果见下图
数据库的修改
- 核心
- sql语句定义
- sql语句执行
- 写入(删除、修改)数据要commit()
- 一定要认真看注释!!!
# 更新数据库中的数据id=19的name:'yushi',改为'yu'
# 预期结果[(18, 'yushiba'), (19, 'yu')]
import sqlite3
conn = sqlite3.connect('demos.db')
cursor = conn.cursor()
sql = "update user set name='yu' where id=19" # 更新数据
cursor.execute(sql)
sql = 'select * from user' # 全选数据保存
cursor.execute(sql)
result = cursor.fetchall() # 保存所有结果
print(result)
cursor.close()
conn.commit() # 有数据改动就要提交commit
conn.close()
# 打印结果见下图
数据库的删除
- 核心
- sql语句定义
- sql语句执行
- 写入(删除、修改)数据要commit()
- 一定要认真看注释!!!
# 删除id=19的元素
# 原数据:[(18, 'yushiba'), (19, 'yu')]
# 预期结果:(18, 'yushiba')
import sqlite3
conn = sqlite3.connect('demos.db')
cursor = conn.cursor()
sql = "delete from user where id=19" # 删除id=19的元素
cursor.execute(sql)
sql = 'select * from user'
cursor.execute(sql)
result = cursor.fetchall()
print(result)
cursor.close()
conn.commit()
conn.close()
# 输出结果见下图
数据库标准框架
# 预置数据:[(18, 'yushiba')]
# 预期结果:[(18, 'yu')]
import sqlite3
conn = sqlite3.connect('demos.db')
cursor = conn.cursor()
# 结合异常处理,因为数据库要关闭
# 没有下列程序则如果程序出错,数据库将没有关闭
try:
sql = "update user set name='yu' where id=18" # 更新数据
cursor.execute(sql)
sql = 'select * from user'
cursor.execute(sql)
result = cursor.fetchall()
print(result)
conn.commit() # 有数据改动就要提交commit
except Exception as e:
conn.rollback() # 数据库的回滚
finally: # 关闭游标和连接
cursor.close() # 关闭
conn.close()
核心总结
-
连接数据库→取得游标→执行语句→释放游标→关闭数据库
-
sql语句定义后执行execute
-
游标保存cursor.fetchall()
-
写入(删除、修改)数据要conn.commit()
-
结合程序异常处理
“知行合一。”
——Created By 是羽十八ya



