【Python】pymysql连接MySQL数据库

时间:2022-10-20 18:55:26

使用pymysql连接数据库并进行增删改查的步骤

一、导入pymysql并获取连接

import pymysql

DBHOST = 'localhost'
DBUSER = 'root'
DBPASS = 'cuican233'
DBNAME = 'test'

try:
    db = pymysql.connect(host=DBHOST,user=DBUSER, password=DBPASS, database=DBNAME)
    print('数据库连接成功!')
except pymysql.Error as e:
    print('数据库连接失败'+str(e))

二、创建一张表

  1. 创建一个游标cur = db.cursor()
  2. 编辑sql语句
cur = db.cursor()
sqlQuery = "CREATE TABLE Student(Name CHAR(20) NOT NULL ,major CHAR(20),student_number CHAR(20))"
cur.execute(sqlQuery)
print('表创建成功!')

三、插入数据

  1. 编辑sql语句
  2. 编辑准备插入的值
  3. 执行sql语句
sql1="insert into student(Name,major,student_number) values(%s,%s,%s)"
value=('崔灿','软件工程','542013460404')
cur.execute(sql1,value)
db.commit()
print('数据插入成功!')

四、查询数据

  1. 编辑sql语句
  2. 使用fetchall()方法接收全部的返回结果行
sql2 = "SELECT * FROM student"
    try:
        cur.execute(sql2)
        results = cur.fetchall()
        for row in results:
            name = row[0]
            major = row[1]
            student_number = row[2]
            print('姓名:%s,专业:%s,学号:%s' % (name, major, student_number))
    except pymysql.Error as e:
        print("数据查询失败:" + str(e))

按条件查询:

sql3 = "SELECT * FROM student where Name='崔灿'"
cur.execute(sql3)
results2 = cur.fetchall()
print(results2)

实例

使用pymysql将自己的姓名、年级专业、以及学号存入表中,并 且使用自己的名字条件查询,获取所有信息,打印出来

import pymysql #导入pymysql库

DBHOST = 'localhost' #配置地址信息
DBUSER = 'root' #配置用户名信息
DBPASS = 'cuican233' #配置密码信息
DBNAME = 'test' #配置数据库名称信息

try:
    db = pymysql.connect(host=DBHOST,user=DBUSER, password=DBPASS, database=DBNAME) #调用pymysql类的connect方法来获取连接
    print('数据库连接成功!') #连接成功后输出相关信息

    cur = db.cursor() #定义一个游标
    # sqlQuery = "CREATE TABLE student(Name CHAR(20) NOT NULL ,major CHAR(20),student_number CHAR(20))" #写一个创建数据库表的sql语句保存到sqlQuery变量中
    # cur.execute(sqlQuery) #利用游标的execute方法执行SQL语句
    # print('表创建成功!') #创建成功后输出相关信息
    # sql1="insert into student(Name,major,student_number) values(%s,%s,%s)" #写一个插入数据库的sql语句保存到sql1变量中
    # value=('张三','软件工程','542013460405') #写要传入的变量值保存到value变量中
    # cur.execute(sql1,value) #利用游标的execute方法执行SQL语句
    # db.commit() #调用数据库对象的commit方法将相关信息提交
    # print('数据插入成功!') #插入成功后输出相关信息

    sql2 = "SELECT * FROM student" #写一个查询数据库数据的sql语句保存到sql2变量中
    try:
        cur.execute(sql2) #利用游标的execute方法执行SQL语句
        results = cur.fetchall() #将查询到的结果返回值保存到result元组中进行保存
        for row in results: #遍历元组
            name = row[0] #将第一个值赋给变量name
            major = row[1] #将第二个值赋给变量major
            student_number = row[2] #将第三个值赋给变量student_number
            print('姓名:%s,专业:%s,学号:%s' % (name, major, student_number)) #输出查询到的相关信息
    except pymysql.Error as e:
        print("数据查询失败:" + str(e)) #若没查询到则输出相关报错信息

    sql3 = "SELECT * FROM student where Name='崔灿'" #写一个条件查询数据库数据的sql语句保存到sql2变量中
    cur.execute(sql3) #利用游标的execute方法执行SQL语句
    results2 = cur.fetchall() #将查询到的结果返回值保存到result元组中进行保存
    print(results2) #输出查询到的相关信息
except pymysql.Error as e:
    print('数据库连接失败'+str(e)) #若数据库连接失败则输出相关报错信息