前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Python使用技巧之MySQL数据库增删改查操作

Python使用技巧之MySQL数据库增删改查操作

作者头像
水煮麥楽雞
发布2022-11-20 15:12:33
1.8K0
发布2022-11-20 15:12:33
举报
文章被收录于专栏:Find­My­FUNFind­My­FUN

连接数据库

代码语言:javascript
复制
    import pymysql
    
    # 获取连接对象conn,建立数据库的连接
    def get_conn():
        conn = pymysql.connect(host='localhost',port=3306,user='root',passwd='root',db='test')    # db:表示数据库名称
        return conn

插入操作

代码语言:javascript
复制
    import pymysql
    
    def get_conn():
        conn = pymysql.connect(host='localhost',port=3306,user='root',passwd='root',db='test')
        return conn
    
    def insert(sql):
        conn = get_conn()
        cur = conn.cursor()
        result = cur.execute(sql)
        print(result)
        conn.commit()
        cur.close()
        conn.close()
    
    if __name__ == '__main__':
        sql = 'INSERT INTO test_table VALUES(1,\'dzy\',12);''
        insert(sql) 

在写sql语句的时候,需要避免直接写sql语句,而是采用占位符的方式来,防止sql的注入。

sql占位符形式实现

代码语言:javascript
复制
    import pymysql
    
    def get_conn():
        conn = pymysql.connect(host='localhost', port=3306, user='root', passwd='root', db='test')
        return conn
    
    def insert(sql, args):
        conn = get_conn()
        cur = conn.cursor()
        result = cur.execute(sql, args)
        print(result)
        conn.commit()
        cur.close()
        conn.close()
    
    
    
    if __name__ == '__main__':
        sql = 'INSERT INTO test_table VALUES(%s,%s,%s);'
        insert(sql, (2, 'dzy', 13))

插入多条语句实现

代码语言:javascript
复制
    import pymysql
    
    
    def get_conn():
        conn = pymysql.connect(host='localhost', port=3306, user='root', passwd='root', db='test')
        return conn
    
    def insert_many(sql, args):
        conn = get_conn()
        cur = conn.cursor()
        result = cur.executemany(query=sql, args=args)
        print(result)
        conn.commit()
        cur.close()
        conn.close()
    
    
    if __name__ == '__main__':
        sql = 'insert into test_table VALUES (%s,%s,%s)'
        args = [(3, 'd', 11), (4, 'z', 12), (5, 'y', 13)]
        insert_many(sql=sql, args=args)

更新操作

代码语言:javascript
复制
    import pymysql
    
    def get_conn():
        conn = pymysql.connect(host='localhost',port=3306,user='root',passwd='root',db='test')
        return conn
    
    def update(sql,args):
        conn = get_conn()
        cur = conn.cursor()
        result = cur.execute(sql,args)
        print(result)
        conn.commit()
        cur.close()
        conn.close()
    
    
    if __name__ == '__main__':
        sql = 'UPDATE test_table SET NAME=%s WHERE id = %s;'
        args = ('dzy', 1)
        update(sql, args)

删除操作

代码语言:javascript
复制
    import pymysql
    
    def get_conn():
        conn = pymysql.connect(host='localhost',port=3306,user='root',passwd='root',db='test')  
        return conn
    
    def delete(sql,args):
        conn = get_conn()
        cur = conn.cursor()
        result = cur.execute(sql,args)
        print(result)
        conn.commit()
        cur.close()
        conn.close()
    
    
    if __name__ == '__main__':
        sql = 'DELETE FROM test_table WHERE id = %s;'
        args = (1,) # 单个元素的tuple写法
        delete(sql,args)

查询操作

代码语言:javascript
复制
    import pymysql
    
    def get_conn():
        conn = pymysql.connect(host='localhost', port=3306, user='root', passwd='root', db='test')
        return conn
    
    def query(sql,args):
        conn = get_conn()
        cur = conn.cursor()
        cur.execute(sql,args)
        results = cur.fetchall()
        print(type(results))  # 返回<class 'tuple'> tuple元组类型
    
        for row in results:
            print(row)
            id = row[0]
            name = row[1]
            age = row[2]
            print('id: ' + str(id) + '  name: ' + name + '  age: ' + str(age))
            pass
    
        conn.commit()
        cur.close()
        conn.close()
    
    
    if __name__ == '__main__':
        sql = 'SELECT  * FROM test_table;'
        query(sql,None)

版权属于:。。。源

本文链接:https://cloud.tencent.com/developer/article/2169629

转载时须注明出处及本声明。我的博客即将同步至腾讯云开发者社区,邀请大家一同入驻:https://cloud.tencent.com/developer/support-plan?invite_code=2py75w7904qok

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2021-06-15,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 连接数据库
  • 插入操作
    • sql占位符形式实现
      • 插入多条语句实现
      • 更新操作
      • 删除操作
      • 查询操作
      相关产品与服务
      云开发 CloudBase
      云开发(Tencent CloudBase,TCB)是腾讯云提供的云原生一体化开发环境和工具平台,为200万+企业和开发者提供高可用、自动弹性扩缩的后端云服务,可用于云端一体化开发多种端应用(小程序、公众号、Web 应用等),避免了应用开发过程中繁琐的服务器搭建及运维,开发者可以专注于业务逻辑的实现,开发门槛更低,效率更高。
      领券
      问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档