import sqlite3

conn = sqlite3.connect('E:\\student.db')
print("Opened database successfully")
c = conn.cursor()
c.execute('''CREATE TABLE if not exists STUDENT
(ID INT PRIMARY KEY NOT NULL,
STU_NAME CHAR(20),
AGE INT NOT NULL,
ADDRESS CHAR(50));''') print ("Table created successfully")
conn.commit()
Opened database successfully
Table created successfully
print("Opened database successfully")
c.execute("INSERT INTO STUDENT(ID,STU_NAME,AGE,ADDRESS) VALUES(20154071115,'dch',22,'1-223')")
c.execute("INSERT INTO STUDENT(ID,STU_NAME,AGE,ADDRESS) VALUES(20154071112,'fwx',22,'1-222') ")
c.execute("INSERT INTO STUDENT(ID,STU_NAME,AGE,ADDRESS) VALUES(20154071111,'cg',22,'1-223') ")
c.execute("INSERT INTO STUDENT(ID,STU_NAME,AGE,ADDRESS) VALUES(20154071110,'wyf',22,'1-222') ")
conn.commit()
print("Records created successfully")
Opened database successfully
Records created successfully
cursor = c.execute("SELECT id,STU_NAME,address FROM student")
for row in cursor:
print("ID = ",row[0])
print("NAME = ",row[1])
print("ADDRESS = ",row[2])
print("Operation done successfully")
#conn.close()
def display_menu():
print("学生表操作界面")
print("---------------------")
print("1.增添学生信息")
print("2.查询学生有关资料")
print("3.修改学生有关信息")
print("4.删除学生信息")
print("5.查询现在的学生信息")
print("0.退出")
print("---------------------")
ID =  20154071115
NAME = dch
ADDRESS = 1-223
ID = 20154071112
NAME = fwx
ADDRESS = 1-222
ID = 20154071111
NAME = cg
ADDRESS = 1-223
ID = 20154071110
NAME = wyf
ADDRESS = 1-222
Operation done successfully
def append_data():
id = int(input("请输入新学生的学号:"))
name = str(input("请输入新学生的名字"))
age = int(input("请输入新学生的年龄"))
address = str(input("请输入新学生的地址"))
sqlStr = "select * from student where id = {};".format(id)
cursor = conn.execute(sqlStr)
if len(cursor.fetchall())>0:
print("列表中已经有这个学生了")
else:
sqlStr = "insert into student(ID,STU_NAME,AGE,ADDRESS) VALUES ({},'{}',{},'{}')".format(id,name,age,address)
conn.execute(sqlStr)
conn.commit()
def update_date():
id = int(input("请输入你要修改的学号:"))
sqlStr = "select * from student where id = {};".format(id)
cursor = conn.execute(sqlStr)
rows = cursor.fetchall()
if len(rows) > 0:
print("该学生的姓名是",rows[0][1])
name = input("请输入学生的新名字")
age = int(input("请输入学生的新年龄"))
address = input("请输入学生的新地址")
sqlStr = "update student set STU_NAME = '{}',age = '{}',address = '{}' where id = {}".format(name,age,address,id)
conn.execute(sqlStr)
conn.commit()
print("修改成功")
else:
print("不存在该学生")
def delete_data():
id = int(input("请输入要删除的学生id:"))
sqlStr = "select * from student where id = {};".format(id)
cursor = conn.execute(sqlStr)
rows = cursor.fetchall()
if len(rows) > 0:
print("该学生的姓名是",rows[0][1])
s = int(input("请确认删除(如果删除请输入'1',不删除请输入'0'):"))
if s == 1:
sqlStr = "delete from student where id = {}".format(id)
conn.execute(sqlStr)
print("删除成功")
else:
return display_menu()
def select_data():
id = int(input("请输入要修改的学生id:"))
sqlStr = "select * from student where id = {};".format(id)
cursor = conn.execute(sqlStr)
rows = cursor.fetchall()
if len(rows) > 0:
print("该学生信息如下:")
print(rows)
else:
print("该学生不存在")
def display_data():
cursor = conn.execute('SELECT * FROM student;')
for row in cursor:
print(row)
while True:
display_menu()
choice = int(input("请输入你的选择"))
if choice == 0:
conn.close()
break
elif choice == 2:
select_data()
elif choice == 3:
update_date()
elif choice == 4:
delete_data()
elif choice == 5:
display_data()
elif choice == 1:
append_data()
else:break

