Python如何操作SQLite数据库
发表于:2025-01-20 作者:千家信息网编辑
千家信息网最后更新 2025年01月20日,Python如何操作SQLite数据库,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。前言:SQLite属于轻型数据库,遵守ACID的
千家信息网最后更新 2025年01月20日Python如何操作SQLite数据库
Python如何操作SQLite数据库,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。
前言:
SQLite
属于轻型数据库,遵守ACID
的关系型数据库管理系统,它包含在一个相对小的C库中。在很多嵌入式产品中使用了它,它占用资源非常的低,python
中默认继承了操作此款数据库的引擎 sqlite3
说是引擎不如说就是数据库的封装版,开发自用小程序的使用,使用它真的大赞。
一、简单操作SQLite数据库
简单操作SQLite数据库:创建 sqlite数据库是一个轻量级的数据库服务器,该模块默认集成在python中,开发小应用很不错.
import sqlite3# 数据表的创建conn = sqlite3.connect("data.db")cursor = conn.cursor()create = "create table persion(" \ "id int auto_increment primary key," \ "name char(20) not null," \ "age int not null," \ "msg text default null" \ ")"cursor.execute(create) # 执行创建表操作
1、简单的插入语句的使用
insert = "insert into persion(id,name,age,msg) values(1,'lyshark',1,'hello lyshark');"cursor.execute(insert)insert = "insert into persion(id,name,age,msg) values(2,'guest',2,'hello guest');"cursor.execute(insert)insert = "insert into persion(id,name,age,msg) values(3,'admin',3,'hello admin');"cursor.execute(insert)insert = "insert into persion(id,name,age,msg) values(4,'wang',4,'hello wang');"cursor.execute(insert)insert = "insert into persion(id,name,age,msg) values(5,'sqlite',5,'hello sql');"cursor.execute(insert)data = [(6, '王舞',8, 'python'), (7, '曲奇',8,'python'), (9, 'C语言',9,'python')]insert = "insert into persion(id,name,age,msg) values(?,?,?,?);"cursor.executemany(insert,data)
2、简单的查询语句的使用
select = "select * from persion;"cursor.execute(select)#print(cursor.fetchall()) # 取出所有的数据select = "select * from persion where name='lyshark';"cursor.execute(select)print(cursor.fetchall()) # 取出所有的数据select = "select * from persion where id >=1 and id <=2;"list = cursor.execute(select)for i in list.fetchall(): print("字段1:", i[0]) print("字段2:", i[1])
二、更新数据与删除
update = "update persion set name='苍老师' where id=1;"cursor.execute(update)update = "update persion set name='苍老师' where id>=1 and id<=3;"cursor.execute(update)delete = "delete from persion where id=3;"cursor.execute(delete)select = "select * from persion;"cursor.execute(select)print(cursor.fetchall()) # 取出所有的数据conn.commit() # 事务提交,每执行一次数据库更改的操作,就执行提交cursor.close()conn.close()
三、实现用户名密码验证
当用户输入错误密码后,自动锁定该用户1分钟.
import sqlite3import re,timeconn = sqlite3.connect("data.db")cursor = conn.cursor()"""create = "create table login(" \ "username text not null," \ "password text not null," \ "time int default 0" \ ")"cursor.execute(create)cursor.execute("insert into login(username,password) values('admin','123123');")cursor.execute("insert into login(username,password) values('guest','123123');")cursor.execute("insert into login(username,password) values('lyshark','1231');")conn.commit()"""while True: username = input("username:") # 这个地方应该严谨验证,尽量不要让用户拼接SQL语句 password = input("passwor:") # 此处为了方便不做任何验证(注意:永远不要相信用户的输入) sql = "select * from login where username='{}'".format(username) ret = cursor.execute(sql).fetchall() if len(ret) != 0: now_time = int(time.time()) if ret[0][3] <= now_time: print("当前用户{}没有被限制,允许登录...".format(username)) if ret[0][0] == username: if ret[0][1] == password: print("用户 {} 登录成功...".format(username)) else: print("用户 {} 密码输入有误..".format(username)) times = int(time.time()) + 60 cursor.execute("update login set time={} where username='{}'".format(times,username)) conn.commit() else: print("用户名正确,但是密码错误了...") else: print("账户 {} 还在限制登陆阶段,请等待1分钟...".format(username)) else: print("用户名输入错误")
四、SQLite检索时间记录
通过编写的TimeIndex
函数检索一个指定范围时间戳中的数据.
import os,time,datetimeimport sqlite3"""conn = sqlite3.connect("data.db")cursor = conn.cursor()create = "create table lyshark(" \ "time int primary key," \ "cpu int not null" \ ")"cursor.execute(create)# 批量生成一堆数据,用于后期的测试.for i in range(1,500): times = int(time.time()) insert = "insert into lyshark(time,cpu) values({},{})".format(times,i) cursor.execute(insert) conn.commit() time.sleep(1)"""# db = data.db 传入数据库名称# table = 指定表lyshark名称# start = 2019-12-12 14:28:00# ends = 2019-12-12 14:29:20def TimeIndex(db,table,start,ends): start_time = int(time.mktime(time.strptime(start,"%Y-%m-%d %H:%M:%S"))) end_time = int(time.mktime(time.strptime(ends,"%Y-%m-%d %H:%M:%S"))) conn = sqlite3.connect(db) cursor = conn.cursor() select = "select * from {} where time >= {} and time <= {}".format(table,start_time,end_time) return cursor.execute(select).fetchall()if __name__ == "__main__": temp = TimeIndex("data.db","lyshark","2019-12-12 14:28:00","2019-12-12 14:29:00") print(temp)
五、SQLite提取数据并绘图
通过使用matplotlib
这个库函数,并提取出指定时间的数据记录,然后直接绘制曲线图.
import os,time,datetimeimport sqlite3import numpy as npfrom matplotlib import pyplot as pltdef TimeIndex(db,table,start,ends): start_time = int(time.mktime(time.strptime(start,"%Y-%m-%d %H:%M:%S"))) end_time = int(time.mktime(time.strptime(ends,"%Y-%m-%d %H:%M:%S"))) conn = sqlite3.connect(db) cursor = conn.cursor() select = "select * from {} where time >= {} and time <= {}".format(table,start_time,end_time) return cursor.execute(select).fetchall()def Display(): temp = TimeIndex("data.db","lyshark","2019-12-12 14:28:00","2019-12-12 14:29:00") list = [] for i in range(0,len(temp)): list.append(temp[i][1]) plt.title("CPU Count") plt.plot(list, list) plt.show() if __name__ == "__main__": Display()
关于Python如何操作SQLite数据库问题的解答就分享到这里了,希望以上内容可以对大家有一定的帮助,如果你还有很多疑惑没有解开,可以关注行业资讯频道了解更多相关知识。
数据
数据库
用户
密码
输入
时间
用户名
语句
错误
问题
验证
苍老
函数
名称
字段
引擎
更多
帮助
开发
检索
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
恒创软件开发工作室
安徽嵌入式软件开发工程师招聘
微创上海网络技术
数据库假如有黑客入侵
计算机网络技术专升本上几年
java保存文件到数据库
网络安全发展史调查报告
数据库大量无效数据的处理对策
vb中sql数据库查询语句
服务器 网卡聚合
广西软件开发市场
服务器管理工具怎么用
地理国情监测数据库建设技术
盛泉恒元软件开发
激活苹果的应用与数据库
铜川市网络安全协会
智慧凤盛互联网科技有限公司
数据库增加100行数据
频繁的开关服务器耗电吗
t6如何恢复数据库
希捷服务器硬盘
指悦网络技术有限公司招聘
便利蜂软件开发怎么发工资
浙江学生网络技术服务项目
以色列网络技术
最终幻想1数据库
数据库 知网
致远互联属于科技互联网公司吗
组态王软件开发 优缺点
苹果简单软件开发