python操作mysql实现增删改查(包括单条新增,多条新增,批量新增等,全网最详细)

下载mysql与navicat(可参考这两个文章)

MySQL安装教程,windows下(超详细,根据步骤一步步来)-CSDN博客

navicat连接mysql(windows下)-CSDN博客

一.数据准备

1.选中服务器右键–新建数据库

sql运行指令,可查看资源,如有需要可在资源中自行下载(并且会详细注明字段的含义)

2.查看创建的class表

二.连接数据库

1.pycharm创建新项目

2.连接数据库(前提:安装pymysql模块,pip install pymysql)

import pymysql
#建立数据库连接
conn=pymysql.connect(
    host='127.0.0.1', #主机名
    port=3306,#端口号
    user='root',#用户名
    password='123456',#密码
    db='testMysql',#数据库名
    charset='utf8'
)
#获取游标
cursor=conn.cursor()
#创建查询sql语句的函数
def search_sql():
    #执行sql语句
    sql='select * from class'
    rows=cursor.execute(sql) #返回结果是受影响的行数
    print(rows) #数据库的class还没有数据,所以rows应该是0
    # 判断是否连接成功
    if rows >= 0:
        print('数据库连接成功')
    else:
        print('数据库连接失败')
if __name__ == '__main__':
    search_sql()
    # 关闭游标
    cursor.close()
    # 关闭连接
    conn.close()


运行结果:

三.增加数据

1.单条

再原来的代码基础上,新增insert_sql()函数

import pymysql
#建立数据库连接
conn=pymysql.connect(
    host='127.0.0.1', #主机名
    port=3306,#端口号
    user='root',#用户名
    password='123456',#密码
    db='testMysql',#数据库名
    charset='utf8'
)
#获取游标
cursor=conn.cursor()
#创建查询sql语句的函数
def search_sql():
    #执行sql语句
    sql='select * from class'
    rows=cursor.execute(sql) #返回结果是受影响的行数
    print(rows) #数据库的class还没有数据,所以rows应该是0
    # 判断是否连接成功
    if rows >= 0:
        print('数据库连接成功')
    else:
        print('数据库连接失败')
#创建新增sql语句的函数-单条数据
def insert_sql():
    #执行sql
    sql='insert into class(cid,caption,grade_id) values(%s,%s,%s)'
    rows=cursor.execute(sql,('1','1年级','1'))
    #提交
    conn.commit()
    print(f'增加的行数{rows}')
if __name__ == '__main__':
    #search_sql()
    insert_sql()
    # 关闭游标
    cursor.close()
    # 关闭连接
    conn.close()


运行结果:

查看数据库class表中的数据:

2.多条

再原来的代码基础上,新增inserts_sql()函数

import pymysql
#建立数据库连接
conn=pymysql.connect(
    host='127.0.0.1', #主机名
    port=3306,#端口号
    user='root',#用户名
    password='123456',#密码
    db='testMysql',#数据库名
    charset='utf8'
)
#获取游标
cursor=conn.cursor()
#创建查询sql语句的函数
def search_sql():
    #执行sql语句
    sql='select * from class'
    rows=cursor.execute(sql) #返回结果是受影响的行数
    print(rows) #数据库的class还没有数据,所以rows应该是0
    # 判断是否连接成功
    if rows >= 0:
        print('数据库连接成功')
    else:
        print('数据库连接失败')
#创建新增sql语句的函数-单条数据
def insert_sql():
    #执行sql
    sql='insert into class(cid,caption,grade_id) values(%s,%s,%s)'
    rows=cursor.execute(sql,('1','1年级','1'))
    #提交
    conn.commit()
    print(f'增加的行数{rows}')
#创建新增sql语句的函数-多条数据
def inserts_sql():
    #执行sql
    sql='insert into class(cid,caption,grade_id) values(%s,%s,%s)'
    rows=cursor.executemany(sql,[('2','2年级','2'),('3','3年级','3'),('4','4年级','4')])
    #提交
    conn.commit()
    print(f'增加的行数{rows}')
if __name__ == '__main__':
    #search_sql()
    #insert_sql()
    inserts_sql()
    # 关闭游标
    cursor.close()
    # 关闭连接
    conn.close()


运行结果:

查看数据库class表中的数据:

3.批量新增

再原来的代码基础上,新增inserts_sql_many()函数

