Python的数据库操作

来源:互联网 发布:淘宝怎么贷款额度 编辑:程序博客网 时间:2024/06/16 01:32

数据库的连接

    def connectdb():            print('连接到mysql服务器...')    # 打开数据库连接            # 用户名:hp, 密码:Hp12345.,用户名和密码需要改成你自己的mysql用户名和密码,并且要创建数据库TESTDB           db = MySQLdb.connect("localhost","hp","Hp12345.","TESTDB")        print('连接上了!')            return db

单条操作

    #这里以insert语句为示例,其他操作的使用方式相同#    def insert(db):        cur = db.cursor()        val = (1, 'zhao', 'female')        sqlfmt = '''                 insert into table_name(no, name, sex) values (%s, %s, %s)                 '''        try:            cur.execute(sqlfmt, val)            db.commit()        except Exception as e:            db.rollback()

多条操作

#这里以insert语句为示例,其他操作的使用方式相同#    def insertmany(db):        cur = db.cursor()        val = [(1, 'zhao', 'female'), (2, 'qian', 'male')]        sqlfmt = '''                insert into table_name(no, name, sex) values (%s, %s, %s)                 '''    try:        cur.executemany(sqlfmt, val)        db.commit()    except Exception as e:        db.rollback()


数据库连接关闭

def closedb(db):        if db:            db.close()

扩展知识

1. 预处理语句:使用占位符而不是直接在sql语句里面写值的操作方式称为预处理语句,这种方式增强了安全性和性能

2. with语句自动释放资源:with语句可以自动commit和rollback,显示的使用了事务,非常方便,将上面的insert方法使用with重构后简洁了很多   

    

     def insert():        db = connectdb()        with db:             cur = db.cursor()            sqlfmt = '''                         insert into table_name(no, name, sex) values (%s, %s, %s)                     '''            val = (1, 'zhao', 'female')            cur.execute(sqlfmt, val)


原创粉丝点击