python SQLite数据库操作

SQLite

SQLite是一个软件库,实现了自给自足的、无服务器的、零配置的、事务性的 SQL 数据库引擎。SQLite是一个增长最快的数据库引擎,这是在普及方面的增长,与它的尺寸大小无关。SQLite 源代码不受版权限制。
它是一个零配置的数据库,这意味着与其他数据库一样,您不需要在系统中配置。

SQLite数据库优点

  1. 不需要一个单独的服务器进程或操作的系统(无服务器的)
  2. SQLite 不需要配置,这意味着不需要安装或管理
  3. 一个完整的 SQLite 数据库是存储在一个单一的跨平台的磁盘文件
  4. SQLite 是非常小的,是轻量级的
  5. SQLite 是自给自足的,这意味着不需要任何外部的依赖
  6. SQLite 可在 UNIX(Linux, Mac OS-X, Android, iOS)和 Windows(Win32, WinCE, WinRT)中运行

代码实现SQLite创建、插入、查询、删除操作

import sqlite3
class Mysqlite(object):
    def __init__(self,dbpath):
        # 如果不存在则创建
        self.con = sqlite3.connect(dbpath)
        self.cur = self.con.cursor()

    def __del__(self):
        self.close()
    
    def execute_sqlite3(self,sql):
        # 命令处理
        sql = sql.lower()
        if 'insert' in sql or 'delete' in sql or  'update' in sql or  'create' in sql:
            self.cur.execute(sql)
            self.con.commit()
            print('done..')
            return 
        elif 'select' in sql :
            self.cur.execute(sql)
            data = self.cur.fetchall()
            print(data)
            return data

    def create_table(self,table_name,title):
        # 自定义创建表
        sql = "CREATE TABLE {}({})".format(table_name,title)
        self.execute_sqlite3(sql)

    def insert_value(self,table_name,value):
        # 插入自定义数据
        sql = "INSERT INTO {} values({})".format(table_name,value)
        self.execute_sqlite3(sql)

    def select_data(self,table_name):
        # 查询数据
        sql = "SELECT * FROM {}".format(table_name)
        self.execute_sqlite3(sql)

    def update_data(self,table_name,field,value,id):
        # 修改数据
        sql = "UPDATE {} set {} = '{}' where id = {}".format(table_name,field,value,id)
        self.execute_sqlite3(sql)
    
    def delete_data(self,table_name,id):
        # 删除数据
        sql = "DELETE FROM {} where id = {}".format(table_name,id)
        self.execute_sqlite3(sql)

    def close(self):
        # 关闭资源
        self.cur.close()
        self.con.close()

if __name__ == "__main__":
    sqlite = Mysqlite('test.db')
    table_name = 'foo'
    try:
        sqlite.create_table(table_name,'id integer primary key autoincrement, name varchar(128), info varchar(128)')
    except:
        print("{} created..")
    sqlite.insert_value(table_name,'NULL,\"apple\",\"broccoli\"')
    sqlite.select_data(table_name)
    sqlite.update_data(table_name,'name',"orange",1)
    sqlite.select_data(table_name)
    sqlite.delete_data(table_name,2)
    sqlite.select_data(table_name)

运行结果

在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/youngdianfeng/article/details/105928848