利用脚本和Pymysql对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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值