程序员节小福利:使用python脚本对MySQL和pymysql对MySQL数据库进行增删改查(附python脚本实例代码)

使用python脚本和Pymysql对MySQL进行增删改查

一.引子

笔者刚刚整理完有关mysql管理的相关内容(基础知识以及集群搭建),但是有个硬伤还是不得不解决。笔者之前从事的是教育行业,公司不算大也不算小。对于学生数据的储存和管理是一个非常头疼的问题。当时主要是用excel表格进行管理学生数据。在搭完mysql储存之后,数据存储瞬间香起来了。但是一行行输入命令也是一个要人命的活,所以笔者开发了一个python脚本来灵活对mysql进行管理。

二.环境准备

(一).mysql数据库准备

1.下载安装包:
mysql57-community-release-el7-10.noarch.rpm
yum -y install mysql57-community-release-el7-10.noarch.rpm
yum -y install mysql-community-server
2.开启数据库:
systemctl start mysqld.service
systemctl status mysqld.service 查看是否开启
netstat -antp | grep :3306
3.找到密码:
grep “password” /var/log/mysqld.log
4.进入数据库:
mysql -uroot -pwJR+zqjWl3Mq
5.修改原始密码:
ALTER USER ‘root’@‘localhost’ IDENTIFIED BY ‘Root@123’;
6.创建用户登录:
grant all on . to ‘qian’@’%’ identified by ‘Root@456’;
7.刷新权限:
flush privileges;
8.创建python脚本需要管理的数据库class19001
creat database class19001

(二).pymysql连接数据库

1.pymysql介绍:
PyMySQL 是在 Python3.x 版本中用于连接 MySQL 服务器的一个库,Python2中则使用mysqldb。
PyMySQL 遵循 Python 数据库 API v2.0 规范,并包含了 pure-Python MySQL 客户端库。

2.pymysql下载安装:
下载地址:https://github.com/PyMySQL/PyMySQL
下载方式1:pip3 install PyMySQL
下载方式2(如果pip命令不支持,使用git命令):

$ git clone https://github.com/PyMySQL/PyMySQL
$ cd PyMySQL/
$ python3 setup.py install

定制版本:

$ # X.X 为 PyMySQL 的版本号
$ curl -L https://github.com/PyMySQL/PyMySQL/tarball/pymysql-X.X | tar xz
$ cd PyMySQL*
$ python3 setup.py install
$ # 现在你可以删除 PyMySQL* 目录

安装的过程中可能会出现"ImportError: No module named setuptools"的错误提示,意思是你没有安装setuptools,你可以访问https://pypi.python.org/pypi/setuptools 找到各个系统的安装方法。

Linux 系统安装实例:
$ wget https://bootstrap.pypa.io/ez_setup.py
$ python3 ez_setup.py

3.pymysql连接数据库:
import pymysql(在python脚本中导入pymysql模块就好了)

三.python脚本实例(实现教育行业学生数据库系统管理)

#!/usr/bin/python3(在shell中添加环境)

"""
数据库学生管理系统
"""
import pymysql
# 定义学生类
class Student(object):
    def print_main_menu(self):
        print("数据库学生管理系统".center(22,"="))
        print("1.添加".center(12))
        print("2.删除".center(12))
        print("3.修改".center(12))
        print("4.查看".center(12))
        print("5.退出".center(12))
        print("="*30)

   #创建表结构
    def create_stu_table(self):
        db = pymysql.connect("10.10.35.11", "root", "Root@123","class19001")
        cursor = db.cursor()
        cursor.execute("drop table if exists classroom01")
        sql = """create table classroom01 (
                 id int unsigned not null auto_increment,
                 Name char(20) not null,
                 Sex char(2),
                 Age int(20),
                 Number char(10),
                 Telephone int(30),
                 Back char(50),
                 primary key(id))"""
        cursor.execute(sql)
        db.close()

    #添加表数据
    def insert_stu_message(self):
        db = pymysql.connect("10.10.35.11", "root", "Root@123", "class19001")
        cursor = db.cursor()
        name = input("学生姓名:")
        sex = input("学生性别:")
        age = input("学生年龄:")
        number = input("学生年级:")
        telephone = input("学生联系方式:")
        back = input("学生备注:")
        sql = "insert into classroom01(Name,Sex,Age,Number,Telephone,Back) " \
              "values('%s','%s','%s','%s','%s','%s')" %(name, sex, age, number, telephone, back)
        try:
            cursor.execute(sql)
            db.commit()
        except Exception as  err:
            print(err)
            db.rollback()
        db.close()

    #删除表数据
    def del_stu_message(self):
        db = pymysql.connect("10.10.35.11", "root", "Root@123", "class19001")
        cursor = db.cursor()
        name = input("输入要删除学生的姓名:")
        sql = "delete from classroom01 where Name = '%s'" % (name)
        try:
            cursor.execute(sql)
            db.commit()
        except:
            print("erro")
            db.rollback()
        db.close()


    #更新表数据
    def change_stu_message(self):
        db = pymysql.connect("10.10.35.11", "root", "Root@123", "class19001")
        cursor = db.cursor()
        i = input("请输入修改前的学生信息id号(修改前的):")
        name = input("输入修改后的学生姓名:")
        sex = input("输入修改后的学生性别(要添加的):")
        age = input("输入修改后的学生年龄:")
        number = input("输入修改后的学生年级:")
        telephone = input("输入修改后的学生联系方式:")
        back = input("输入修改后的学生备注:")

        sql = "update classroom01 set Name ='%s',Sex = '%s'," \
              "Age = '%s',Number = '%s',Telephone = '%s',Back = '%s'" \
              "where id = '%s'" % (name,sex,age,number,telephone,back,i)

        try:
            cursor.execute(sql)
            db.commit()
        except Exception as  err:
            print(err)
            db.rollback()
        db.close()

    #查看表数据
    def view_stu_information(self):
        db = pymysql.connect("10.10.35.11", "root", "Root@123", "class19001")
        cursor = db.cursor()
        sql = """select * from classroom01"""
        try:
            cursor.execute(sql)
            results = cursor.fetchall()
            print(results)
            for row in results:
                i = row[0]
                name = row[1]
                sex = row[2]
                age = row[3]
                number = row[4]
                telephone = row[5]
                back = row[6]
                print("i=%s,name=%s,sex=%s,age=%s,number=%s,telephone=%s,"
                      "back='%s'" % (i,name,age,sex,number,telephone,back))
        except:
            print("错误")
        db.close()

#执行模块
if __name__=='__main__':
    stu = Student()
    stu.print_main_menu()
    #stu.create_stu_table()
    while True:
        num = int(input("输入你的选择1-5:"))
        if num == 1:
            stu.insert_stu_message()
        elif num == 2:
            stu.del_stu_message()
        elif num == 3:
            stu.change_stu_message()
        elif num == 4:
            stu.view_stu_information()
        elif num == 5:
            break

以上便是有关使用python对数据库列表进行增删改查的基本操作了,这个脚本笔者用了很久,完全可以照搬照抄。就相当于给大家1024程序员节的一个小福利吧。技术之路,重在学习,用在实处,感谢大家的浏览。

©️2020 CSDN 皮肤主题: 深蓝海洋 设计师:CSDN官方博客 返回首页