import pymysql
#建立数据库连接
conn=pymysql.connect(
    host='127.0.0.1', #主机名
    port=3306,#端口号
    user='root',#用户名
    password='123456',#密码
    db='testMysql',#数据库名
    charset='utf8'
)
#获取游标
cursor=conn.cursor()
#创建查询sql语句的函数
def search_sql():
    #执行sql语句
    sql='select * from class'
    rows=cursor.execute(sql) #返回结果是受影响的行数
    print(rows) #数据库的class还没有数据,所以rows应该是0
    # 判断是否连接成功
    if rows >= 0:
        print('数据库连接成功')
    else:
        print('数据库连接失败')
#创建新增sql语句的函数-单条数据
def insert_sql():
    #执行sql
    sql='insert into class(cid,caption,grade_id) values(%s,%s,%s)'
    rows=cursor.execute(sql,('1','1年级','1'))
    #提交
    conn.commit()
    print(f'增加的行数{rows}')
#创建新增sql语句的函数-多条数据
def inserts_sql():
    #执行sql
    sql='insert into class(cid,caption,grade_id) values(%s,%s,%s)'
    rows=cursor.executemany(sql,[('2','2年级','2'),('3','3年级','3'),('4','4年级','4')])
    #提交
    conn.commit()
    print(f'增加的行数{rows}')
#创建新增sql语句的函数-新增大量数据
def inserts_sql_many():
    #执行sql语句,批量新增,我这里演示就没插入那么多,自己想插入多少数据,自己在for循环里修改
    values=[]
    for i in range(100,106):
        values.append((i,str(i)+'年级',i))
    sql='insert into class(cid,caption,grade_id) values(%s,%s,%s)'
    rows=cursor.executemany(sql,values)
    #提交
    conn.commit()
    print(f'增加的行数{rows}')
if __name__ == '__main__':
    #search_sql()
    #insert_sql()
    #inserts_sql()
    inserts_sql_many()
    # 关闭游标
    cursor.close()
    # 关闭连接
    conn.close()


运行结果:

查看数据库class表中的数据:

四.修改数据

1.单条

再原来的代码基础上,新增update_sql()函数

import pymysql
#建立数据库连接
conn=pymysql.connect(
    host='127.0.0.1', #主机名
    port=3306,#端口号
    user='root',#用户名
    password='123456',#密码
    db='testMysql',#数据库名
    charset='utf8'
)
#获取游标
cursor=conn.cursor()
#创建查询sql语句的函数
def search_sql():
    #执行sql语句
    sql='select * from class'
    rows=cursor.execute(sql) #返回结果是受影响的行数
    print(rows) #数据库的class还没有数据,所以rows应该是0
    # 判断是否连接成功
    if rows >= 0:
        print('数据库连接成功')
    else:
        print('数据库连接失败')
#创建新增sql语句的函数-单条数据
def insert_sql():
    #执行sql
    sql='insert into class(cid,caption,grade_id) values(%s,%s,%s)'
    rows=cursor.execute(sql,('1','1年级','1'))
    #提交
    conn.commit()
    print(f'增加的行数{rows}')
#创建新增sql语句的函数-多条数据
def inserts_sql():
    #执行sql
    sql='insert into class(cid,caption,grade_id) values(%s,%s,%s)'
    rows=cursor.executemany(sql,[('2','2年级','2'),('3','3年级','3'),('4','4年级','4')])
    #提交
    conn.commit()
    print(f'增加的行数{rows}')
#创建新增sql语句的函数-新增大量数据
def inserts_sql_many():
    #执行sql语句,批量新增,我这里演示就没插入那么多,自己想插入多少数据,自己在for循环里修改
    values=[]
    for i in range(100,106):
        values.append((i,str(i)+'年级',i))
    sql='insert into class(cid,caption,grade_id) values(%s,%s,%s)'
    rows=cursor.executemany(sql,values)
    #提交
    conn.commit()
    print(f'增加的行数{rows}')
#创建修改sql语句的函数-单条数据
def update_sql():
    #执行sql
    sql='update class set caption=%s where cid=%s'
    rows=cursor.execute(sql,('修改年级','3'))
    #提交
    conn.commit()
    print(f'修改的行数{rows}')
if __name__ == '__main__':
    #search_sql()
    #insert_sql()
    #inserts_sql()
    #inserts_sql_many()
    update_sql()
    # 关闭游标
    cursor.close()
    # 关闭连接
    conn.close()


运行结果:

查看数据库class表中的数据:

2.多条

再原来的代码基础上,新增updates_sql()函数

