python连接mysql数据库增删改查

什么是 PyMySQL?

  • PyMySQL 是在 Python3.x 版本中用于连接 MySQL 服务器的一个库,Python2中则使用mysqldb。

  • PyMySQL 遵循 Python 数据库 API v2.0 规范,并包含了 pure-Python MySQL 客户端库。

PyMySQL 安装

 $ pip3 install PyMySQL

连接数据库

#!/usr/bin/python
# -*- coding: UTF-8 -*-

import pymysql


def Connection():
    try:
        db = pymysql.connect(host="localhost", user="root", password="123", database="students")
        print('数据库连接成功!')
    except pymysql.Error as e:
        print('数据库连接失败'+str(e))
    finally:
        db.close()
        
Connection()

  • 1 导入数据库模块
  • 2 调用pymysql下的connect函数连接数据库

捕捉异常,出错的时候方便排除错误

connect()函数
host 是 localhost
user 是 用户,使用root或者其他用户
password 是 数据库密码,填写自己的密码
database 是 我们要连接哪一个数据库,我连接的是students数据库

运行结果:

在这里插入图片描述

创建数据表


#!/usr/bin/python
# -*- coding: UTF-8 -*-

import pymysql


def CreateTable():
    db = pymysql.connect(host="localhost", user="root", password="123", database="students")
    cur = db.cursor()
    try:
        cur.execute('DROP TABLE IF EXISTS student')
        sqlQuery = '''CREATE TABLE student(
                                   id  int  primary key,
                                   name CHAR(20) NOT NULL ,
                                   classroom CHAR(20),
                                   email CHAR(20),
                                   age int )'''
        cur.execute(sqlQuery)
        print("数据表创建完成!")
    except pymysql.Error as error:
        print("数据表创建失败:" + str(error))
        db.rollback()
    finally:
        db.close()

CreateTable()

在students数据库中创建student表

  • 用db的cursor创建一个游标
  • SQL语句太长就保存下来
  • 使用游标的execute函数执行SQL语句
  • 如果出现异常使用rollback函数进行数据回滚操作

运行结果:

在这里插入图片描述

增加一条记录

#!/usr/bin/python
# -*- coding: UTF-8 -*-

import pymysql


def Insert():
    db = pymysql.connect(host="localhost", user="root", password="123", database="students")
    cur = db.cursor()
    sqlQuery = " INSERT INTO Student (id, name, classroom, email, age) VALUE (%s,%s,%s,%s,%s) "
    value = (1010, "大黄","1班", "123.com", 20)
    try:
        cur.execute(sqlQuery, value)
        db.commit()
        print('数据插入成功!')
    except pymysql.Error as error:
        print("数据插入失败:" + str(error))
        db.rollback()
    finally:
        db.close()

Insert()

在students数据库的student表中插入一条学生记录

  • sql语句的参数保存在value中
  • 如果插入失败,就进行数据回滚操作
  • 如果成功要进行commit提交操作
  • 最后关闭

运行结果:

在这里插入图片描述

更新一条记录

#!/usr/bin/python
# -*- coding: UTF-8 -*-

import pymysql



def Update():
    db = pymysql.connect(host="localhost", user="root", password="123", database="students")
    cur = db.cursor()
    sqlQuery = "UPDATE Student SET age= %s WHERE name=%s"
    name = "大黄"
    age = 19
    value = age, name
    try:
        cur.execute(sqlQuery, value)
        db.commit()
        print('数据更新成功!')
    except pymysql.Error as e:
        print("数据更新失败:" + str(e))
        # 发生错误时回滚
        db.rollback()
    finally:
        db.close()
Update()

更新students数据库的student表的一条记录

运行结果:

在这里插入图片描述

查找信息

#!/usr/bin/python
# -*- coding: UTF-8 -*-

import pymysql

def Find():
    db = pymysql.connect(host="localhost", user="root", password="123", database="students")
    cur = db.cursor()
    sqlQuery = "SELECT * FROM student"
    try:
        cur.execute(sqlQuery)
        results = cur.fetchall()
        for row in results:
            print('学号:%s , 姓名:%s ,班级:%s , 邮箱:%s , 年龄:%s ' % (row[0], row[1], row[2], row[3],row[4]))
    except pymysql.Error as e:
        print("数据查询失败:" + str(e))
    finally:
        db.close()
Find()

查询students数据库的student表的数据

  • 游标的fetchall()函数会拿到所有结果
  • 循环输出所有结果

运行结果:
在这里插入图片描述

删除一条信息

#!/usr/bin/python
# -*- coding: UTF-8 -*-

import pymysql


def Deletedata():
    db = pymysql.connect(host="localhost", user="root", password="123", database="students")
    cur = db.cursor()
    sqlQuery = "DELETE FROM Student where name=%s"
    try:
        cur.execute(sqlQuery, "大黄")
        db.commit()
        print('Date Deleted Successfully')
    except pymysql.Error as e:
        print("数据删除失败:" + str(e))
        # 发生错误时回滚
    finally:
        db.rollback()

Deletedata()        

删除students数据库的student表的一条记录

运行结果:

在这里插入图片描述

删除一张表

#!/usr/bin/python
# -*- coding: UTF-8 -*-

import pymysql

def Delete():
    db = pymysql.connect(host="localhost", user="root", password="123", database="students")
    cur = db.cursor()
    sqlQuery = 'DROP TABLE IF EXISTS student'
    try:
        cur.execute(sqlQuery)
        db.commit()
        print('表删除成功!')
    except pymysql.Error as e:
        print("表删除失败"+str(e))
    finally:
        db.close()

Delete()


删除students数据库的student表

运行结果:

在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/Lazy_Goat/article/details/118017321