python MySQL操作(增删改查)

Posted 楊木木8023

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python MySQL操作(增删改查)相关的知识,希望对你有一定的参考价值。

"""
创建一个学生表,如下:
CREATE DATABASE python_mysql_test01;
CREATE TABLE tb_student(
	stu_id INT PRIMARY KEY NOT NULL,
	stu_name VARCHAR(20) NOT NULL,
	stu_birth DATE,
	stu_addr VARCHAR(100)
);

插入一些数据:
INSERT INTO tb_student VALUES
	(1001, '张三丰', '1990-12-15', '湖北省武汉市'),
	(1002, '杨慕禅', '1998-08-09', '河南省焦作市');

最终的表如下所示:
stu_id       stu_name       stu_birth       stu_addr
1001         张三丰          1990-12-15      湖北省武汉市
1002         杨慕禅          1998-08-09      河南省焦作市

下面针对这个学生表进行增删改查的操作
"""

# 首先需要pip install pymysql
import pymysql
from pymysql import MySQLError


class PythonMysql:
    def __init__(self):
        # 连接数据库
        try:
            self.conn = pymysql.connect(host='1.1.1.1', port=3306,
                                        user='abc', password='123456',
                                        database='python_mysql_test01', charset='utf8')
        except Exception as error:
            print('连接出现问题!')
            print('失败原因:', error)
            exit()

    # 向数据库插入数据
    def insert_data(self):
        with self.conn.cursor() as cursor:
            try:
                # 插入SQL语句,result为返回的结果
                result = cursor.execute(
                    'insert into tb_student values (1004, "俞连舟", '
                    '"1999-07-29", "广东省珠海市")'
                )
                # 等于1代表1行被改变
                if result == 1:
                    print('添加成功')
                # 成功插入后需要提交才能同步在数据库中
                self.conn.commit()
            except MySQLError as error:
                print(error)
                self.conn.rollback()
            finally:
                # 操作执行完成后,需要关闭连接
                self.conn.close()

    # 删除数据库中的某一信息
    def delete_data(self):
        stu_id = input('输入需要删除的学生学号:')

        with self.conn.cursor() as cursor:
            try:
                result = cursor.execute(
                    'delete from tb_student where stu_id=%s', (stu_id,)
                )
                if result == 1:
                    print('删除成功')
                self.conn.commit()
            except MySQLError as error:
                print(error)
                self.conn.rollback()
            finally:
                self.conn.close()

    # 修改数据库中的某一记录的地址信息
    def update_data(self):
        stu_id = input('输入需要修改的学生学号:')
        stu_addr = input('输入新的地址信息:')

        with self.conn.cursor() as cursor:
            try:
                result = cursor.execute(
                    'update tb_student set stu_addr=%s where stu_id=%s', (stu_addr, stu_id,)
                )
                if result == 1:
                    print('修改成功')
                self.conn.commit()
            except MySQLError as error:
                print(error)
                self.conn.rollback()
            finally:
                self.conn.close()

    # 查询数据库中的信息
    def select_data(self):
        with self.conn.cursor() as cursor:
            cursor.execute('select stu_id, stu_name, stu_addr from tb_student')
            print('学号         姓名         家庭住址')
            for per_info in cursor.fetchall():
                for i in per_info:
                    print(i, end='\\t\\t')
                print()


if __name__ == '__main__':
    python_mysql = PythonMysql()

    # python_mysql.insert_data()
    # python_mysql.delete_data()
    # python_mysql.update_data()
    python_mysql.select_data()

以上是关于python MySQL操作(增删改查)的主要内容,如果未能解决你的问题,请参考以下文章

python对数据库mysql的操作(增删改查)

python MySQL操作(增删改查)

python MySQL操作(增删改查)

python MySQL操作(增删改查)

python操作mysql数据库实现增删改查

python操作mysql数据库实现增删改查