zoukankan      html  css  js  c++  java
  • pymysql连接数据库,实现数据库增删改查

    1.数据库连接

    # 创建连接
    def create_conn():
        import pymysql
        conn = pymysql.connect(
            host='localhost',
            port=3306,
            user='root',
            password='root',
            database='py',
            charset='utf8'
        )
        # 得到一个可以执行SQL语句并且将结果作为字典返回的游标
        cursor = conn.cursor(cursor=pymysql.cursors.DictCursor)
        return conn, cursor
    # 关闭连接
    def close_conn(conn, cursor):
        # 关闭光标对象
        cursor.close()
        # 关闭数据库连接
        conn.close()

    2.增

    # 单条插入数据
    def InsertOneDB(sql, data):
        conn, cursor = create_conn()
        cursor.executemany(sql, data)
        conn.commit()
        close_conn(conn, cursor)
    
    sqlInsertOneDB = "insert into user444 (name,age) values (%s,%s);"
    data = [('john', 26)]
    InsertOneDB(sqlInsertOneDB, data)
    # 批量添加数据
    def InsertManyDB(sql, data):
        conn, cursor = create_conn()
        cursor.executemany(sql, data)
        conn.commit()
        close_conn(conn, cursor)
    
    data = [
        ('apollo', '28'),
        ('jack', '21'),
        ('merry', '29')
    ]
    sql = 'insert into user444(name,age) values(%s,%s);'
    InsertManyDB(sql, data)

    3.删

    # 删除数据
    def DeleteOneDB(sql, data):
        conn, cursor = create_conn()
        print(sql)
        cursor.execute(sql, data)
        conn.commit()
        close_conn(conn, cursor)
    
    # 定义将要执行的SQL语句
    sql = "delete from user333 where name=%s;"
    data = [("apollo11")]
    DeleteOneDB(sql, data)

    4.改

    # 更改数据
    def UpdataOneDB(sql, data):
        conn, cursor = create_conn()
        print(sql)
        cursor.execute(sql, data)
        conn.commit()
        close_conn(conn, cursor)
    
    sql = "update user333 set name=%s where name=%s;"
    data = ['Lily', 'jack11']
    UpdataOneDB(sql, data)

    5.查

    # 查询数据
    def SelectDB(sql, action, limit=None):
        conn, cursor = create_conn()
        cursor.execute(sql)
        if action == 'fetchone':
            ret = cursor.fetchone()  # 取一条
        elif action == 'fetchmany' and limit != None:
            ret = cursor.fetchmany(limit)  # 取三条
        else:
            ret = cursor.fetchall()  # 取全部
        for item in ret:
            print(item)
        close_conn(conn, cursor)
    
    
    # 执行查询的sql语句
    sql = "select name,age from user333;"
    # action可选值:fetchone,fetchmany,fetchall
    # fetchmany必须提供limit参数
    action = 'fetchmany'
    # 取数据库前3条数据
    SelectDB(sql, action, 3)
    # fetchall取所有数据
    SelectDB(sql, action)
    # fetchone取一条数据
    SelectDB(sql, action)

    6.创建表SQL

    create table userinfo(
      id int auto_increment primary key ,
      name varchar(32) not null unique ,
      age int(2)
    )engine =innodb default charset = utf8;
    #注意:charset='utf8' 不能写成utf-8
  • 相关阅读:
    51Nod 1239 欧拉函数之和
    51Nod 1244 莫比乌斯函数之和
    BZOJ 4805: 欧拉函数求和
    BZOJ 3944: Sum
    3.25阅读摘抄
    生活整洁之道
    1064. 朋友数(20)
    1063. 计算谱半径(20)
    1061. 判断题(15)
    1062. 最简分数(20)
  • 原文地址:https://www.cnblogs.com/apollo1616/p/10268874.html
Copyright © 2011-2022 走看看