时间:2023-01-24 10:48:45 | 栏目:Python代码 | 点击:次
SQLite是python自带的一款基于内存或硬盘的、开源的、关系型的轻量级数据库。这意味着无需下载安装SQLite数据库产品和对应的数据库驱动程序,可以被python语言以模块导入方式直接调用。其位置在python的安装路径为Lib/sqlite3/。
对关系型数据库进行读写操作,需要建立如下几个操作步骤:
import sqlite3 #导入sqlite3模块 conn = sqlite3.connect(":memory:") #建立一个基于内存的数据库 conn.close() #关闭与数据库的连接
当对数据库操作完成时,建议养成及时关闭数据库连接的好习惯,避免打开数据库连接过多,消耗内存存储空间。
import sqlite3 #导入sqlite3模块 conn = sqlite3.connect("First.db") #建立一个基于硬盘的数据库实例 conn.close() #关闭与数据库的连接
效果:
执行代码后,在python的安装路径下生成First.db文件。
基于内存数据库容易丢失(特别是关机或因突发事故就会丢失内存里的数据),基于硬盘数据可以持久保存基于内存数据读写速度快,基于硬盘数据读写速度慢基于内存数据存储容量受内容受内容可用空间限制,基于硬盘数据存储容量受限于硬盘可用空间
在关系型数据库中,需要创建关系型特征的表结构,才能往表里写入数据以及进行数据库的操作。
将下列二维结构化记录表依次存放到数据库表中。
建立一个对应的数据库表需要建立钓鱼日期、名称、数量、价格、备注五个字段。其中,字段值需要确定数据类型,如数量为整数,价格为浮点数,钓鱼日期、名称、备注为字符型。
import sqlite3 #导入sqlite3模块 conn = sqlite3.connect("First.db") #建立一个基于硬盘的数据库实例 cur = conn.cursor() #通过建立数据库游标对象,准备读写操作 cur.execute("Create table T_fish(date text,name text,nums int,price real,Explain text)") #根据上表结构建立对应的表结构对象 cur.execute("insert into T_fish Values('2018-3-28','黑鱼',10,28.3,'tom')") #插入一行记录结果信息 conn.commit() #保存提交,确保数据保存成功 conn.close() #关闭与数据库的连接
在First.db数据库中创建一个T_fish表,然后往表里插入一行记录,最后提交保存并关闭数据库连接。
游标起指向某数据库的某表的作用,只有建立了确定的表的指向关系,才能进行插入、修改、删除、查找等操作。
import sqlite3 conn = sqlite3.connect("First.db") #连接数据库 cur = conn.cursor() #创建关联数据库的游标实例 cur.execute("select * from T_fish") #对T_fish表执行数据查找命令 for row in cur.fetchall(): #以一条记录为元组单位返回结果给row print(row) conn.close() #关闭数据库
效果:
import sqlite3 conn = sqlite3.connect("First.db") #连接数据库 cur = conn.cursor() #创建游标实例 cur.execute("insert into T_fish Values('2018-3-29','鲤鱼',17,10.3,'john')") #插入一条数据 cur.execute("insert into T_fish Values('2018-3-30','鲢鱼',9,9.2,'tim')") conn.commit() #提交数据保存到磁盘 cur.execute("select * from T_fish") #查找表里的记录 for row in cur.fetchall(): print(row) cur.execute("delete from T_fish where nums=10") #删除数量为10的记录 conn.commit() #提交结果到硬盘 print('=='*50) cur.execute("select * from T_fish") #查找T_fish表里的记录 for row in cur.fetchall(): print(row) conn.close()
效果: