zoukankan      html  css  js  c++  java
  • python--连接数据库pymysql

    PyMySQL简介:

    PyMySQL 是在 Python3.x 版本中用于连接 MySQL 服务器的一个库,Python2中则使用mysqldb。

    Django中也可以使用PyMySQL连接MySQL数据库。

    PyMySQL 安装:

    pip install pymysql

    连接数据库:

    • 你有一个MySQL数据库,并且已经启动。
    • 你有可以连接该数据库的用户名和密码
    • 你有一个有权限操作的database
    """
    连接数据库进行数据操作
    """
    import pymysql
    
    # 打开数据库连接
    db = pymysql.connect(host="你的数据库地址",
                         port=3306,
                         user="用户名",
                         passwd="密码",
                         db="数据库名",
                         charset="utf8")
    
    # 查询操作
    # 使用cursor()方法创建一个游标对象cur
    cur = db.cursor()
    # 使用execute()方法执行SQL查询
    sql_add = "select * from orders where type=2"
    cur.execute(sql_add)
    # 使用fetchall()方法获取查询结果
    data = cur.fetchall()
    print(data)
    # 关闭数据库连接
    db.close()
    # 元祖取值
    print(data[0])
    print(data[0][1])
    # 数据大时单独取出对应的值
    for i in data:
        if "2651" in i:
            print(i[1])
    
    # 删除操作
    # 使用cursor()方法创建一个游标对象cur
    cur = db.cursor()
    # 使用execute()方法执行SQL增删改查操作
    sql_delete = "delete from orders  where type=2 limit 1"
    cur.execute(sql_delete)
    # 删除数据或者修改数据时一定使用db.commit()提交
    db.commit()
    db.close()
    
    
    # 删除功能后下次跑自动化代码没有数据报错,解决办法
    # 得到一个可以执行SQL语句的光标对象
    cursor = db.cursor()
    
    # 方法一:
    # 修改数据的SQL语句
    sql = "UPDATE USER1 SET age=%s WHERE name=%s;"
    username = "Alex"
    age = 80
    try:
        # 执行SQL语句
        cursor.execute(sql, [age, username])
        # 提交事务
        db.commit()
    except Exception as e:
        # 有异常,回滚事务
        db.rollback()
    cursor.close()
    db.close()
    
    # 方法二:
    def insert_db(sql_insert):
        # 使用cursor()方法创建一个游标对象cur
        cur = db.cursor()
        # 判断数据是否存在
        try:
            cur.execute(sql_insert)
            # 提交
            db.commit()
        except Exception as e:
            print("错误信息:%s" % str(e))
            # 错误回滚
            db.rollback()
        finally:
            db.close()
    if __name__ == '__main__':
        sql_add = "insert student(id,name,age) values (10022,'张三',20)"
        insert_db(sql_add)
  • 相关阅读:
    LeetCode(287)Find the Duplicate Number
    LeetCode(290) Word Pattern
    LeetCode(205)Isomorphic Strings
    LeetCode(201) Bitwise AND of Numbers Range
    LeetCode(200) Number of Islands
    LeetCode(220) Contains Duplicate III
    LeetCode(219) Contains Duplicate II
    命令行执行Qt程序
    LeetCode(228) Summary Ranges
    redis 的安装和使用记录
  • 原文地址:https://www.cnblogs.com/yitao326/p/10557606.html
Copyright © 2011-2022 走看看