• Python操作MySQL数据库


    [本文出自天外归云的博客园]

    安装pymysql

    首先需要安装pymysql,通过pip安装即可:

    pip install pymysql

    操作mysql数据库

    然后就可以在python代码中操作mysql数据库了,代码如下:

    #!/usr/bin/env python
    # -*- coding: utf8 -*-
    import pymysql
    
    class MySQL():
        def __init__(self,host,user,password,db,port):
            self.db= pymysql.connect(host=host,user=user,password=password,db=db,port=port,charset="utf8")
            self.cur = self.db.cursor()
            print(self.__class__.__name__+"对象已创建")
        
        def query(self,sql):
            #query
            try:
                self.cur.execute(sql)
                results = self.cur.fetchall()
                return results
            except Exception as e:
                raise e
    
        def execute(self,sql):
            #update,insert,delete
            try:
                self.cur.execute(sql)
                self.db.commit()
            except Exception as e:
                self.db.rollback()
    
        def __del__(self):
            self.db.close()
            print(self.__class__.__name__+"对象已释放")
    
    
    if __name__ == '__main__':
        host = ""
        user = ""
        password = ""
        db = ""
        port = xxxx
        mysql = MySQL(host,user,password,db,port)
        query_sql = "xxxx"
        update_sql = "xxxx"
        results = mysql.query(query_sql)
        print(results)
        mysql.execute(update_sql)
        print("结束")

    其中需要填写的MySQL连接信息有:

    host:一般是数据库访问的ip地址(需要用引号引上,字符串类型)

    user:数据库访问的用户名(需要用引号引上,字符串类型)

    password:数据库访问用户的密码(需要用引号引上,字符串类型)

    port:数据库访问端口号(不能用引号引,数字类型)

    db:数据库名(需要用引号引上,字符串类型)

    charset:如果查询涉及到中文字符,必须设置该项为utf-8编码。否则会有类似如下报错:

    UnicodeEncodeError: 'latin-1' codec can't encode characters in position 78-80: ordinal not in range(256)

    相关文章:

    Python连接Oracle数据库

  • 相关阅读:
    Zset-ZREVRANGEBYSCORE
    Zset-ZREVERANGE
    Zset-ZRANGEBYSCORE
    Leetcode1550. 存在连续三个奇数的数组
    Java中的IO流
    线程间通信(也叫线程并发协作)的四种方式
    数据库三大范式
    MVCC(Multi-Version Concurrency Control):多版本并发控制详解
    Java三种单例模式实现
    Java的序列化和反序列化
  • 原文地址:https://www.cnblogs.com/LanTianYou/p/7119763.html
Copyright © 2020-2023  润新知