# coding: utf-8
import sqlite3# 导入数据库
def connect_sql():connect = sqlite3.connect("test_sqlite.db")cursor = connect.cursor()cursor.execute("""CREATE TABLE studentsab51
(id INTEGER PRIMARY KEY,name TEXT,sex TEXT,age INTEGER,phone TEXT
);""")connect.commit()cursor.close()connect.close()# 展示学生列表
def show_students():print('ID','\t\t', '姓名''\t\t', '性别''\t\t', '年龄''\t\t', '电话')print('---'*20)connect = sqlite3.connect("test_sqlite.db")cursor = connect.cursor()cursor.execute("""SELECT * FROM students;""")students_list = cursor.fetchall()for index, student in enumerate(students_list):print(f'{index+1}\t\t\t{student[1]}\t\t\t{student[2]}\t\t\t{student[3]}\t\t\t{student[4]}')connect.commit()cursor.close()connect.close()# 添加学生
def add_student():name = input('新学生姓名:')sex = input('新学生性别:')age = input('新学生年龄:')phone = input('新学生电话')connect = sqlite3.connect("test_sqlite.db")cursor = connect.cursor()# sql=("""# INSERT  INTO  students(name, sex, age, phone) VALUES ("%s", "%s",%s, "%s")# """%(name, sex, age , phone))sql = f"""INSERT INTO students (name, sex, age, phone)  VALUES ("{name}","{sex}",{age},"{phone}")"""print(sql)cursor.execute(sql)connect.commit()connect.close()# 修改
def update_student():show_students()connect = sqlite3.connect("test_sqlite.db")cursor = connect.cursor()new_id = input("请输入你想要修改的编号:")new_name=input('请输入修改后的姓名:')new_sex=input('请输入修改后的性别:')new_age = input('请输入新的年龄:')new_phone = input('请输入新电话')# 先查询输入的学生id是否存在,存在的话更新,不存在的给出用户提示sql = f"""SELECT 1 FROM students WHERE id="{new_id}";"""cursor.execute(sql)student = cursor.fetchall()if student:sql2 = f"""UPDATE students SET name = "{new_name}",sex="{new_sex}",age="{new_age}",phone="{new_phone}"  WHERE id="{new_id}";"""cursor.execute(sql2)connect.commit()else:print('学生不存在,请重新操作。')connect.close()print('学生修改成功')# 下面的方法也行 看你用哪种# cursor.execute("""UPDATE students SET name=?, sex= ?,age=?,phone=? WHERE id="""+new_id,(new_name, new_sex, new_age, new_phone))# connect.commit()# connect.close()# 删除
def delete_student():connect = sqlite3.connect("test_sqlite.db")cursor = connect.cursor()print(""" 删除> 请输入子操作编号:1)按学生编号删除2)删除全部学生(clear) """)sub_select = int(input('请选择子操作:'))if sub_select == 1:show_students()stu_name = input('要删除的学生姓名:')delete_name = f""" delete from students where name='{stu_name}'"""cursor.execute(delete_name)connect.commit()connect.close()print('删除成功')elif sub_select == 2:connect = sqlite3.connect("test_sqlite.db")cursor = connect.cursor()confirm = input('要删除全部学生?( Y/y):')if confirm == 'y':clear_as = f"""DELETE FROM  main.students;"""cursor.execute(clear_as)connect.commit()connect.close()print('删除全部成功')def main():# 主函数,程序入口while True:print("""欢迎使用学生管理系统1-查看学员姓名2-添加学员姓名3-修改学员姓名4-删除学员姓名0-退出程序""")num = int(input('请输入操作编号:'))if num == 1:show_students()elif num == 2:add_student()elif num == 3:update_student()elif num == 4:delete_student()elif num == 0:breakif __name__ == '__main__':main()# 可能出现的错误:
# 插入功能
# sql = """
#         INSERT INTO students (name, sex, age, phone) VALUES (%s, %s, %d, %s);
#     """ % (name, sex, int(age), phone)
#     print(sql)
# 报错 sqlite3.OperationalError: no such column: aaa
# 原因 sql INSERT INTO students (name, sex, age, phone) VALUES (aaa, nan, 13, 13000);   值并不是sql解释器理解的字符串。
# 解决 %s两侧加引号。 INSERT INTO students (name, sex, age, phone) VALUES ("%s", %s, %d, %s) % (name, sex, int(age), phone);# sql补充
# SELECT 1 FROM students WHERE name="{stu_name}";    -- 只关心一行数据是否存在。效率比select * 高。
# coding: utf-8
import sqlite3# 导入数据库
def connect_sql():connect = sqlite3.connect("test_sqlite.db")cursor = connect.cursor()cursor.execute("""CREATE TABLE studentsab51
(id INTEGER PRIMARY KEY,name TEXT,sex TEXT,age INTEGER,phone TEXT
);""")connect.commit()cursor.close()connect.close()# 展示学生列表
def show_students():print('ID','\t\t', '姓名''\t\t', '性别''\t\t', '年龄''\t\t', '电话')print('---'*20)connect = sqlite3.connect("test_sqlite.db")cursor = connect.cursor()cursor.execute("""SELECT * FROM students;""")students_list = cursor.fetchall()for index, student in enumerate(students_list):print(f'{index+1}\t\t\t{student[1]}\t\t\t{student[2]}\t\t\t{student[3]}\t\t\t{student[4]}')connect.commit()cursor.close()connect.close()# 添加学生
def add_student():name = input('新学生姓名:')sex = input('新学生性别:')age = input('新学生年龄:')phone = input('新学生电话')connect = sqlite3.connect("test_sqlite.db")cursor = connect.cursor()# sql=("""# INSERT  INTO  students(name, sex, age, phone) VALUES ("%s", "%s",%s, "%s")# """%(name, sex, age , phone))sql = f"""INSERT INTO students (name, sex, age, phone)  VALUES ("{name}","{sex}",{age},"{phone}")"""print(sql)cursor.execute(sql)connect.commit()connect.close()# 修改
def update_student():show_students()connect = sqlite3.connect("test_sqlite.db")cursor = connect.cursor()new_id = input("请输入你想要修改的编号:")new_name=input('请输入修改后的姓名:')new_sex=input('请输入修改后的性别:')new_age = input('请输入新的年龄:')new_phone = input('请输入新电话')# 先查询输入的学生id是否存在,存在的话更新,不存在的给出用户提示sql = f"""SELECT 1 FROM students WHERE id="{new_id}";"""cursor.execute(sql)student = cursor.fetchall()if student:sql2 = f"""UPDATE students SET name = "{new_name}",sex="{new_sex}",age="{new_age}",phone="{new_phone}"  WHERE id="{new_id}";"""cursor.execute(sql2)connect.commit()else:print('学生不存在,请重新操作。')connect.close()print('学生修改成功')# 下面的方法也行 看你用哪种# cursor.execute("""UPDATE students SET name=?, sex= ?,age=?,phone=? WHERE id="""+new_id,(new_name, new_sex, new_age, new_phone))# connect.commit()# connect.close()# 删除
def delete_student():connect = sqlite3.connect("test_sqlite.db")cursor = connect.cursor()print(""" 删除> 请输入子操作编号:1)按学生编号删除2)删除全部学生(clear) """)sub_select = int(input('请选择子操作:'))if sub_select == 1:show_students()stu_name = input('要删除的学生姓名:')delete_name = f""" delete from students where name='{stu_name}'"""cursor.execute(delete_name)connect.commit()connect.close()print('删除成功')elif sub_select == 2:connect = sqlite3.connect("test_sqlite.db")cursor = connect.cursor()confirm = input('要删除全部学生?( Y/y):')if confirm == 'y':clear_as = f"""DELETE FROM  main.students;"""cursor.execute(clear_as)connect.commit()connect.close()print('删除全部成功')def main():# 主函数,程序入口while True:print("""欢迎使用学生管理系统1-查看学员姓名2-添加学员姓名3-修改学员姓名4-删除学员姓名0-退出程序""")num = int(input('请输入操作编号:'))if num == 1:show_students()elif num == 2:add_student()elif num == 3:update_student()elif num == 4:delete_student()elif num == 0:breakif __name__ == '__main__':main()# 可能出现的错误:
# 插入功能
# sql = """
#         INSERT INTO students (name, sex, age, phone) VALUES (%s, %s, %d, %s);
#     """ % (name, sex, int(age), phone)
#     print(sql)
# 报错 sqlite3.OperationalError: no such column: aaa
# 原因 sql INSERT INTO students (name, sex, age, phone) VALUES (aaa, nan, 13, 13000);   值并不是sql解释器理解的字符串。
# 解决 %s两侧加引号。 INSERT INTO students (name, sex, age, phone) VALUES ("%s", %s, %d, %s) % (name, sex, int(age), phone);# sql补充
# SELECT 1 FROM students WHERE name="{stu_name}";    -- 只关心一行数据是否存在。效率比select * 高。

转载于:https://www.cnblogs.com/nicholas7464/p/10257492.html

python学生管理系统连接数据库版,很详细,这个是用函数版的增删改查,拿去用,不谢。...相关推荐

  1. Python进阶----表与表之间的关系(一对一,一对多,多对多),增删改查操作

    Python进阶----表与表之间的关系(一对一,一对多,多对多),增删改查操作,单表查询,多表查询 一丶表与表之间的关系 背景: ​ ​ ​  ​ ​ 由于如果只使用一张表存储所有的数据,就会操作数 ...

  2. Python爬虫(9)selenium爬虫后数据,存入mongodb实现增删改查

    之前的文章有关于更多操作方式详细解答,本篇基于前面的知识点进行操作,如果不了解可以先看之前的文章 Python爬虫(1)一次性搞定Selenium(新版)8种find_element元素定位方式 Py ...

  3. python实现四位一并法_python 全栈开发,Day4(列表切片,增删改查,常用操作方法,元组,range,join)...

    一.列表 列表是python中的基础数据类型之一,它是以[]括起来,每个元素以逗号隔开,而且他里面可以存放各种数据类型比如: li = ['alex',123,Ture,(1,2,3,'wusir') ...

  4. 【Python】Flask框架系列(二):安装、配置文件、增删改查

    MySQL-python中间件的安装 打开这里链接:https://www.lfd.uci.edu/~gohlke/pythonlibs/ 这里32与64的选择不是看操作系统的位数,而是看python ...

  5. python+django+sqlite3,不成熟的学生管理增删改查

    因为是边学边做的,所以有一些地方有了很麻烦的方法,登录验证也没做完,前端也很难看,只是做了基本的增删改查 1.新建project django-admin.py startproject studen ...

  6. 搭建阿里云Linux版服务器+使用docker安装EMQ、Node-RED、MySQL+本地Navicat访问数据库(增删改查)——详细流程

    搭建阿里云Linux版服务器+使用docker安装EMQ.Node-RED.MySQL+本地Navicat访问数据库 云服务器基础搭建 注册云服务器 XShell简介 部署EMQ 部署docker 物 ...

  7. python:pyqt5+mysql=学生信息管理系统(图文并茂,超详细, 附源码)——增删改查篇

    python:pyqt5+mysql=学生信息管理系统(图文并茂,超详细, 附源码)--增删改查篇 前言 一.主界面的样式 二.学生信息的增,删,改,查 1.增加学生信息 2.删除学生信息 3.更改学 ...

  8. Python 学生管理系统+mysql+Flask

    Python 学生管理系统 前言 项目目录 config py mapper.student_mapper.py static templates 主要代码块 student_controller.p ...

  9. python学生管理系统

    学生信息管理系统,首先由管理员增加.删除.修改.查找.导入教师信息,再有教师界面登录不同的教师类别,辅导员老师负责增加.删除.查找.学生的相关信息.教务老师负责增加.删除.修改.查找.有哪些课程的相关 ...

  10. Python学生管理系统代码

    Python学生管理系统代码一览 复制即用 初学见谅 #python study # -*- coding: utf-8 -*-#学员信息 data = [{'id': ' 1','name': '辛 ...

最新文章

  1. 移除UTF-8文件头的BOM
  2. ElasticSearch入门 附.Net Core例子
  3. 模拟ctrl+alt+delete三键
  4. Xray使用的一些经验分享(xray+burp的使用)
  5. 介绍一种 Python 更方便的爬虫代理池实现方案
  6. 疑似华为P30 Pro样张曝光:10倍变焦依然清晰
  7. MLOps- 吴恩达Andrew Ng Data Definition and Baseline Week3 实验作业
  8. 华为路由器没有虚拟服务器,华为路由器如何设置 华为路由器设置方法介绍【详解】...
  9. python 大括号嵌套,分析嵌套的大括号/方括号组
  10. 软件工程毕业设计课题(40)基于JAVA毕业设计JAVA电子商务购物商城系统毕设作品项目
  11. sim的准确识别技术
  12. 推荐一款备忘录便签APP简约款安卓版本
  13. 网易互联网雷火互娱22届校招及社招内推
  14. 【C# Opencv机器视觉】 Opencv水位检测、液体高度检测、卡尺高度检测
  15. C#中,System.ComponentModel.Container详解
  16. C语言计算程序运行时间简单实例
  17. 数码相框(四、使用freetype库实现矢量字体显示)
  18. 2021-11-10----韩顺平Java入门第七天
  19. 亚马逊云免费服务器安装教程AWS微软系统教程含Tomcat,mysql,Tomcat去项目名,端口名!
  20. Oledcomm——全球5G/LiFi技术领航者

热门文章

  1. 拓端tecdat|在R语言中使用概率分布:dnorm,pnorm,qnorm和rnorm
  2. 拓端tecdat|R语言时间序列和ARIMA模型预测拖拉机销售的制造案例研究
  3. R语言周氏检验(Chow test) 检验回归中结构不稳定性的虚拟变量的替代方案
  4. windows无法安装iis信息服务器,windows server 2016 安装iis教程
  5. 【GCN+AE代码逐行学习】参考资料记录
  6. 史上最全的人工智能知识图谱
  7. python实现阿拉伯数字和罗马数字的互相转换
  8. scala学习笔记三----scala函数式编程风格学习
  9. 2021-06-09 动态的创建对象,通过反射.
  10. 设某链表中最常用的操作是在链表的尾部_面试官:“双向链表”都不会,谁给你跳槽的勇气?...