- 操作数据库时,首先应把数据库打开,连接上;
- 如果数据库不是随电脑开机自动运行的话,可以用管理员身份运行cmd,输入 net start mysql 启动运行mysql;然后在MySQL 5.5 Command Line Client中输入密码就可以对数据库进行操作了;
- 操作完了可以在cmd中,输入 net stop mysql 停止运行mysql。
- 目录
- python 数据库 代码
- 启动运行mysql(这一步应在运行代码之前执行)
- MySQL 5.5 Command Line Client 位置
python 数据库 代码
- main.py
import db_connect as d
def main():
while True:
menu()
choice = int(input('请选择:'))
if choice in [0, 1, 2, 3, 4]:
if choice == 0:
answer = input('您确定要退出系统吗?y/n\n')
if answer == 'y' or answer == 'Y':
d.db.close()
print('谢谢您的使用!!!')
break
else:
continue
elif choice == 1:
d.insert() # 增加学生信息
elif choice == 2:
d.search() # 查找学生信息
elif choice == 3:
d.delete() # 删除学生信息
elif choice == 4:
d.modify() # 修改学生信息
def menu():
print('======================学生信息数据库操作=======================')
print('----------------------功能菜单-----------------------')
print('\t\t\t\t1.增加学生信息')
print('\t\t\t\t2.查找学生信息')
print('\t\t\t\t3.删除学生信息')
print('\t\t\t\t4.修改学生信息')
print('\t\t\t\t0.退出系统')
print('--------------------------------------------------------')
if __name__ == '__main__':
main()
- db_connect.py
import pymysql
db = pymysql.connect("localhost", "root", '111111', "student")
# db = pymysql.connect("连接数据库名", "用户名", '密码', "数据库表")
# 插入数据
def insert():
cursor = db.cursor() # 创建一个游标对象 cursor
while True:
try:
name = input('请输入学生名字:')
grade = input('请输入学生班级:')
age = int(input('请输入学生年龄:'))
id = input('请输入学生学号:')
sql = 'insert into mstudent(name, banji, age, xuehao) values ("%s", "%s", "%d", "%s")' % (name, grade, age, id)
cursor.execute(sql)
db.commit()
# searchAll() # 插入数据后显示所有的学生信息
answer = input('是否要继续插入?y/n\n')
if answer == 'y':
continue
else:
break
except:
db.rollback()
# db.close()
# 查询所有学生信息
def searchAll():
cursor = db.cursor() # 创建一个游标对象 cursor
sql = 'select * from mstudent'
try:
cursor.execute(sql) # 执行SQL语句
results = cursor.fetchall() # 获取所有记录列表
# 定义标题显示格式
format_title = '{:^6}\t{:^12}\t{:^8}\t{:^10}\t{:<10}'
print(format_title.format('ID', '姓名', '班级', '年龄', '学号'))
# 定义内容的显示格式
format_data = '{:^6}\t{:^12}\t{:^10}\t{:^10}\t{:^12}'
for row in results:
id = row[0]
name = row[1] # 姓名
grade = row[2] # 班级
age = row[3] # 年龄
num = row[4] # 学号
print(format_data.format(id, name, grade, age, num))
except:
print("错误:无法查到数据")
# db.close()
# 查找数据
def search():
cursor = db.cursor()
while True:
mode = input('查询所有学生信息请输入1,按姓名查找请输入2,按年龄查找请输入3:')
if mode == '1':
sql = "select * from mstudent"
elif mode == '2':
name = input('请输入学生姓名:')
sql = "select * from mstudent where name = '%s'" % name
elif mode == '3':
age = int(input('请输入学生的年龄:'))
sql = "select * from mstudent where age >= '%d'" % age
else:
print('您的输入有误,请重新输入')
search()
try:
cursor.execute(sql)
# 获取所有记录表
results = cursor.fetchall()
# 定义标题显示格式
format_title = '{:^6}\t{:^12}\t{:^8}\t{:^10}\t{:<10}'
print(format_title.format('ID', '姓名', '班级', '年龄', '学号'))
# 定义内容的显示格式
format_data = '{:^6}\t{:^12}\t{:^10}\t{:^10}\t{:^12}'
for row in results:
id = row[0]
name = row[1] # 姓名
grade = row[2] # 班级
age = row[3] # 年龄
num = row[4] # 学号
print(format_data.format(id, name, grade, age, num))
except BaseException as e:
print("错误:无法查到数据")
print(e)
else:
answer = input('是否要继续查询?y/n\n')
if answer == 'y':
continue
else:
break
# def delete():
# cursor = db.cursor()
# num = input("请输入要删除的学生的学号:")
# sql = "DELETE from mstudent where xuehao = '%s'" % num
# try:
# cursor.execute(sql)
# db.commit()
# searchAll()
# except:
# db.rollback()
# 删除数据
def delete():
cursor = db.cursor()
while True:
num = input("请输入要删除的学生的学号:")
cursor.execute('select * from mstudent where xuehao = "%s"' % num)
result1 = cursor.fetchone()
if result1 is not None:
print("该学生的信息为:")
print(result1)
print(f"确定要删除学号为{num}的学生信息吗?", end='')
re = input('请输入y/n: ')
if re == 'y':
sql = "DELETE from mstudent where xuehao = '%s'" % num
try:
cursor.execute(sql)
db.commit()
searchAll() # 删除后要重新显示所有学生信息
except:
db.rollback()
else:
return
else:
print(f"没有该学号为{num}的学生的的信息")
answer = input('是否继续删除?y/n\n')
if answer == 'y' or answer == 'Y':
continue
else:
break
# 修改数据
def modify():
searchAll()
cursor = db.cursor()
while True:
num = input("请输入要修改的学生的学号:")
name = input("请输入姓名:")
age = int(input("请输入年龄:"))
grade = input("请输入班级:")
sql = 'update mstudent set name = "%s", banji = "%s", age = "%d" where xuehao = "%s"' % (name, grade, age, num)
try:
print('---------------该学生修改之前的信息------------')
cursor.execute('select * from mstudent where xuehao = "%s"' % num)
result1 = cursor.fetchone()
print(result1)
cursor.execute(sql)
db.commit()
print('---------------该学生修改之后的信息------------')
cursor.execute('select * from mstudent where xuehao = "%s"' % num)
result1 = cursor.fetchone()
print(result1)
except:
db.rollback()
answer = input('是否继续修改其他学生的信息?y/n\n')
if answer == 'y':
modify()
else:
break
启动运行mysql
MySQL 5.5 Command Line Client位置
-
打开左下角[开始]菜单;
-
点开所有程序;
-
找到Mysql文件;
-
打开mysql文件,然后打开文件MySQL Server 5.5(我下载的是5.5版本的,每个人可能不同);
-
即可找到 MySQL 5.5 Command Line Client,为了以后方便使用,可以发送到桌面,在桌面生成一个快捷方式;