SQLite,是一款轻型的数据库,是遵守ACID的关系型数据库管理系统,它包含在一个相对小的C库中。在很多嵌入式产品中使用了它,它占用资源非常的低,python 中默认继承了操作此款数据库的引擎 sqlite3 说是引擎不如说就是数据库的封装版,开发自用小程序的使用使用它真的大赞
简单操作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) # 执行创建表操作
简单操作SQLite数据库:简单的插入语句的使用
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)
简单的查询语句的使用
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()
SQLite小试牛刀 实现用户名密码验证,当用户输入错误密码后,自动锁定该用户1分钟.
import sqlite3 import re,time conn = 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,datetime import 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:20 def 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")
SQLite提取数据并绘图 通过使用matplotlib这个库函数,并提取出指定时间的数据记录,然后直接绘制曲线图.
import os,time,datetime import sqlite3 import numpy as np from matplotlib import pyplot as plt def 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()
文章作者:lyshark
文章出处:https://www.cnblogs.com/lyshark
以上就是Python 操作SQLite数据库的示例的详细内容,更多关于Python 操作SQLite数据库的资料请关注其它相关文章!
《魔兽世界》大逃杀!60人新游玩模式《强袭风暴》3月21日上线
暴雪近日发布了《魔兽世界》10.2.6 更新内容,新游玩模式《强袭风暴》即将于3月21 日在亚服上线,届时玩家将前往阿拉希高地展开一场 60 人大逃杀对战。
艾泽拉斯的冒险者已经征服了艾泽拉斯的大地及遥远的彼岸。他们在对抗世界上最致命的敌人时展现出过人的手腕,并且成功阻止终结宇宙等级的威胁。当他们在为即将于《魔兽世界》资料片《地心之战》中来袭的萨拉塔斯势力做战斗准备时,他们还需要在熟悉的阿拉希高地面对一个全新的敌人──那就是彼此。在《巨龙崛起》10.2.6 更新的《强袭风暴》中,玩家将会进入一个全新的海盗主题大逃杀式限时活动,其中包含极高的风险和史诗级的奖励。
《强袭风暴》不是普通的战场,作为一个独立于主游戏之外的活动,玩家可以用大逃杀的风格来体验《魔兽世界》,不分职业、不分装备(除了你在赛局中捡到的),光是技巧和战略的强弱之分就能决定出谁才是能坚持到最后的赢家。本次活动将会开放单人和双人模式,玩家在加入海盗主题的预赛大厅区域前,可以从强袭风暴角色画面新增好友。游玩游戏将可以累计名望轨迹,《巨龙崛起》和《魔兽世界:巫妖王之怒 经典版》的玩家都可以获得奖励。
更新动态
- 凤飞飞《我们的主题曲》飞跃制作[正版原抓WAV+CUE]
- 刘嘉亮《亮情歌2》[WAV+CUE][1G]
- 红馆40·谭咏麟《歌者恋歌浓情30年演唱会》3CD[低速原抓WAV+CUE][1.8G]
- 刘纬武《睡眠宝宝竖琴童谣 吉卜力工作室 白噪音安抚》[320K/MP3][193.25MB]
- 【轻音乐】曼托凡尼乐团《精选辑》2CD.1998[FLAC+CUE整轨]
- 邝美云《心中有爱》1989年香港DMIJP版1MTO东芝首版[WAV+CUE]
- 群星《情叹-发烧女声DSD》天籁女声发烧碟[WAV+CUE]
- 刘纬武《睡眠宝宝竖琴童谣 吉卜力工作室 白噪音安抚》[FLAC/分轨][748.03MB]
- 理想混蛋《Origin Sessions》[320K/MP3][37.47MB]
- 公馆青少年《我其实一点都不酷》[320K/MP3][78.78MB]
- 群星《情叹-发烧男声DSD》最值得珍藏的完美男声[WAV+CUE]
- 群星《国韵飘香·贵妃醉酒HQCD黑胶王》2CD[WAV]
- 卫兰《DAUGHTER》【低速原抓WAV+CUE】
- 公馆青少年《我其实一点都不酷》[FLAC/分轨][398.22MB]
- ZWEI《迟暮的花 (Explicit)》[320K/MP3][57.16MB]