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

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

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

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

一.数据准备

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

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

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

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

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

2.查看创建的class表

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

二.连接数据库

1.pycharm创建新项目

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

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()


运行结果:python操作mysql实现增删改查(包括单条新增,多条新增,批量新增等,全网最详细)_第6张图片

三.增加数据

1.单条

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

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

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()


运行结果:

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

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

2.多条

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

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

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()


运行结果:

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

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

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

3.批量新增

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

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

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()


运行结果:

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

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

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

四.修改数据

1.单条

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

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

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()


运行结果:

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

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

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

2.多条

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

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

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()


运行结果:

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

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

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

五.删除数据

1.单条

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

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

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()


运行结果:

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

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

省略

2.多条

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

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

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()


运行结果:

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

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

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

你可能感兴趣的:(mysql,python,mysql,数据库,python)