豌豆Ai站群搜索引擎系统 V.25.10.25 网址:www.wd.chat

🗣 Wd提问: mysql程序开发实例

🤖 Ai回答:
当然可以!下面是一个完整的 MySQL 程序开发实例,使用 Python + PyMySQL 实现一个简单的“学生信息管理系统”,包含数据库设计、连接、增删改查(CRUD)功能。

✅ 项目名称:学生信息管理系统(MySQL + Python)

📌 技术栈
数据库:MySQL
编程语言:Python 3.x
驱动:PyMySQL(MySQL 的 Python 客户端)
开发环境:Windows / macOS / Linux

🚀 第一步:安装依赖

bash
pip install PyMySQL

如果你还没有安装 MySQL,请先安装 MySQL Server(如 MySQL 8.0),并创建一个数据库。

🗃️ 第二步:创建数据库和表

登录 MySQL 命令行或使用 MySQL Workbench,执行以下 SQL:

sql
创建数据库
CREATE DATABASE IF NOT EXISTS school_db CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;

使用数据库
USE school_db;

创建学生表
CREATE TABLE students (
id INT AUTO_INCREMENT PRIMARY KEY,
name VARCHAR(50) NOT NULL,
age INT CHECK (age = 0 AND age <= 150),
email VARCHAR(100) UNIQUE,
enrollment_date DATE DEFAULT (CURDATE())
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;

✅ 说明:
`id`:主键,自增
`name`:学生姓名,非空
`age`:年龄,限制在 0~150
`email`:邮箱,唯一
`enrollment_date`:入学日期,默认为当前日期

💻 第三步:Python 程序实现(完整 CRUD 示例)

创建文件 `student_manager.py`:

python
import pymysql
from datetime import datetime

数据库连接配置
DB_CONFIG = {
'host': 'localhost',
'user': 'root', 替换为你的用户名
'password': 'your_password', 替换为你的密码
'database': 'school_db',
'charset': 'utf8mb4',
'cursorclass': pymysql.cursors.DictCursor 返回字典格式结果
}

def get_db_connection():
获取数据库连接
try:
conn = pymysql.connect(**DB_CONFIG)
return conn
except pymysql.MySQLError as e:
print(f数据库连接失败: {e})
return None

def add_student(name, age, email):
添加学生
conn = get_db_connection()
if not conn:
return False

try:
with conn.cursor() as cursor:
sql = INSERT INTO students (name, age, email) VALUES (%s, %s, %s)
cursor.execute(sql, (name, age, email))
conn.commit()
print(f✅ 学生 {name} 添加成功!ID: {cursor.lastrowid})
return True
except pymysql.IntegrityError as e:
print(f❌ 添加失败:邮箱 {email} 已存在或数据无效。)
return False
except Exception as e:
print(f❌ 发生错误:{e})
return False
finally:
conn.close()

def view_all_students():
查看所有学生
conn = get_db_connection()
if not conn:
return

try:
with conn.cursor() as cursor:
sql = SELECT * FROM students ORDER BY id
cursor.execute(sql)
students = cursor.fetchall()

if not students:
print(❌ 暂无学生信息。)
return

print(\n📋 所有学生信息:)
print(- * 60)
for s in students:
print(fID: {s['id']} | 姓名: {s['name']:10} | 年龄: {s['age']:3} | 邮箱: {s['email']:20} | 入学时间: {s['enrollment_date']})
except Exception as e:
print(f❌ 查询失败:{e})
finally:
conn.close()

def update_student(student_id, name=None, age=None, email=None):
更新学生信息(可选字段)
conn = get_db_connection()
if not conn:
return False

try:
with conn.cursor() as cursor:
updates = []
params = []

if name is not None:
updates.append(name = %s)
params.append(name)
if age is not None:
updates.append(age = %s)
params.append(age)
if email is not None:
updates.append(email = %s)
params.append(email)

if not updates:
print(⚠️ 没有提供需要更新的字段。)
return False

sql = fUPDATE students SET {', '.join(updates)} WHERE id = %s
params.append(student_id)

cursor.execute(sql, params)
conn.commit()

if cursor.rowcount 0:
print(f✅ 学生 ID {student_id} 更新成功!)
return True
else:
print(f❌ 未找到 ID 为 {student_id} 的学生。)
return False
except pymysql.IntegrityError:
print(❌ 更新失败:邮箱已存在。)
return False
except Exception as e:
print(f❌ 更新出错:{e})
return False
finally:
conn.close()

def delete_student(student_id):
删除学生
conn = get_db_connection()
if not conn:
return False

try:
with conn.cursor() as cursor:
sql = DELETE FROM students WHERE id = %s
cursor.execute(sql, (student_id,))
conn.commit()

if cursor.rowcount 0:
print(f✅ 学生 ID {student_id} 已删除。)
return True
else:
print(f❌ 未找到 ID 为 {student_id} 的学生。)
return False
except Exception as e:
print(f❌ 删除失败:{e})
return False
finally:
conn.close()

def main():
主程序入口
print(= * 50)
print( 🎓 学生信息管理系统)
print(= * 50)

while True:
print(\n请选择操作:)
print(1、添加学生)
print(2、查看所有学生)
print(3、更新学生信息)
print(4、删除学生)
print(0、退出系统)

choice = input(请输入选项(0-4):).strip()

if choice == '1':
name = input(请输入姓名:).strip()
try:
age = int(input(请输入年龄:).strip())
except ValueError:
print(❌ 年龄必须是数字!)
continue
email = input(请输入邮箱:).strip()
add_student(name, age, email)

elif choice == '2':
view_all_students()

elif choice == '3':
try:
student_id = int(input(请输入要更新的学生ID:).strip())
print(留空表示不修改该字段。)
name = input(新姓名(回车跳过):).strip()
age_input = input(新年龄(回车跳过):).strip()
email = input(新邮箱(回车跳过):).strip()

age = int(age_input) if age_input else None
name = name if name else None
email = email if email else None

update_student(student_id, name, age, email)
except ValueError:
print(❌ 学生ID必须是数字!)

elif choice == '4':
try:
student_id = int(input(请输入要删除的学生ID:).strip())
delete_student(student_id)
except ValueError:
print(❌ 学生ID必须是数字!)

elif choice == '0':
print(👋 感谢使用,再见!)
break

else:
print(❌ 无效选项,请重新选择。)

if __name__ == __main__:
main()

🧪 第四步:运行程序

在终端中执行:

bash
python student_manager.py

✅ 示例交互:

==================================================
🎓 学生信息管理系统
==================================================

请选择操作:
1、添加学生
2、查看所有学生
3、更新学生信息
4、删除学生
0、退出系统
请输入选项(0-4):1
请输入姓名:张三
请输入年龄:20
请输入邮箱:zhangsan@65.hk
✅ 学生 张三 添加成功!ID: 1

请选择操作:
...
请输入选项(0-4):2

📋 所有学生信息:

ID: 1 | 姓名: 张三 | 年龄: 20 | 邮箱: zhangsan@65.hk | 入学时间: 2025-04-05

✅ 功能总结

| 功能 | 实现 |

| ✅ 数据库连接 | 使用 PyMySQL 连接 MySQL

Ai作答

📣 商家广告


星座

公司

广东过滤器

广告招商

豌豆Ai站群搜索引擎系统


0

IP地址: 243.82.190.195

搜索次数: 0

提问时间: 2025-11-11 06:30:53

🛒 域名购买
46.hk
61.gs
souzhan.com.cn
lq.gs
zhang.la
62.chat
05.gold
yw.gs
oa5.cn
kou.red

❓️ 热门提问
VPS降配后如何恢复搭建服务器过程详解
机房建设需要的设备
程序PHP项目实战
单机游戏怎么搭建服务器
问答社区源码带mysql优化
无敌鸳鸯腿香港版电影
云主机什么意思
cdn服务和云服务器
tcp串口服务器
vps 管理面板
豌豆Ai站群搜索引擎系统

🌐 域名评估
53.biz
ev.tw.cn
vtolfair.org.cn
cqgzy.com
卢克文.中国
72.gs
su8.hn.cn
musk.gd.cn
jdwx.cn
byd.cq.cn

⛏ 最新挖掘
凯里酸汤鱼
贵阳烤脑花
都匀毛尖茶
花溪牛肉粉
贵阳烤生蚝
贵阳烤豆腐
贵阳纸包鱼
贵阳特色菜

🖌 热门作画

🤝 关于我们:
豌豆Ai 域名 建站 站群 留痕 推广 评估 源码
开发Ai 工具 日记 价格 加盟 广告 流量 留言 联系

🗨 加入群聊
群

🔗 友情链接
Suchmaschinen in China  乐山网站优化公司  ai提问

🧰 站长工具
Ai工具  whois查询  搜索

📢 温馨提示:本站所有问答由Ai自动创作,内容仅供参考,若有误差请用“联系”里面信息通知我们人工修改或删除。

👉 技术支持:本站由豌豆Ai提供技术支持,使用的最新版:《豌豆Ai站群搜索引擎系统 V.25.10.25》搭建本站。

上一篇 87220 87221 87222 下一篇