python实现MySQL数据库数据的查询、添加、修改、删除

	python进行软件开,不管开发程序采用的是C/S架构还是 B/S架构,MySQL数据作为强大的数据处理、存储工具,在使用mysql作为python后端数据库,就需要对mysql数据进行增加、删除、查询、修改等操作。下面将详细介绍python操作mysql数据库的一些方法。

1、python本身软件并不携带有与mysql数据库的通信模块,在python操作数据库之前,需要调用python中的第三方模块pymysql。如果电脑山没有安装此模块,可用下面的命令在CMD窗口下进行模块安装。代码如下:

pip install pymysql

2、在电脑完成pymysql模块安装后,可在你的程序中进行调用此模块,调用代码如下:

import pymysql

3、建立与数据库的连接,当然,在程序建立与数据库的连接,你需在你的服务器上安装上mysql,并创建一个本地数据库管理用户或者外部数据库管理用户。同时,在写程序时,建议程序员单独编写一个函数用于执行程序与数据库的连接。代码演示如下:

def open():
    """
    建立数据库连接
    :return: 数据数据
    """
    db = pymysql.connect(host="192.168.40.128", user="root", password="root123", database="student_db", charset="utf8")
    return db

如果程序和数据库都运行在一台设备上,host也可写成“host = localhost”
4、通过python实现mysql数据库的查询。mysql数据库的查询可以分为两种,一种可以对数据库某个表内的数据进行查询,一种可以对数据表内的特定数据进行查询。
第一种:对数据表内的所有数据进行查询,查询显示结果是一个元组tuple。代码演示如下:

def query1(sql):
    """
    不带参数查询
    :param sql:
    :return:
    """
    db = open()
    cursor = db.cursor()  # 使用cursor()方法获取游标
    cursor.execute(sql)  # 执行sql查询语句
    result = cursor.fetchall()  # 记录查询结果
    cursor.close()  # 关闭游标
    db.close()  # 关闭数据库连接
    return result  # 返回查询结果
if __name__ == "__main__":
    try:
        sql2 = "select * from user_info"
        tuple = query1(sql2)
        print(tuple)
        for index in range(len(tuple)):
            temp_dict = dict()
            temp_dict["userName"] = tuple[index][0]
            temp_dict["userPwd"] = tuple[index][1]
            all_user_info.append(temp_dict)
        print(all_user_info)
    except:
        print("数据读取错误!")

第二种:对数据内特定的数据进行查询。查询结果是元组tuple。代码演示如下:

def query(sql, *keys):
    """
    带参数查询数据库数据
    :return:
    """
    db = open()  # 连接数据库
    cursor = db.cursor()  # 使用cursor()方法获取操作游标
    cursor.execute(sql, keys)  # 执行查询sql 语句
    result = cursor.fetchall()  # 记录查询结果
    cursor.close()  # 关闭游标
    db.close()  # 关闭数据库连接
    return result  # 返回查询结果

if __name__ == "__main__":
    try:
        sql = "select * from user_info where userName=%s and userPwd=%s"
        val = ("bob", "bob")
        tuple = query(sql)
        print(tuple)
        for index in range(len(tuple)):
            temp_dict = dict()
            temp_dict["userName"] = tuple[index][0]
            temp_dict["userPwd"] = tuple[index][1]
            all_user_info.append(temp_dict)
        print(all_user_info)
    except:
        print("数据读取错误!")

5、通过python实现单条数据的添加。代码演示如下:

def insert(sql, values):
    """
    向数据库插入数据,插入的values是一个tuple
    :param sql: 运行sql插入语句
    :return: 返回插入结果
    """
    db = open()  # 打开数据库连接
    cursor = db.cursor()  # 使用cursor()方法获取游标
    cursor.execute(sql, values)
    db.commit()
    cursor.close()
    db.close()
    return cursor.rowcount

if __name__ == "__main__":
    try:
        sql1 = "insert into user_info (userName,userPwd) values (%s,%s)"
        val = ("bob", "bob")
        print(insert(sql,val)"条数据添加成功")
    except:
        print("数据操作错误!"

6、通过python实现多条数据批量添加到数据库中,使用executemany()方法,添加的元素必须是一个list集合中的元素。代码演示如下:

def insert(sql, values):
    """
    向数据库插入数据,插入的values是一个tuple
    :param sql: 运行sql插入语句
    :return: 返回插入结果
    """
    db = open()  # 打开数据库连接
    cursor = db.cursor()  # 使用cursor()方法获取游标
    cursor.executemany(sql, values)
    db.commit()
    cursor.close()
    db.close()
    return cursor.rowcount

if __name__ == "__main__":
    try:
        sql1 = "insert into user_info (userName,userPwd) values (%s,%s)"
        val = [("bob", "bob"),("tom", "tom")]
        print(insert(sql,val)"条数据添加成功")
    except:
        print("数据操作错误!"

7、通过python实现mysql数据数据的删除。代码演示如下:

def delete(sql, values):
    """
    删除数据库数据
    :param sql:
    :return:
    """
    db = open()  # 打开数据库连接
    cursor = db.cursor()  # 使用cursor()方法获取游标
    cursor.execute(sql, values)
    db.commit()  # 执行修改
    cursor.close()
    db.close()
    return cursor.rowcount

if __name__ == "__main__":
    try:
       sql_del = "delete from user_info where userName = %s"
        keys = "test"
        print(delete(sql_del, keys),"条数据删除成功!")
    except:
        print("数据读取错误!")

8、通过python实现数据库库表内数据更新。代码演示如下:

def update(sql, values):
    """
    更新数据库数据
    :param sql:
    :param values:
    :return:
    """
    db = open()  # 打开数据库连接
    cursor = db.cursor()  # 使用cursor()方法获取游标
    cursor.execute(sql, values)# 执行sql数据修改语句
    db.commit() # 提交数据
    cursor.close() # 关闭游标
    db.close() # 关闭数据库连接
    return cursor.rowcount

if __name__ == "__main__":
    try:
        sql_update = "update user_info set userName = %s where userPwd=%s"
        val = ('test', '123456')
        print(update(sql_update, val),"条数据被修改!")
    except:
        print("数据读取错误!")

你可能感兴趣的:(数据库,mysql,python)