下载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表中的数据: