1、mysql数据库
2、sqlite的使用
1)封装sqlite实现增删改查
2)在python中,使用sqlite3创建数据库的连接,当我们指定的数据库文件不存在的时候连接对象会自动创建数据库文件; 如果数据库文件已经存在,则连接对象不会再创建数据库文件,而是直接打开该数据库文件。
3)
~ 对数据库对象操作:
commit() --事务提交
rollback() --事务回滚
close() --关闭一个数据库链接
cursor() --创建一个游标
~ 对游标操作:
execute() --执行一条sql语句
executemany() --执行多条sql语句
close() --游标关闭
fetchone() --从结果中取出一条记录
fetchmany() --从结果中取出多条记录
fetchall() --从结果中取出所有记录
scroll() --游标滚动
update() --更新数据
delete() --删除数据
import sqlite3
class mySqlite:
def __init__(self, database):
self.database = database
def getCon(self):
try:
con = sqlite3.connect(self.database)
return con
except:
print("connect err")
def createCursor(self,con):
if con is not None:
return con.cursor()
else:
return self.getCon().cursor()
def createTable(self,name):
try:
self.tname = name
con = self.getCon()
cursor = self.createCursor(con)
cursor.execute("create table if not exists '%s'(id int primary key not null,username varchar(10) not null,age int not null)"%(self.tname))
con.commit()
except:
print("create_table err")
def delete_(self,name):
try:
con = self.getCon()
cursor = self.createCursor(con)
cursor.execute("delete from '%s' where username = '%s'"%(self.tname,name))
con.commit()
except:
print("del err")
def insert(self,id,name,age):
try:
con = self.getCon()
cursor = self.createCursor(con)
cursor.execute("insert into '%s'(id,username,age) values('%d','%s','%d')"%(self.tname,id,name,age))
con.commit()
except:
print("insert err")
def update(self,name,age):
try:
con = self.getCon()
cursor = self.createCursor(con)
cursor.execute("update '%s' set age = '%d' where username = '%s'"%(self.tname,age,name))
con.commit()
except:
print("update err")
def select(self,one):
try:
con = self.getCon()
cursor = self.createCursor(con)
cursor.execute("select * from "+self.tname)
if one == "one":
return cursor.fetchone()
else:
return cursor.fetchall()
except:
print("select err")
def getResult(self,fun,data,one):
if fun == "update":
self.update(data[0],data[1])
elif fun == "insert":
self.insert(data[0],data[1],data[2])
elif fun == "delete":
self.delete_(data[0])
results = self.select(one)
for rows in results:
print(rows)
def drop(self):
try:
con = self.getCon()
cursor = self.createCursor(con)
cursor.execute("drop table "+self.tname)
con.commit()
print("drop_table ok")
except:
print("drop_table err")
def main():
data = []
sql1ite = mySqlite("mysqlite.db")
sql1ite.createTable("user")
# sql1ite.insert(1,"lucy",17)
# sql1ite.insert(2, "lily", 15)
# print("查询结果")
# sql1ite.getResult("select",data, None)
#
# sql1ite.update("lucy",20)
# data = ["lucy",20]
# print("更新数据lucy age: 20后结果")
# sql1ite.getResult("update",data, None)
#
# data = [3,"lolo", 28]
# print("插入数据lolo后结果")
# sql1ite.getResult("insert", data, None)
#
# data = ["lucy"]
# print("删除lucy数据和结果")
# sql1ite.getResult("delete", data, None)
#
# data = []
# print("查询一条结果")
# sql1ite.getResult("select", data, "one")
print("删除表之后")
sql1ite.drop()
if __name__ == "__main__":
main()