吴裕雄--python学习笔记:通过sqlite3 进行文字界面学生管理的更多相关文章

  1. 吴裕雄--python学习笔记:sqlite3 模块

    1 sqlite3.connect(database [,timeout ,other optional arguments]) 该 API 打开一个到 SQLite 数据库文件 database 的 ...

  2. 吴裕雄--python学习笔记:sqlite3 模块的使用与学生信息管理系统

    import sqlite3 cx = sqlite3.connect('E:\\student3.db') cx.execute( '''CREATE TABLE StudentTable( ID ...

  3. 吴裕雄--python学习笔记:爬虫基础

    一.什么是爬虫 爬虫:一段自动抓取互联网信息的程序,从互联网上抓取对于我们有价值的信息. 二.Python爬虫架构 Python 爬虫架构主要由五个部分组成,分别是调度器.URL管理器.网页下载器.网 ...

  4. 吴裕雄--python学习笔记:爬虫包的更换

    python 3.x报错:No module named 'cookielib'或No module named 'urllib2' 1. ModuleNotFoundError: No module ...

  5. 吴裕雄--python学习笔记:爬虫

    import chardet import urllib.request page = urllib.request.urlopen('http://photo.sina.com.cn/') #打开网 ...

  6. 吴裕雄--python学习笔记:os模块函数

    os.sep:取代操作系统特定的路径分隔符 os.name:指示你正在使用的工作平台.比如对于Windows,它是'nt',而对于Linux/Unix用户,它是'posix'. os.getcwd:得 ...

  7. 吴裕雄--python学习笔记:os模块的使用

    在自动化测试中,经常需要查找操作文件,比如说查找配置文件(从而读取配置文件的信息),查找测试报告(从而发送测试报告邮件),经常要对大量文件和大量路径进行操作,这就依赖于os模块. 1.当前路径及路径下 ...

  8. 吴裕雄--python学习笔记:BeautifulSoup模块

    import re import requests from bs4 import BeautifulSoup req_obj = requests.get('https://www.baidu.co ...

  9. Python学习笔记(十二)—Python3中pip包管理工具的安装【转】

    本文转载自:https://blog.csdn.net/sinat_14849739/article/details/79101529 版权声明:本文为博主原创文章,未经博主允许不得转载. https ...

随机推荐

  1. PAT Advanced A1104 Sum of Number Segments (20) [数学问题]

    题目 Given a sequence of positive numbers, a segment is defined to be a consecutive subsequence. For e ...

  2. python编程:从入门到实践----第五章:if语句>练习

    5-1 条件测试 :编写一系列条件测试:将每个测试以及你对其结果的预测和实际结果都打印出来. a. 详细研究实际结果,直到你明白了它为何为True 或False b. 创建至少2个测试,且其中结果分别 ...

  3. Python笔记_第一篇_面向过程_第一部分_9.Ubuntu基础操作

    第一部分   Ubuntu简介 Ubuntu(乌班图)是一个机遇Debian的以桌面应用为主的Linux操作系统,据说其名称来自非洲南部祖鲁语或科萨语的“Ubuntu”一词,意思是“人性”.“我的存在 ...

  4. python uiautomator2 新版本2.4.6之watcher的玩法

    最近将uiautomator2升级到最新版本了,运行之前的脚本发现涉及watcher部分的全部报错,大家来看看新版本的watcher如何玩 用法举例 注册监控 # 常用写法,注册匿名监控 d.watc ...

  5. 吴裕雄--天生自然 pythonTensorFlow自然语言处理:Attention模型--测试

    import sys import codecs import tensorflow as tf # 1.参数设置. # 读取checkpoint的路径.9000表示是训练程序在第9000步保存的ch ...

  6. 大集合List分为多个子集合

    批量插入时如果一次插入的对象过多会导致超过mysql限定sql长度,通过命令查看 show VARIABLES like 'max_allowed_packet' ,如果数据太多,就将大集合List分 ...

  7. 【转】Linux服务器命令行模式安装Matlab2014a

    转自http://www.aichengxu.com/diannao/39100.htm 0.下载安装包  下载Matlab2014a for Linux安装包的ISO镜像文件 将下载好的iso文件挂 ...

  8. 使用selenium模拟浏览器抓取淘宝信息

    通过Selenium模拟浏览器抓取淘宝商品美食信息,并存储到MongoDB数据库中. from selenium import webdriver from selenium.common.excep ...

  9. 邪恶的csrf

    关于csrf是啥我就不多说了 进入正文 场景模拟 场景一 在一个bbs社区里,用户在发言的时候会发出一个这样的GET请求: #!html GET /talk.php?msg=hello HTTP/1. ...

  10. Eclipse 热部署方式

    1.tomcat 热部署 1.1方法一:更改 server.xml,更改为 <Context docBase="dreamlive" path="/ROOT&quo ...