Python 操作SQLite数据库的示例

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数据库的资料请关注我们其它相关文章!

时间: 2020-10-15

Python操作SQLite数据库过程解析

SQLite是一款轻型的数据库,是遵守ACID的关系型数据库管理系统. 不像常见的客户-服务器范例,SQLite引擎不是个程序与之通信的独立进程,而是连接到程序中成为它的一个主要部分.所以主要的通信协议是在编程语言内的直接API调用. Python标准库包含一个SQLite包装器:使用模块sqlite3实现的PySQLite. 下面是一个操作SQLite数据库的例子:创建表.插入记录.查询记录. import sqlite3 #创建直接到数据库文件的连接,如果文件不存在则自动创建 conn =

使用Python对SQLite数据库操作

SQLite是一种嵌入式数据库,它的数据库就是一个文件.由于SQLite本身是C写的,而且体积很小,所以,经常被集成到各种应用程序中,甚至在IOS和Android的APP中都可以集成. Python内置了SQLite3,所以,在Python中使用SQLite,不需要安装任何东西,直接使用. 在使用SQLite前,我们先要搞清楚几个概念: 表是数据库中存放关系数据的集合,一个数据库里面通常都包含多个表,比如学生的表,班级的表,学校的表,等等.表和表之间通过外键关联. 要操作关系数据库,首先要连接到

Python操作SQLite/MySQL/LMDB数据库的方法

1.概述 1.1前言 最近在存储字模图像集的时候,需要学习LMDB,趁此机会复习了SQLite和MySQL的使用,一起整理在此. 1.2环境 使用win7,Python 3.5.2. 2.SQLite 2.1准备 SQLite是一种嵌入式数据库,它的数据库就是一个文件.Python 2.5x以上版本内置了SQLite3,使用时直接import sqlite3即可. 2.2操作流程 概括地讲,操作SQLite的流程是: ·通过sqlite3.open()创建与数据库文件的连接对象connectio

python操作数据库之sqlite3打开数据库、删除、修改示例

复制代码 代码如下: #coding=utf-8__auther__ = 'xianbao'import sqlite3# 打开数据库def opendata():        conn = sqlite3.connect("mydb.db")        cur = conn.execute("""create table if not exists tianjia(id integer primary key autoincrement, user

Python操作SQLite数据库的方法详解【导入,创建,游标,增删改查等】

本文实例讲述了Python操作SQLite数据库的方法.分享给大家供大家参考,具体如下: SQLite简介 SQLite,是一款轻型的数据库,是遵守ACID的关系型数据库管理系统,它包含在一个相对小的C库中.它是D.RichardHipp建立的公有领域项目.它的设计目标是嵌入式的,而且目前已经在很多嵌入式产品中使用了它,它占用资源非常的低,在嵌入式设备中,可能只需要几百K的内存就够了.它能够支持Windows/Linux/Unix等等主流的操作系统,同时能够跟很多程序语言相结合,比如 Tcl.C

Python操作SQLite数据库的方法详解

本文实例讲述了Python操作SQLite数据库的方法.分享给大家供大家参考,具体如下: SQLite简单介绍 SQLite数据库是一款非常小巧的嵌入式开源数据库软件,也就是说没有独立的维护进程,所有的维护都来自于程序本身.它是遵守ACID的关联式数据库管理系统,它的设计目标是嵌入式的,而且目前已经在很多嵌入式产品中使用了它,它占用资源非常的低,在嵌入式设备中,可能只需要几百K的内存就够了.它能够支持Windows/Linux/Unix等等主流的操作系统,同时能够跟很多程序语言相结合,比如 Tc

Python开发SQLite3数据库相关操作详解【连接,查询,插入,更新,删除,关闭等】

