Python实现MySql学员管理器

本文介绍了如何使用Python连接并操作MySQL数据库,强调了配置数据库连接参数的重要性,包括数据库名、主机地址、端口、用户名、密码等。示例代码采用utf-8编码,提醒读者根据个人安装情况进行参数调整。
摘要由CSDN通过智能技术生成

      首先,需要安装mysql数据库,配置好几个重要参数(数据库名、主机号、端口号、用户名、密码、数据库密码,一般情况下使用utf-8编码,读者按照自己安装情况修改对应参数。

# -*- coding: utf-8 -*-

#python operate mysql database
import pymysql
#数据库名称
DATABASE_NAME = 'test'
#host = 'localhost' or '172.0.0.1'
HOST = 'localhost'
#端口号
PORT = '3306'
#用户名称
USER_NAME = 'root'
#数据库密码
PASSWORD = '123456'
#数据库编码
CHAR_SET = 'utf8'


#初始化参数
def init():
     global DATABASE_NAME
     DATABASE_NAME = 'test'
     global HOST
     HOST = 'localhost'
     global PORT
     PORT = '3306'
     global USER_NAME
     USER_NAME = 'root'
     global PASSWORD
     PASSWORD = '123456'
     global CHAR_SET
     CHAR_SET = 'utf8'
     
#获取数据库连接
def get_conn():
     init()
     return pymysql.connect(host = HOST, user = USER_NAME, passwd = PASSWORD, db = DATABASE_NAME, charset = CHAR_SET)
 
#获取cursor
def get_cursor(conn):
     return conn.cursor()
 
#关闭连接
def conn_close(conn):
     if conn != None:
         conn.close()
 
#关闭cursor
def cursor_close(cursor):
     if cursor != None:
         cursor.close()
 
#关闭所有
def close(cursor, conn):
     cursor_close(cursor)
     conn_close(conn)
def drop_table():
     sql = '''
     drop table if exists student 
     '''
     conn = get_conn()
     cursor = get_cursor(conn)
     result = cursor.execute(sql)
     conn.commit()
     close(cursor, conn)
     return result
 
#创建表
def create_table():
     sql = '''
     CREATE TABLE student (
     num int(11) NOT NULL,
     name varchar(20) NOT NULL,
     age int(11) DEFAULT NULL,
     PRIMARY KEY (num)
     ) ENGINE=InnoDB DEFAULT CHARSET=utf8
     '''
     conn = get_conn()
     cursor = get_cursor(conn)
     result = cursor.execute(sql)
     conn.commit()
     close(cursor, conn)
     return result
 
#输出表中所有学员信息
def query_table_all(table_name):
     if table_name != '':
         sql = 'select * from ' + table_name
         conn = get_conn()
         cur= get_cursor(conn)
         result = cur.execute(sql)
         data=    cur.fetchall()
         print(data,result,len(data))
         for row in data:
             print(row)             
         close(cur, conn)
     else:
         print('table name is empty!')
def query_table():
     Selectstr=input("\n---------------------\n请选择查询项:1 学号;2 姓名\n")
     sql = 'select * from student '
     if Selectstr=="1":
          strnum =input("请输入要查询同学的学号:\n")
          sql = 'select * from student where num=' + strnum
     elif Selectstr=="2":
          strname =input("请输入要查询同学的姓名:\n")
          sql = "select * from student where name='" +strname+"'"     
     conn = get_conn()
     cursor = get_cursor(conn)
     result = cursor.execute(sql)
     if result<1:
          print("查询结果为空!")
     else:
          for row in cursor.fetchall():
               print(row)          
     close(cursor, conn) 
#插入数据
def insert_table_init():
     sql = "insert into student(num, name, age) values(1,'Zhang',24),(2,'Zhang1',24)"
     conn = get_conn()
     cursor = get_cursor(conn)
     result = cursor.execute(sql)
     conn.commit()
     close(cursor, conn)
     return result
def insert_table():
     strnum =input("请输入添加同学的学号:\n")
     strname=input("请输入添加同学的姓名:\n")
     strage =input("请输入添加同学的年龄:\n")
     sql = "insert into student(num, name, age) values("+strnum+",'"+strname+"',"+strage+")"
     conn = get_conn()
     cursor = get_cursor(conn)
     result = cursor.execute(sql)
     conn.commit()
     close(cursor, conn)
     return result
 
#更新数据
def update_table():
     strnum =input("请输入更新同学的学号:\n")
     strname=input("请输入更新同学的姓名:\n")
     strage =input("请输入更新同学的年龄:\n")
     sql = "update student set name ='"+strname+"'"+",age="+strage+" where num = "+strnum
     conn = get_conn()
     cursor = get_cursor(conn)
     result = cursor.execute(sql)
     conn.commit()
     close(cursor, conn)
     return result


#删除数据
def delete_data():
     strnum=input("请输入需要删除同学的学号:\n")     
     sql = 'delete from student where num = '+strnum
     conn = get_conn()
     cursor = get_cursor(conn)
     result = cursor.execute(sql)
     conn.commit()
     close(cursor, conn)
     return result
 
#数据库连接信息   
def print_info():
     print('数据库连接信息:' + DATABASE_NAME + " "+HOST + " "+PORT +\
           " "+USER_NAME +" "+PASSWORD +" "+CHAR_SET)
 
127 #打印出数据库中表情况
def show_databases():
     sql = 'show databases'
     conn = get_conn()
     cursor = get_cursor(conn)
     result = cursor.execute(sql)
     for row in cursor.fetchall():
         print(row)
         
#数据库中表情况
def show_tables():     
     conn = get_conn()
     cursor = get_cursor(conn)
     sql = 'show databases'
     result = cursor.execute(sql)
     for row in cursor.fetchall():
         print(row,end=' ')
     sql = 'use test'
     result = cursor.execute(sql)
     for row in cursor.fetchall():
         print(row,end=' ')
def main():     
     print("数据库连接信息如下:")
     print_info()
     print("当前数据库下的数据表为:")
     show_tables()     
     #删除表
     print("\n如果存在student表,下面将会删除!")
     result = drop_table()
     if result!=-1:
          print("操作成功!")
     #创建表
     print("创建student表!")
     result = create_table()
     if result!=-1:
          print("\n操作成功!")
     #测试前线加入一条数据:
     result =insert_table_init()
     print("\n目前数据表中数据如下:")
     query_table_all('student')
     while True:          
          Selectstr=input("\n---------------------\n请选择对数据表的操作:\n1 插入数据;2 更新数据  3 查询数据 4 删除数据 5 按q退出。\n")
          if Selectstr=="1":
               #插入数据
               result =insert_table()
               if result!=-1:
                    print("\n操作成功,插入数据后....")
               query_table_all('student')
          elif Selectstr=="2":
               #更新数据
               result =update_table()
               if result!=-1:
                    print("\n操作成功,更新数据后....") 
               query_table_all('student')
          elif Selectstr=="3":
               #查询表
               print("\n查询表student!")
               query_table()
          elif Selectstr=="4":
               #删除数据
               delete_data()
               print('\n删除数据后....')
               query_table_all('student')
          elif Selectstr=="q":
               break
     print("\n谢谢使用,欢迎下次光临!")     
   
main()
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值