import pymysql
#建立数据库连接
conn=pymysql.connect(
    host='127.0.0.1', #主机名
    port=3306,#端口号
    user='root',#用户名
    password='123456',#密码
    db='testMysql',#数据库名
    charset='utf8'
)
#获取游标
cursor=conn.cursor()
#创建查询sql语句的函数
def search_sql():
    #执行sql语句
    sql='select * from class'
    rows=cursor.execute(sql) #返回结果是受影响的行数
    print(rows) #数据库的class还没有数据,所以rows应该是0
    # 判断是否连接成功
    if rows >= 0:
        print('数据库连接成功')
    else:
        print('数据库连接失败')
#创建新增sql语句的函数-单条数据
def insert_sql():
    #执行sql
    sql='insert into class(cid,caption,grade_id) values(%s,%s,%s)'
    rows=cursor.execute(sql,('1','1年级','1'))
    #提交
    conn.commit()
    print(f'增加的行数{rows}')
#创建新增sql语句的函数-多条数据
def inserts_sql():
    #执行sql
    sql='insert into class(cid,caption,grade_id) values(%s,%s,%s)'
    rows=cursor.executemany(sql,[('2','2年级','2'),('3','3年级','3'),('4','4年级','4')])
    #提交
    conn.commit()
    print(f'增加的行数{rows}')
#创建新增sql语句的函数-新增大量数据
def inserts_sql_many():
    #执行sql语句,批量新增,我这里演示就没插入那么多,自己想插入多少数据,自己在for循环里修改
    values=[]
    for i in range(100,106):
        values.append((i,str(i)+'年级',i))
    sql='insert into class(cid,caption,grade_id) values(%s,%s,%s)'
    rows=cursor.executemany(sql,values)
    #提交
    conn.commit()
    print(f'增加的行数{rows}')
#创建修改sql语句的函数-单条数据
def update_sql():
    #执行sql
    sql='update class set caption=%s where cid=%s'
    rows=cursor.execute(sql,('修改年级','3'))
    #提交
    conn.commit()
    print(f'修改的行数{rows}')
#创建修改sql语句的函数-多条数据
def updates_sql():
    #执行sql
    sql='update class set caption=%s where cid=%s'
    rows=cursor.executemany(sql,[('修改1年级','100'),('修改2年级','101')])
    #提交
    conn.commit()
    print(f'修改的行数{rows}')
if __name__ == '__main__':
    #search_sql()
    #insert_sql()
    #inserts_sql()
    #inserts_sql_many()
    #update_sql()
    updates_sql()
    # 关闭游标
    cursor.close()
    # 关闭连接
    conn.close()


运行结果:

查看数据库class表中的数据:

五.删除数据

1.单条

再原来的代码基础上,新增delete_sql()函数

import pymysql
#建立数据库连接
conn=pymysql.connect(
    host='127.0.0.1', #主机名
    port=3306,#端口号
    user='root',#用户名
    password='123456',#密码
    db='testMysql',#数据库名
    charset='utf8'
)
#获取游标
cursor=conn.cursor()
#创建查询sql语句的函数
def search_sql():
    #执行sql语句
    sql='select * from class'
    rows=cursor.execute(sql) #返回结果是受影响的行数
    print(rows) #数据库的class还没有数据,所以rows应该是0
    # 判断是否连接成功
    if rows >= 0:
        print('数据库连接成功')
    else:
        print('数据库连接失败')
#创建新增sql语句的函数-单条数据
def insert_sql():
    #执行sql
    sql='insert into class(cid,caption,grade_id) values(%s,%s,%s)'
    rows=cursor.execute(sql,('1','1年级','1'))
    #提交
    conn.commit()
    print(f'增加的行数{rows}')
#创建新增sql语句的函数-多条数据
def inserts_sql():
    #执行sql
    sql='insert into class(cid,caption,grade_id) values(%s,%s,%s)'
    rows=cursor.executemany(sql,[('2','2年级','2'),('3','3年级','3'),('4','4年级','4')])
    #提交
    conn.commit()
    print(f'增加的行数{rows}')
#创建新增sql语句的函数-新增大量数据
def inserts_sql_many():
    #执行sql语句,批量新增,我这里演示就没插入那么多,自己想插入多少数据,自己在for循环里修改
    values=[]
    for i in range(100,106):
        values.append((i,str(i)+'年级',i))
    sql='insert into class(cid,caption,grade_id) values(%s,%s,%s)'
    rows=cursor.executemany(sql,values)
    #提交
    conn.commit()
    print(f'增加的行数{rows}')
#创建修改sql语句的函数-单条数据
def update_sql():
    #执行sql
    sql='update class set caption=%s where cid=%s'
    rows=cursor.execute(sql,('修改年级','3'))
    #提交
    conn.commit()
    print(f'修改的行数{rows}')
