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')]
网友评论