一、SQLite3简介
SQLite是一个进程内的库,实现了自给自足的、无服务器的、零配置的、事务性的 SQL 数据库引擎。它是一个零配置的数据库,这意味着与其他数据库不一样,您不需要在系统中配置。
二、 为什么用SQLite3
不需要一个单独的服务器进程或操作的系统(无服务器的)。
SQLite 不需要配置,这意味着不需要安装或管理。
一个完整的 SQLite 数据库是存储在一个单一的跨平台的磁盘文件。
SQLite 是非常小的,是轻量级的,完全配置时小于 400KiB,省略可选功能配置时小于250KiB。
SQLite 是自给自足的,这意味着不需要任何外部的依赖。
SQLite 事务是完全兼容 ACID 的,允许从多个进程或线程安全访问。
SQLite 支持 SQL92(SQL2)标准的大多数查询语言的功能。
SQLite 使用 ANSI-C 编写的,并提供了简单和易于使用的 API。
SQLite 可在 UNIX(Linux, Mac OS-X, Android, iOS)和 Windows(Win32, WinCE, WinRT)中运行。
python中,SQLite3是标准模块,不需要安装,所以,我们会经常使用其开发一些小型数据库系统。
三、访问数据库的步骤
3.1 导入Python SQLite数据库模块
import sqlite3
3.2 建立数据库连接,返回connection对象
以创建school数据库为例:
Conn=sqlite3.connect('school.db')
3.3 创建游标对象
Cur=Conn.cursor()
3.4 使用Cursor对象的execute()方法执行SQL命令返回结果
Cur.execute('Create table class(id ,name,sex,age)')
3.5 数据库的提交或回滚
Conn.commit()
3.6 关闭Cursor对象和Connection对象
Conn.close()
3.7 关闭Cursor对象和Connection对象
Cur.close()
Conn.close()
完整示例
4.1 代码块
import sqlite3
from time import sleep
def conn():
"""创建数据库库"""
Conn=sqlite3.connect('nba.db')
Cur=Conn.cursor()
Cur.execute('Create table lakers(id ,name,tall,age)')
Conn.commit()
print('数据库表创建成功')
Cur.close()
Conn.close()
sleep(2)
def ins():
"""添加数据"""
Conn = sqlite3.connect('nba.db')
Cur = Conn.cursor()
Cur.execute('insert into lakers values(?,?,?,?)', (1,'rw',191,33))
Cur.execute('insert into lakers values(?,?,?,?)',(2,'lbj',203,36))
Cur.execute('insert into lakers values(?,?,?,?)',(3,'ca',203,36))
Cur.execute('insert into lakers values(?,?,?,?)',(4,'kd',208,28))
Cur.execute('insert into lakers values(?,?,?,?)',(5,'dh',210,36))
Conn.commit()
print('数据添加成功')
Cur.close()
Conn.close()
sleep(2)
def res():
"""查询数据"""
Conn = sqlite3.connect('nba.db')
Cur = Conn.cursor()
re=Cur.execute('select * from lakers')
Conn.commit()
print('查询数据成功:')
for i in re:
print(i)
Cur.close()
Conn.close()
sleep(2)
def upd():
"""修改数据"""
Conn = sqlite3.connect('nba.db')
Cur = Conn.cursor()
Cur.execute("update lakers set name='hhd' where id=5")
re = Cur.execute("select *from lakers where id=5")
Conn.commit()
print('数据修改成功:')
for i in re:
print(i)
Cur.close()
Conn.close()
sleep(2)
def dele():
"""删除数据"""
Conn = sqlite3.connect('nba.db')
Cur = Conn.cursor()
Cur.execute('delete from lakers where id=4')
re=Cur.execute('select * from lakers')
Conn.commit()
print('数据删除成功:')
for i in re:
print(i)
Cur.close()
Conn.close()
sleep(2)
def dro_tb():
"""删除表"""
"""注意这个需要先创建成功后,才能执行"""
Conn = sqlite3.connect('nba.db')
Cur = Conn.cursor()
Cur.execute('drop table lakers')
Conn.commit()
print('删除表成功')
Cur.close()
Conn.close()
if __name__ == '__main__':
dro_tb()
conn()
ins()
res()
dele()
4.2 运行结果
非首次运行成功截图:
Original: https://blog.csdn.net/weixin_45230019/article/details/119298951
Author: Irving_Hua
Title: python自带数据库SQLite3,实现增删改查,及初始化重复操作
原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/816653/
转载文章受原作者版权保护。转载请注明原作者出处!