#创建修改sql语句的函数-多条数据
def updates_sql():
    #执行sql
    sql='update class set caption=%s where cid=%s'
    rows=cursor.executemany(sql,[('修改1年级','100'),('修改2年级','101')])
    #提交
    conn.commit()
    print(f'修改的行数{rows}')
#删除数据-单条
def delete_sql():
    #执行sql
    sql='delete from class where cid=%s'
    rows=cursor.execute(sql,('102',))
    #提交
    conn.commit()
    print(f'删除的行数{rows}')
if __name__ == '__main__':
    #search_sql()
    #insert_sql()
    #inserts_sql()
    #inserts_sql_many()
    #update_sql()
    # updates_sql()
    delete_sql()
    # 关闭游标
    cursor.close()
    # 关闭连接
    conn.close()


运行结果:

查看数据库class表中的数据:

省略

2.多条

再原来的代码基础上,新增deletes_sql()函数

import pymysql
#建立数据库连接
conn=pymysql.connect(
    host='127.0.0.1', #主机名
    port=3306,#端口号
    user='root',#用户名
    password='123456',#密码
    db='testMysql',#数据库名
    charset='utf8'
)
#获取游标
cursor=conn.cursor()
#创建查询sql语句的函数
def search_sql():
    #执行sql语句
    sql='select * from class'
    rows=cursor.execute(sql) #返回结果是受影响的行数
    print(rows) #数据库的class还没有数据,所以rows应该是0
    # 判断是否连接成功
    if rows >= 0:
        print('数据库连接成功')
    else:
        print('数据库连接失败')
#创建新增sql语句的函数-单条数据
def insert_sql():
    #执行sql
    sql='insert into class(cid,caption,grade_id) values(%s,%s,%s)'
    rows=cursor.execute(sql,('1','1年级','1'))
    #提交
    conn.commit()
    print(f'增加的行数{rows}')
#创建新增sql语句的函数-多条数据
def inserts_sql():
    #执行sql
    sql='insert into class(cid,caption,grade_id) values(%s,%s,%s)'
    rows=cursor.executemany(sql,[('2','2年级','2'),('3','3年级','3'),('4','4年级','4')])
    #提交
    conn.commit()
    print(f'增加的行数{rows}')
#创建新增sql语句的函数-新增大量数据
def inserts_sql_many():
    #执行sql语句,批量新增,我这里演示就没插入那么多,自己想插入多少数据,自己在for循环里修改
    values=[]
    for i in range(100,106):
        values.append((i,str(i)+'年级',i))
    sql='insert into class(cid,caption,grade_id) values(%s,%s,%s)'
    rows=cursor.executemany(sql,values)
    #提交
    conn.commit()
    print(f'增加的行数{rows}')
#创建修改sql语句的函数-单条数据
def update_sql():
    #执行sql
    sql='update class set caption=%s where cid=%s'
    rows=cursor.execute(sql,('修改年级','3'))
    #提交
    conn.commit()
    print(f'修改的行数{rows}')
#创建修改sql语句的函数-多条数据
def updates_sql():
    #执行sql
    sql='update class set caption=%s where cid=%s'
    rows=cursor.executemany(sql,[('修改1年级','100'),('修改2年级','101')])
    #提交
    conn.commit()
    print(f'修改的行数{rows}')
#删除数据-单条
def delete_sql():
    #执行sql
    sql='delete from class where cid=%s'
    rows=cursor.execute(sql,('102',))
    #提交
    conn.commit()
    print(f'删除的行数{rows}')
#删除数据-多条
def deletes_sql():
    #执行sql
    sql='delete from class where cid=%s'
    rows=cursor.executemany(sql,[('100',),('103',)])
    #提交
    conn.commit()
    print(f'删除的行数{rows}')
if __name__ == '__main__':
    #search_sql()
    #insert_sql()
    #inserts_sql()
    #inserts_sql_many()
    #update_sql()
    # updates_sql()
    #delete_sql()
    deletes_sql()
    # 关闭游标
    cursor.close()
    # 关闭连接
    conn.close()


运行结果:

查看数据库class表中的数据:

版权声明:本文为博主作者:阿里嘎多f原创文章,版权归属原作者,如果侵权,请联系我们删除!

原文链接:https://blog.csdn.net/weixin_42242910/article/details/134461007

共计人评分,平均

到目前为止还没有投票!成为第一位评论此文章。

(0)
社会演员多的头像社会演员多普通用户
上一篇 2024年5月6日
下一篇 2024年5月6日

相关推荐