python,以目前的能力编写一套实现学生信息增删改查的数据库系统。或许后续会不断提升不断完整的搞出这一套简单的系统(增删改查功能),还差得很多。加油……
mysql> create database student;
Query OK, 1 row affected (0.01 sec)
mysql> use student;
Database changed
mysql> create table students(id int primary key auto_increment,name varchar(30),sex varchar(30),num int) charset='utf8';
Query OK, 0 rows affected (0.00 sec)
#!/usr/bin/env python3
# -*- coding: utf-8 -*-
# @File : mysqlinfo.py
# @Author: cuijianzhe
# @Date :
# @Desc :
'''
基于数据库进行学生信息增删改查
学生管理系统V1.2
2019年8月3日15:13:57
编写者:QQ:598941324-读书
'''
import pymysql
import time
conInfo = '''
host='192.168.51.202',
user='root',
password='598941324',
database='student',
charset='utf8'
'''
class Student_Manager():
def __init__(self):
self.datainfo = conInfo
@staticmethod
# 内部方法,调用数据库
def mysql_db(sql):
#连接数据库参数
db = pymysql.connect(
host='192.168.51.202',
user='root',
password='598941324',
database='student',
charset='utf8'
)
#创建sql语句操作对象
cursor = db.cursor()
#执行 使用execute方法执行sql语句,相当于操作都在mysql命令中输入sql语句并回车
cursor.execute(sql)
#获取返回信息
data = cursor.fetchall()
#提交事务
db.commit()
#关闭连接
cursor.close()
db.close()
return data
def add_database(self):
sql = '''create table students(
id int primary key auto_increment,
name varchar(30),
age int,
classroom int)'''
Student_Manager.mysql_db(sql)
def add(self):
try:
s_name = input('请输入你的名字:')
s_sex = input('请输入你的年龄:')
s_num = input('请输入你的学生(必须为int类型):')
sql = "insert into students(name,age,classroom)value('%s','%s','%s')" % (s_name, s_sex, int(s_num))
Student_Manager.mysql_db(sql)
print(('''添加信息成功
学生姓名:{}
学生性别:{}
学生学号: {}''').format(s_name, s_sex, s_num))
except ValueError:
print('学生id输入有误(重新输入),请输入数字id。')
def cha(self):
try:
s_name = input('请输入你的名字:')
sql = "select * from students where name like'%s'"%(s_name)
data = Student_Manager.mysql_db(sql)
print('''
你的相关信息如下:
id 姓名 年龄 学号''')
xinxi = (''.join(str(i) for i in data)).replace('(','').replace(')','').replace(',','').replace('\'','').center(40)
print(xinxi)
except:
print('输入有误或者账号不存在')
def gai(self):
while True:
try:
s_name = input('请输入你的名字:')
sql = "select * from students where name like'%s'" % (s_name)
data = Student_Manager.mysql_db(sql)[0]
dat = (('''
你的当前信息为:
id:%s
姓名:%s
年龄:%s
学号:%s ''') % (data[0], data[1], data[2], data[3]))
print(dat)
choose = input('你是否要更改信息,是(Y|y)/否(N|n)')
if choose == 'Y' or choose == 'y':
try:
last_name = input('请输入你的名字:')
last_sex = input('输入年龄:')
last_num = input('输入学号:')
str_id = data[0]
sql = "update students set name='%s',age='%s',classroom='%s' where id='%s'" % (
last_name, last_sex, last_num, str_id)
Student_Manager.mysql_db(sql)
dat2 = ('''修改信息成功,如下:
更新后学生姓名:%s
更新后学生性别:%s
更新后学生学号:%s''') % (last_name, last_sex, last_num)
print(dat2)
break
except:
print('输入有误或账号不存在')
if choose == 'N' or choose == 'n':
break
else:
print('输入有误,将退出……')
time.sleep(2)
break
except:
print('账号不存在或输入有误')
break
def shan(self):
while True:
try:
s_name = input('请输入你的名字:')
sql = "select * from students where name like'%s'" % (s_name)
data = Student_Manager.mysql_db(sql)[0]
dat = (('''
你的当前信息为:
id:%s
姓名:%s
年龄:%s
学号:%s ''') % (data[0], data[1], data[2], data[3]))
print(dat)
except:
print('输入有误或账号不存在,退出系统')
break
choose = input('你是否要删除信息,是(Y|y)/否(N|n)')
if choose == 'Y' or choose == 'y':
str_id = data[0]
sql = "delete from students where id='%s'" % (str_id)
Student_Manager.mysql_db(sql)
print('信息删除成功,即将推出……')
time.sleep(1)
break
if choose == 'N' or choose == 'n':
break
else:
print('输入有误,将退出……')
time.sleep(2)
break
def all(self):
try:
sql = "select * from students"
data = Student_Manager.mysql_db(sql)
xinxi = ('\n'.join(str(i) for i in data)).replace('(', '').replace(')', '').replace(',', '').replace('\'',
'')
print(('''id 姓名 性别 学号\n{}''').format(xinxi))
except:
print('输入有误,账号不存在')
if __name__ == "__main__":
manager = Student_Manager()
while True:
print("""
到达主页,请选择对应序号:
1.添加学生信息
2.删除学生信息
3.修改学生信息
4.查询个人信息
5.显示所有学生信息
6.退出系统""")
num = str(input('你输入的是:'))
if num == '1':
manager.add()
if num == '2':
manager.shan()
if num == '3':
manager.gai()
if num == '4':
manager.cha()
if num == '5':
manager.all()
if num == '6':
break