美文网首页
Python-sqlite3 常用总结

Python-sqlite3 常用总结

作者: eversay | 来源:发表于2021-07-02 00:02 被阅读0次

    Python 关于sqlite3的简单学习和总结

    • SQLite 是一个小型嵌入式 SQL 数据库引擎。与大多数其他 SQL 数据库不同,SQLite 没有单独的服务器进程。SQLite 直接读写普通磁盘文件。具有多个表、索引、触发器和视图,完整 SQL 数据库包含在单个磁盘文件中。在小型应用软件开发中经常使用该数据库便于快速开发项目,由于其轻量级特性,操作简单因此应用广泛。
    • 由于项目中需要使用持久化存储数据应用到sqlite3,本人在学习之余,总结记录了一些学习笔记,便于日后归纳总结建立完整的知识体系。
    • demo中将sqlite 的简单操作封装到类里,重点在于学习SQL的语句。
    #-*- coding=utf-8 -*-
    import sqlite3
    
    class sqltest:
        def __init__(self,path):
            self.dbpath = path
            self.cnn = sqlite3.connect(path)
            self.cursor = self.cnn.cursor()
    
        def sqlcmd(self,cmdline):
            return self.cursor.execute(cmdline)
    
        def commit(self):
            self.cnn.commit()
        def rollback(self):
            self.cnn.rollback()
    
        def close(self):
            self.cursor.close()
            self.cnn.close()
    
        def connect_test(path):
            return sqlite3.connect(path)
    
        def fetch(self):
            return self.cursor.fetchone()
        
        def fetchAll(self):
            return self.cursor.fetchall()
    
    if __name__ == '__main__':
    
    
        print("---------开始----------")
        #数据库文件地址
        DBPATH = r'D:\demo_test\sql_test\sqldb.db'
        #当数据库不存在时,会新建数据库
        cnn = sqltest(DBPATH)
        #sqlline = 'create table if not exists table1(name string primary key,age int,sex string)'
        sqlline = 'create table if not exists %s'%('table1')+'(name string primary key,age int,sex string)'
        
        
        #创建表
        cnn.sqlcmd(sqlline)
        #插入3个数据
        cnn.sqlcmd("insert into table1 values('kangkang',20,'man')")
        cnn.sqlcmd("insert into table1 values('mike',22,'man')")
        cnn.sqlcmd("insert into table1 values('jane',18,'woman')")
        #提交数据到数据库
        cnn.commit()
        #查询mike
        cnn.sqlcmd("select * from table1 where name == 'mike'")
        tb = cnn.fetchAll()
        print("查询:",tb)
        
        #修改mike的性别
        cnn.sqlcmd("update table1 set age = 20 where name == 'mike'")
        cnn.commit()
        cnn.sqlcmd("select * from table1 where name == 'mike'")
        tb = cnn.fetchAll()
        print("修改:",tb)
    
        #回滚
        cnn.rollback()
        cnn.sqlcmd("select * from table1 where name == 'mike'")
        tb = cnn.fetchAll()
        print("回滚:",tb)
    
        #删除掉mike
        cnn.sqlcmd("delete from table1 where name == 'mike'")
        cnn.commit()
        cnn.sqlcmd("select * from table1 where name == 'mike'")
        tb = cnn.fetchAll()
        print("删除:",tb)
    
        #删除表
        #cnn.sqlcmd("drop table table1")
        cnn.close()
    
    
    • 打印输出结果如下
    ---------开始----------
    查询: [('kangkang', 20, 'man'), ('mike', 22, 'man'), ('jane', 18, 'woman')]
    修改: [('mike', 20, 'man')]
    回滚: [('mike', 20, 'man')]
    删除: [('kangkang', 20, 'man'), ('jane', 18, 'woman')]
    

    相关文章

      网友评论

          本文标题:Python-sqlite3 常用总结

          本文链接:https://www.haomeiwen.com/subject/qposultx.html