美文网首页数据库
在python中使用mysql数据库

在python中使用mysql数据库

作者: Pope_Li | 来源:发表于2018-11-16 16:51 被阅读0次

      在之前的学习中我们在登录系统操作的时候,数据都是储存在本地的一个文件中,这种操作在实际运用中肯定是不可取的,因为在实际中我们的数据都是存储在数据库中,用户注册的时候把注册信息存在数据库中,在登录的时候直接访问数据库进行下一步操作.那么如何在python3 中进行mysql数据库操作呢?

    python3连接mysql

      在python中使用mysql,需要使用一个第三方模块,这个模块就是PYMySQL,在使用的时候调用这个模块就行,在python2中则是使用mysqldb,在Django中也是使用pymsql连接mysql数据库.

    安装pymsql

      在使用pymsql的之前,我们需要知道在python的IDE中没有这个库,需要我们自己安装,安装非常的简单,只需要打开电脑的终端,然后输入下列代码就行:

    pip install pymysql
    

    这样pymysql就已经安装好了在python的IDE中再导入一下就行.

    连接数据库

    注意事项
    在连接数据库的时候我们需要注意几个问题,这也是使用数据库的前提

    1. 拥有一个mysql数据库,这个数据库可以是本地的也可以是其他地方的,但是必须要有.
    2. 你有可以连接该数据库的用户名和密码,在数据库里你得获得授权.
    3. 你有一个有权限操作的库

    基本使用

    1. 导入pymysql模块
      和其他模块的导入一样,我们需要导入下pymsql这个模块,导入的语句如下:

    import pymsql
    

    2. 链接数据库
      再导入完之后我们就需要开始连接mysql数据库:

    conn = pymsql.connect(host='你的数据库的地址',
                                         user='用户名',
                                         password='密码',
                                        database='数据库名',
                                        charset='utf8')
    

      到此你就登录了你要登录的数据库了,在这有个重要的事!!! utf8!utf8!utf8! 重要的事情说三遍,记住不带-.带-就错了.
    3. 获得光标对象
      我们登录后要操作mysql数据库,我们需要得到一个可以执行sql语句的光标对象,就像在终端上一样需要有个定位.

    cursor = conn.cursor()
    

    4. 执行sql语句
      获得光标后,我们需要开始执行SQL语句.

    cursor.execute('select * from userinfo;')
    

    这个是默认返回元组类型的数据.

    cursor = conn.cursor(cursor=pymysql.cursors.DictCursor)
    

    返回的是字典类型的数据
    5.提交
    在执行完sql语句之后,我们需要提交,数据才会保存到数据库

    conn.commit()
    

    6.回滚
    在执行增删改操作时,如果不想提交前面的操作,可以使用 rollback() 回滚取消操作.

    # 导入pymysql模块
    import pymysql
    # 连接database
    conn = pymysql.connect(host=“你的数据库地址”, user=“用户名”,password=“密码”,database=“数据库名”,charset=“utf8”)
    # 得到一个可以执行SQL语句的光标对象
    cursor = conn.cursor()
    sql = "INSERT INTO USER1(name, age) VALUES (%s, %s);"
    username = "DSB"
    age = 18
    try:
        # 执行SQL语句
        cursor.execute(sql, [username, age])
        # 提交事务
        conn.commit()
    except Exception as e:
        # 有异常,回滚事务
        conn.rollback()
    cursor.close()
    conn.close()
    

    7.关闭

    • 关闭光标对象
    cursor.close()
    
    • 关闭连接
    conn.close()
    

    增删改查操作

      在pymysql模块下对数据库进行增删改查也是可以的.同在终端对数据库增删改查一样.

      在pymsql模块中,我们连接好了数据库,就可以对数据库里边的表进行增加操作了.

    # 导入pymysql模块
    import pymysql
    # 连接database
    conn = pymysql.connect(host=“你的数据库地址”, user=“用户名”,password=“密码”,database=“数据库名”,charset=“utf8”)
    # 得到一个可以执行SQL语句的光标对象
    cursor = conn.cursor()
    sql = "INSERT INTO USER1(name, age) VALUES (%s, %s);"
    username = "DSB"
    age = 18
    # 执行SQL语句
    cursor.execute(sql, [username, age])
    # 提交事务
    conn.commit()
    cursor.close()
    conn.close()
    

    其中,%s是占位符.如果数据输入有误就用回滚取消操作,在操作完之后获取插入数据的ID

    # 导入pymysql模块
    import pymysql
    # 连接database
    conn = pymysql.connect(host=“你的数据库地址”, user=“用户名”,password=“密码”,database=“数据库名”,charset=“utf8”)
    # 得到一个可以执行SQL语句的光标对象
    cursor = conn.cursor()
    sql = "INSERT INTO USER1(name, age) VALUES (%s, %s);"
    username = "DSB"
    age = 18
    try:
        # 执行SQL语句
        cursor.execute(sql, [username, age])
        # 提交事务
        conn.commit()
        # 提交之后,获取刚插入的数据的ID
        last_id = cursor.lastrowid
    except Exception as e:
        # 有异常,回滚事务
        conn.rollback()
    cursor.close()
    conn.close()
    

    # 导入pymysql模块
    import pymysql
    # 连接database
    conn = pymysql.connect(host=“你的数据库地址”, user=“用户名”,password=“密码”,database=“数据库名”,charset=“utf8”)
    # 得到一个可以执行SQL语句的光标对象
    cursor = conn.cursor()
    sql = "DELETE FROM USER1 WHERE id=%s;"
    try:
        cursor.execute(sql, [4])
        # 提交事务
        conn.commit()
    except Exception as e:
        # 有异常,回滚事务
        conn.rollback()
    cursor.close()
    conn.close()
    

    # 导入pymysql模块
    import pymysql
    # 连接database
    conn = pymysql.connect(host=“你的数据库地址”, user=“用户名”,password=“密码”,database=“数据库名”,charset=“utf8”)
    # 得到一个可以执行SQL语句的光标对象
    cursor = conn.cursor()
    # 修改数据的SQL语句
    sql = "UPDATE USER1 SET age=%s WHERE name=%s;"
    username = "Alex"
    age = 80
    try:
        # 执行SQL语句
        cursor.execute(sql, [age, username])
        # 提交事务
        conn.commit()
    except Exception as e:
        # 有异常,回滚事务
        conn.rollback()
    cursor.close()
    conn.close()
    

    1. 查询单条数据

    # 导入pymysql模块
    import pymysql
    # 连接database
    conn = pymysql.connect(host=“你的数据库地址”, user=“用户名”,password=“密码”,database=“数据库名”,charset=“utf8”)
    # 得到一个可以执行SQL语句的光标对象
    cursor = conn.cursor()
    # 查询数据的SQL语句
    sql = "SELECT id,name,age from USER1 WHERE id=1;"
    # 执行SQL语句
    cursor.execute(sql)
    # 获取单条查询数据
    ret = cursor.fetchone()
    cursor.close()
    conn.close()
    # 打印下查询结果
    print(ret)
    

    2. 查询多条数据

    # 导入pymysql模块
    import pymysql
    # 连接database
    conn = pymysql.connect(host=“你的数据库地址”, user=“用户名”,password=“密码”,database=“数据库名”,charset=“utf8”)
    # 得到一个可以执行SQL语句的光标对象
    cursor = conn.cursor()
    # 查询数据的SQL语句
    sql = "SELECT id,name,age from USER1;"
    # 执行SQL语句
    cursor.execute(sql)
    # 获取多条查询数据
    ret = cursor.fetchall()
    cursor.close()
    conn.close()
    # 打印下查询结果
    print(ret)
    

    查询时移动光标

    1. 可以获取指定数量的数据
    cursor.fetchmany(3)
    2. 光标按绝对位置移动1
    cursor.scroll(1, mode="absolute")
    3. 光标按照相对位置(当前位置)移动1
    cursor.scroll(1, mode="relative")

    相关文章

      网友评论

        本文标题:在python中使用mysql数据库

        本文链接:https://www.haomeiwen.com/subject/lnazxqtx.html