Python学习之 SQLite 基本操作

关于数据库的知识相关知识,可以点击参考数据库系统概论

一、基础知识

  1. connect 方法
    为了使用底层的数据库系统,首先需要连接它。这时需要在适当地环境下使用具名函数 connect 。
    connect 函数返回连接对象,这个对象标识目前与数据库的回话
    连接对象支持的方法:
方法名描述
close()关闭连接后,连接对象和它的游标均不可用
commit()如果支持的话,就提交挂起的事务,否则不做任何事
rollback()回滚挂起的事务
cursor()返回连接的游标对象

cursor 方法将我们引入另外一个主题:游标对象
2. 游标对象
通过游标执行 SQL 查询并检查结果,游标比连接支持更多的方法,而且可能在程序中更好用
游标对象方法:

名称描述
close()关闭游标后,游标不可用
execute()执行一个SQL操作,可能带有参数
executemany()对序列中的多个参数集执行SQL操作
fetchone()把查询的结果集中的下一行保存为序列,或者 None
fetchmany()查询结果集中的多行
fetchall()将所有(剩余)的行为作为序列的序列
  1. SQLite
    小型的数据库引擎 SQLite 不需要作为独立的服务器运行,也不基于集中式数据库存储机制,可以在本地文件上运行。
    同时它的一个优势在于它的一个包装(PySQLite)已经被包括在标准库内,可以直接使用

二、基本操作

  1. 新建数据库
import sqlite3
# 如果 test.db 不存在的话,会自动创建数据库 test.db
conn = sqlite3.connect("test.db")
# 获取连接的游标
c = conn.cursor()
# 执行SQL语句
sql = '''create table student
            (id int primary key ,score int,sex varchar(20),age int)'''
c.execute(sql)
# 进行提交,从而能将这些修改保存到文件中
conn.commit()
# 准备关闭数据库
conn.close()
  1. 插入数据
    一次插入多个数据时,存在问题
import sqlite3
# 如果 test.db 不存在的话,会自动创建数据库 test.db
conn = sqlite3.connect("test.db")
# 获取连接的游标
c = conn.cursor()
# 执行SQL语句
students = [(1,80,'male',18),
            (2,70,'male',19),
            (3,60,'male',20),
            (4,50,'male',21)
            ]
# 第一种:execute "INSERT"
c.execute("insert into student(id,score,sex,age) values (0,90,'female',17)")
# 第二种:execute multiple commands,一次性插入多个值有问题
# c.execute("insert into student values (?,?,?,?)",students)
# 第三种,如果属性列的次序和表中的次序一致,不需要在指定属性名
c.execute("insert into student values (5,40,'female',22)")

# 进行提交,从而能将这些修改保存到文件中
conn.commit()
# 准备关闭数据库
conn.close()
  1. 查询记录
import sqlite3
# 如果 test.db 不存在的话,会自动创建数据库 test.db
conn = sqlite3.connect("test.db")
# 获取连接的游标
c = conn.cursor()
# 第一种,获得一个记录
sql = "select * from student order by score desc "
c.execute(sql)
print(c.fetchone())
print(c.fetchone())

# 第二种,获得一个包含所有记录的列表
sql = "select * from student order by age"
c.execute(sql)
print(c.fetchall())
# 按记录输出打印
rs = c.execute(sql)
for row in rs:
    print(row)

# 进行提交,从而能将这些修改保存到文件中
conn.commit()
# 准备关闭数据库
conn.close()
  1. 修改
import sqlite3
# 如果 test.db 不存在的话,会自动创建数据库 test.db
conn = sqlite3.connect("test.db")
# 获取连接的游标
c = conn.cursor()

sql = "update student set score=100 where id = 5"
c.execute(sql)

sql = "select * from student where id =5"
c.execute(sql)
print(c.fetchone())
# 进行提交,从而能将这些修改保存到文件中
conn.commit()
# 准备关闭数据库
conn.close()
  1. 删除
import sqlite3
# 如果 test.db 不存在的话,会自动创建数据库 test.db
conn = sqlite3.connect("test.db")
# 获取连接的游标
c = conn.cursor()

sql = "delete from student where id =2"
c.execute(sql)

# 进行提交,从而能将这些修改保存到文件中
conn.commit()
# 准备关闭数据库
conn.close()
  1. 删除数据库表
import sqlite3
# 如果 test.db 不存在的话,会自动创建数据库 test.db
conn = sqlite3.connect("test.db")
# 获取连接的游标
c = conn.cursor()

c.execute("drop table student ")
# 进行提交,从而能将这些修改保存到文件中
conn.commit()
# 准备关闭数据库
conn.close()
  • 0
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

南淮北安

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值