zoukankan      html  css  js  c++  java
  • PyMySQL基本操作

    什么是PyMySQL?

    PyMySQL 是在 Python3.x 中连接MySQL服务器的一个库(纯Python实现),Python2 中使用 MySQLdb

    PyMySQL安装

    pip install pymysql
    

    PyMySQL操作

    执行DQL语句

    # coding=utf-8
    import pymysql
    
    conn = pymysql.connect(
        host='192.168.30.161',          # 要连接数据库的IP或主机名
        port=3306,                      # 端口,默认3306
        user='root',                    # 用户名
        password='000000',              # 密码
        database='test',                # 数据库,之后可以更改
        charset='utf8'                  # 字符集
    )
    
    # 创建一个游标
    cursor = conn.cursor()
    # 以字典的方式返回数据
    # cursor = conn.cursor(cursor=pymysql.cursors.DictCursor)
    
    # 执行DQL语句
    cursor.execute('select * from student')
    
    print(cursor.fetchone())            # 从管道中取一条数据
    
    cursor.scroll(-1)                   # 将游标从当前位置向后移动一位(相对位置),即开头位置
    
    print(cursor.fetchall())            # 取所有数据
    
    cursor.scroll(0, mode='absolute')   # 将游标移动到开头(绝对位置)
    
    print(cursor.fetchmany(1000))       # 指定获取数量,超出查询结果的最大条数,则返回最大条数
    
    # 关闭游标
    cursor.close()
    #关闭数据库
    conn.close()
    

    执行DML语句

    • 在PyMySQL中执行QML语句时要commit提交才能真正写入到数据库,默认支持事务
    # coding=utf-8
    import pymysql
    
    conn = pymysql.connect(
        host='192.168.30.161',  # 要连接数据库的IP或主机名
        port=3306,  # 端口,默认3306
        user='root',  # 用户名
        password='000000',  # 密码
        database='test',  # 数据库,之后可以更改
        charset='utf8'  # 字符集
    )
    
    # 创建一个游标
    cursor = conn.cursor()
    try:
        # 开启事务
        conn.begin()
        
        sql= 'insert into student(sname,age,gender,addr,telnum) value("张三",20,1,"北京市","123456")'
        # 返回值是作用的行数
        rest = cursor.execute(sql)
        # 向数据库提交
        conn.commit()
        print(rest)
    
        sql = 'update student set telnum="10086" where telnum="123456"'
        cursor.execute(sql)
        # 手动抛出异常
        raise ValueError()
        conn.commit()
    
    except:
        # 回滚
        conn.rollback()
    # 关闭游标
    cursor.close()
    # 关闭数据库
    conn.close()
    
  • 相关阅读:
    hdu 4825 Xor Sum (01 Trie)
    hdu 5877 Weak Pair (Treap)
    bzoj 1861: [Zjoi2006]Book 书架 (splay)
    bzoj 1503: [NOI2004]郁闷的出纳员 (splay)
    hihocoder#1333 : 平衡树·Splay2 (区间操作)
    「BZOJ1251」序列终结者 (splay 区间操作)
    二进制运算符的相关运算
    Bzoj 1085: [SCOI2005]骑士精神 (dfs)
    Bzoj 1083: [SCOI2005]繁忙的都市 (最小生成树)
    Bzoj 1088: [SCOI2005]扫雷Mine (DP)
  • 原文地址:https://www.cnblogs.com/xiasir/p/12914666.html
Copyright © 2011-2022 走看看