本文实例讲述了Python开发SQLite3数据库相关操作.分享给大家供大家参考,具体如下: '''SQLite数据库是一款非常小巧的嵌入式开源数据库软件,也就是说 没有独立的维护进程,所有的维护都来自于程序本身. 在python中,使用sqlite3创建数据库的连接,当我们指定的数据库文件不存在的时候 连接对象会自动创建数据库文件:如果数据库文件已经存在,则连接对象不会再创建 数据库文件,而是直接打开该数据库文件. 连接对象可以是硬盘上面的数据库文件,也可以是建立在内存中的,在内存中的数据库

Python 如何操作 SQLite 数据库

写在之前 SQLite 是一个小型的关系型数据库,它最大的特点在于不需要单独的服务.零配置.我们在之前讲过的两个数据库,不管是 MySQL 还是 MongoDB,都需要我们安装.安装之后,然后运行起来,其实这就相当于已经有一个相应的服务在跑着. SQLite 与前面所说的两个数据库不同.首先Python 已经将相应的驱动模块作为了标准库的一部分,只要是你安装了 Python,就可以使用:再者它可以类似于操作文件那样来操作 SQLite 数据库文件.还有一点,SQLite 源代码不受版权限制. 建

利用python操作SQLite数据库及文件操作详解

前言 最近在工作中遇到一个需求,就是要把SQLite数据中没有存储的文件名的文件删除掉,想来想去还是决定用python.所以也就花了一天半的时间学习了下,随手写了个小例子,下面话不多说了,感兴趣的朋友们一起来看看详细的介绍吧. 直接上代码 要用到的头文件包 #coding=utf-8 #!/usr/bin/python #!/usr/bin/env python import os import shutil import sqlite3 定义记录变量 #记录所文件数 sumCount=0; #

Python SQLite3数据库操作类分享

接触Python时间也不是很长的,最近有个项目需要分析数据,于是选用Python为编程语言,除了语言特性外主要还是看重Python对于SQLite3数据库良好的支持能力了,因为需要灵活处理大量的中间数据. 刚开始一些模块我还乐此不疲的写SQL语句,后来渐渐厌倦了,回想到以前捣鼓C#的时候利用反射初步构建了个SQL查询构造器,直到发现linq,于是放弃了这个计划,当然微软后来又推出了Entity Framework,这些都是后话了,而且现在我对微软的东西兴趣不是很大的,好了,扯多了,下面继续正文.

Python连接SQLite数据库并进行增册改查操作方法详解

SQLite简介 SQLite,是一款轻型的数据库,是遵守ACID的关系型数据库管理系统,它包含在一个相对小的C库中.它是D.RichardHipp建立的公有领域项目.它的设计目标是嵌入式的,而且目前已经在很多嵌入式产品中使用了它,它占用资源非常的低,在嵌入式设备中,可能只需要几百K的内存就够了.它能够支持Windows/Linux/Unix等等主流的操作系统,同时能够跟很多程序语言相结合,比如 Tcl.C#.PHP.Java等,还有ODBC接口,同样比起Mysql.PostgreSQL这两款开

Python3操作MongoDB增册改查等方法详解

MongoDB是由C++语言编写的非关系型数据库,是一个基于分布式文件存储的开源数据库系统,其内容存储形式类似JSON对象,它的字段值可以包含其他文档.数组及文档数组,非常灵活. 在这一节中,我们就来看看Python 3下MongoDB的存储操作. 1. 准备工作 在开始之前,请确保已经安装好了MongoDB并启动了其服务,并且安装好了Python的PyMongo库. 2. 连接MongoDB 连接MongoDB时,我们需要使用PyMongo库里面的MongoClient.一般来说,传入Mong

python连接mysql数据库示例(做增删改操作)

一.相关代码数据库配置类 MysqlDBConn.py 复制代码 代码如下: #encoding=utf-8'''Created on 2012-11-12 Mysql Conn连接类''' import MySQLdb class DBConn: conn = None #建立和数据库系统的连接    def connect(self):        self.conn = MySQLdb.connect(host="localhost",port=3306,user="

Windows平台Python连接sqlite3数据库的方法分析

本文实例讲述了Windows平台Python连接sqlite3数据库的方法.分享给大家供大家参考,具体如下: 之前没有接触过sqlite数据库,只是听到同事聊起这个. 有一次,手机端同事让我帮着写个sql,后面说运行不了报错了,我问是什么数据库,同事说是sqlite,这才知道了还有sqlite这个数据库... 接下来说说Python连接sqlite数据库,非常简单,因为python中的sqlite模块也遵循了DB-API 2.0的规范,所以操作起来和sql server.MySQL.oracle

Python实现连接MySql数据库及增删改查操作详解

本文实例讲述了Python实现连接MySql数据库及增删改查操作.分享给大家供大家参考,具体如下: 在本文中介绍 Python3 使用PyMySQL连接数据库,并实现简单的增删改查.(注意是python3) 1.安装PyMySQL PyMySQL 是在 Python3.x 版本中用于连接 MySQL 服务器的一个库,Python2中则使用mysqldb.PyMySQL 遵循 Python 数据库 API v2.0 规范,并包含了 pure-Python MySQL 客户端库.在使用 PyMySQ

Python3实现连接SQLite数据库的方法

本文实例讲述了Python3实现连接SQLite数据库的方法,对于Python的学习有不错的参考借鉴价值.分享给大家供大家参考之用.具体方法如下: 实例代码如下: import sqlite3 db = r"D:\pyWork\test.db" #pyWork目录下test.db数据库文件 drp_tb_sql = "drop table if exists staff" crt_tb_sql = """ create table if

Python读取sqlite数据库文件的方法分析

本文实例讲述了Python读取sqlite数据库文件的方法.分享给大家供大家参考,具体如下: import sqlite3 这是Python内置的,不需要pip install 包 数据库里面有很多张表 要操作数据库首先要连接conect数据库 mydb=sqlite3.connect("alfw.sqlite") 然后创建游标cursor来执行executeSQL语句 cursor=mydb.cursor() 比如我想看这个数据库的几张表的名字是什么 cursor.execute(&

python 连接sqlite及简单操作

废话不多说了,直接给大家贴代码了,具体代码如下所示: import sqlite3 #查询 def load(table): #连接数据库 con = sqlite3.connect("E:/Datebase/SQLiteStudio/Park.db") #获得游标 cur = con.cursor() #查询整个表 cur.execute('select *from '+table) lists = ['name','password'] if table == 'login': #

Python连接DB2数据库

在工作中遇到了这样的情况,项目中需要连接IBM的关系型数据库(DB2),关于这方面的库比较稀少,其中 ibm_db 是比较好用的一个库,网上也有教程,但是好像不准确,也不太详细,错误百出,没办法只能拿到后自己分析源码,总算搞定. 安装 环境需求: 首先是数据库DB2,下载连接直接百度,我下载是这两个文件: 只下载箭头所指即可,我还没在linux上做测试. 数据库API(这个东西找了好久,终于找到了合适的)(找不到搜:SQLAPI.zip) Python2.7 VCForPython2.7 ibm