Python——SQL ite数据库编程

AI 时代程序员必备技能

Codex、Claude Code、Cursor、Hermes Agent、OpenClaw等工程化实战专栏 ,讲透 AI 如何接管脏活累活

目录

前言

一、数据库的连接与表的创建

二、使用SQLite3插入数据

1.execute()

2.executemany()

 三、使用SQLite3查询数据

1.fetchall()查询所有数据

2.fetchone()——只取最上面的第一条结果

  四、使用SQLite3更新数据

  五、使用SQLite3删除数据

总结


前言

从Python3.新版本开始,在标注库中已经内置了SQLite3模块,它可以支持SQLite3数据库的访问和相关的数据库操作。在需要操作SQLite3数据库数据时,只须在程序中导入SQLite3模块即可。Python语言操作SQLite3数据库的基本流程如下所示。

  1. 导入相关库或模块(SQLite3)
  2. 使用connect()连接数据库并获取数据库连接对象。它提供了以下方法:
  3. 使用con.cursor()获取游标对象
  4. 使用游标对象的方法(execute()、executemany()、fetchall()等)来操作数据库,实现插入、修改和删除操作,并查询获取显示相关的记录。在Python程序中,连接函数sqlite.connect()有如下两个常用参数:database表示要访问的数据库名;timeout表示访问数据的超时设定。
  5. 使用close()关闭游标对象和数据库连接。数据库操作完成之后,必须及时调用其close()方法关闭数据库连接,这样做的目的是减轻数据库服务器的压力。

一、数据库的连接与表的创建

代码示例(db文件要提前创建好):

#1 导入sqlite3模块
import sqlite3
#2 创建连接sqlite.conneect()
conn = sqlite3.connect('../db文件/test.db')
#3 创建游标对象
cur = conn.cursor()
#4 编写创建表的sql语句
sql='''CREATE TABLE 南4_person(
            pno INTEGER primary key autoincrement,
            pname VARCHAR not null ,
            age INTEGER)'''
try:
    # 5 执行sql语句
    cur.execute(sql)
    print('表创建成功')
except BaseException as e:
    print(e)
    print('表创建失败')
finally:
    # 6 关闭连接
    cur.close()
    conn.close()

二、使用SQLite3插入数据

调用游标对象的execute执行插入的sql,使用executemany()执行多条sql语句,使用executemany()比循环使用execute()执行多条sql语句效率高。

1.execute()

代码如下(示例):

import sqlite3
conn = sqlite3.connect('../db文件/test.db')
cur=conn.cursor()
sql="insert into 南4_person(pname,age) values(?,?)"
try:
    cur.execute(sql,('朱元璋',60))
    conn.commit()
    print('数据插入成功')
except Exception as e:
    print(e)
    print('数据插入失败')
    conn.rollback()
finally:
    cur.close()
    conn.close()

2.executemany()

代码如下(示例):

import sqlite3
conn = sqlite3.connect('../db文件/test.db')
cur=conn.cursor()
sql="insert into 南4_person(pname,age) values(?,?)"
try:
    cur.executemany(sql,[('朱标',30),('朱允炆',10)])
    conn.commit()
    print('多条数据插入成功')
except Exception as e:
    print(e)
    print('数据插入失败')
    conn.rollback()
finally:
    cur.close()
    conn.close()

 三、使用SQLite3查询数据

查询数据,游标对象提供了fetchall()和fetchone()方法。fetchall()方法获取所有数据,返回一个列表。fetchone()方法获取其中一个结果,返回一个元组。

1.fetchall()查询所有数据

代码如下(示例):

import sqlite3
conn=sqlite3.connect('../db文件/test.db')
cur=conn.cursor()
sql="SELECT * FROM 南4_person"
try:
    cur.execute(sql)
    all_sql=cur.fetchall()
    for row in all_sql:
        print(row)
except BaseException as e:
    print(e)
    print('数据查询失败')
finally:
    cur.close()
    conn.close()

结果:

2.fetchone()——只取最上面的第一条结果

可多次循环使用cur.fetchone()获取整个表的内容。

代码如下(示例):

import sqlite3
conn=sqlite3.connect('../db文件/test.db')
cur=conn.cursor()
sql="SELECT * FROM 南4_person"
try:
    cur.execute(sql)
    for row in range(3):
        print(cur.fetchone())
except BaseException as e:
    print(e)
    print('数据查询失败')
finally:
    cur.close()
    conn.close()

 结果:

  四、使用SQLite3更新数据

代码如下(示例):

import sqlite3
conn=sqlite3.connect('../db文件/test.db')
cur=conn.cursor()
sql="SELECT * FROM 南4_person"
try:
    cur.execute(sql)
    all_sql=cur.fetchall()
    for row in all_sql:
        print(row)
except BaseException as e:
    print(e)
    print('数据查询失败')
finally:
    cur.close()
    conn.close()

更新后的结果为:

五、使用SQLite3删除数据

代码如下(示例):

import sqlite3
conn=sqlite3.connect('../db文件/test.db')
cur=conn.cursor()
sql="delete from 南4_person where pname=?"
try:
    cur.execute(sql,('马皇后',))
    conn.commit()
    print('数据删除成功')
except BaseException as e:
    print(e)
    print('数据删除失败')
finally:
    cur.close()
    conn.close()

删除完成后的结果为:


总结

  • .cursor()方法来创建一个游标对象
  • .commit()方法来处理事务提交
  • .rollback()方法来处理事务回滚
  • .close()方法来关闭一个数据库连接

AI 时代程序员必备技能

Codex、Claude Code、Cursor、Hermes Agent、OpenClaw等工程化实战专栏 ,讲透 AI 如何接管脏活累活

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值