python(三)数据库

1、mysql数据库

仿手机通讯录源码github上

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()
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值