• PyMysql



    """"
    PyMySQL介绍
    PyMySQL 是在 Python3.x 版本中用于连接 MySQL 服务器的一个库,Python2中则使用mysqldb。
    Django中也可以使用PyMySQL连接MySQL数据库。

    基本使用
    # 导入pymysql模块
    import pymysql
    # 连接database
    conn = pymysql.connect(host=“你的数据库地址”, user=“用户名”,password=“密码”,
    database=“数据库名”,charset=“utf8”)
    # 得到一个可以执行SQL语句的光标对象
    cursor = conn.cursor()
    # 定义要执行的SQL语句
    sql =CREATE TABLE USER1 (
    id INT auto_increment PRIMARY KEY ,
    name CHAR(10) NOT NULL UNIQUE,
    age TINYINT NOT NULL
    )ENGINE=innodb DEFAULT CHARSET=utf8;

    # 执行SQL语句
    cursor.execute(sql)
    # 关闭光标对象
    cursor.close()
    # 关闭数据库连接
    conn.close()

    返回字典格式的数据
    conn = pymysql.connect(
    host="127.0.0.1", port=3306, user="root",
    password="123456", database="task", charset="utf8")
    cursor = conn.cursor(cursor=pymysql.cursors.DictCursor)
    cursor.execute("select * from goods;")
    ret2 = cursor.fetchall()
    print("=" * 100)
    cursor.close()
    conn.close()
    print(ret2)

    注意:
    charset=“utf8”,编码不要写成"utf-8"


    二 . 增删改查 操作

    1 . 增 加 插入数据失败回滚
    conn = pymysql.connect(host="127.0.0.1",port=3306, user="root", password="123456",database="task",charset="utf8")
    cursor = conn.cursor()
    sql = "insert into tb2(name, age) values(%s, %s);"

    name = "小刚"
    age = 22
    try:
    cursor.execute(sql, [name, age])
    conn.commit()
    except Exception as e:
    conn.rollback()
    print(e)
    cursor.close()
    conn.close()



    批量操作 (注意是cursor.executemany)

    conn = pymysql.connect(host="127.0.0.1",port=3306, user="root", password="123456",database="task",charset="utf8")
    cursor = conn.cursor()
    sql = "insert into tb2(name, age) values(%s, %s);"
    data = [
    ("ahuango",6),
    ("ahoongi",7),
    ]
    try:
    cursor.executemany(sql, data)
    conn.commit()
    except Exception as e:
    conn.rollback()
    print(e)
    cursor.close()
    conn.close()


    获取插入数据的ID(关联操作时会用到)

    conn = pymysql.connect(host="127.0.0.1",port=3306, user="root", password="123456",database="task",charset="utf8")
    cursor = conn.cursor()
    sql = "insert into tb2(name, age) values(%s, %s);"

    name = "小刚2"
    age = 20
    try:
    cursor.execute(sql, [name, age])
    conn.commit()

    # 获取刚插入数据的 id
    last_id = cursor.lastrowid
    print(last_id)
    except Exception as e:
    conn.rollback()
    print(e)
    cursor.close()
    conn.close()


    删除数据
    conn = pymysql.connect(host="127.0.0.1",port=3306, user="root", password="123456",database="task",charset="utf8")
    cursor = conn.cursor()
    sql = "delete from tb2 where id=%s;"

    try:
    cursor.executemany(sql, [10])
    conn.commit()
    except Exception as e:
    conn.rollback()
    print(e)
    cursor.close()
    conn.close()



    修改数据
    conn = pymysql.connect(host="127.0.0.1",port=3306, user="root", password="123456",database="task",charset="utf8")
    cursor = conn.cursor()
    sql = "update tb2 set age=%s where id=%s;"

    age = 88
    id = 12
    try:
    cursor.execute(sql, [age, id])
    conn.commit()
    except Exception as e:
    conn.rollback()
    print(e)
    cursor.close()
    conn.close()


    最重要的查看数据
    conn = pymysql.connect(host="127.0.0.1", port=3306, user="root", password="123456", database="task", charset="utf8")
    cursor = conn.cursor()
    sql = "select * from tb2;"

    cursor.execute(sql)
    ret1 = cursor.fetchone() #取一条
    ret2 = cursor.fetchall() #取全部的数据
    cursor.close()
    conn.close()
    print(ret1)
    print(ret2) #返回元组 形式


    进阶用法

    # 可以获取指定数量的数据
    cursor.fetchmany(3)
    # 光标按绝对位置移动1
    cursor.scroll(1, mode="absolute")
    # 光标按照相对位置(当前位置)移动1
    cursor.scroll(1, mode="relative")
  • 相关阅读:
    Linux下mysql使用systemctl restart mysqld命令失败
    Linux环境下mysql报错:bash: mysql: command not found 的解决方法
    Linux查看mysql是否启动的命令
    启动MySQL5.7时报错:initialize specified but the data directory has files in it. Aborting.
    ARM64架构下面安装mysql5.7.22
    Python3.6打开EAIDK-610开发板(计算机通用)摄像头拍照并保存
    Python的几种主动结束程序方式
    aarch64架构下安装tensorflow详细过程
    python代码在linux终端中执行报错:Unable to init server: Could not connect: Connection refused
    red hat 报错:apt-get:找不到命令
  • 原文地址:https://www.cnblogs.com/xuerh/p/8954546.html
Copyright © 2020-2023  润新知