1. 程式人生 > >python sqlite學生管理系統

python sqlite學生管理系統

sqlite 函式封裝學生系管理
import sqlite3

def create_table():
connect = sqlite3.connect(‘testsqlite.db’)
cursor = connect.cursor()
cursor.execute("""
CREATE
TABLE
students
(
id INTEGER PRIMARY KEY AUTOINCREMENT,
name TEXT NOT NULL,
sex TEXT,
age INTEGER,
phone TEXT
);
“”" )
connect.commit()
cursor.close()
connect.close()

def show_students():

print('行號\t\t姓名\t\t年齡\t\t性別\t\t電話\t\t')
print("------------------------------------")
connect = sqlite3.connect("testsqlite.db")
cursor = connect.cursor()
cursor.execute("""
   SELECT * FROM students;
""")
student_list = cursor.fetchall()  # [(1,小明,年齡,性別,電話)]
for index, student in enumerate(student_list):
    print(f'{index+1}\t\t{student[1]}\t\t{student[2]}\t\t{student[3]}\t\t{student[4]}')
cursor.close()
connect.close()

def add_students():
name = input(‘新學生姓名:’)
sex = input(‘新學生性別:’)
age = input(‘新學生年齡:’)
phone = input(‘新學生電話:’)

connect = sqlite3.connect("testsqlite.db")
cursor = connect.cursor()
# sql = """
#     INSERT INTO students (name,sex, age, phone) VALUES("%s","%s", %s, "%s");""" %(name, sex, int(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 uptade_students():
number = int(input(‘要修改第幾個學生:’))
new_name = input(‘修改後的姓名是:’)
new_sex = input(‘修改後的性別:’)
new_age = int(input(‘修改後的年齡:’))
new_phone = input(‘修改後的電話;’)

connect = sqlite3.connect("testsqlite.db")
cursor = connect.cursor()
sqli = f"""
       UPDATE students SET name="{new_name}",sex="{new_sex}",age={new_age},phone="{new_phone}" WHERE id={number};
   """

cursor.execute(sqli)
connect.commit()
connect.close()
print('修改成功')

def delete_students():
print(""“請輸入子操作編號:
1.按學生編號刪除
2.刪除全部學生
“””)
num = int(input(‘請選擇子操作:’))
if num == 1:
stu_num = int(input(‘要刪除第幾個學生:’))

    connect = sqlite3.connect("testsqlite.db")
    cursor = connect.cursor()
    cursor.execute(f"""
       DELETE FROM students WHERE id={stu_num-1};
   """)
    connect.commit()
    connect.close()

    print('刪除成功')
elif num == 2:
    confirm = input('是否全部刪除?(Y/N)')
    if confirm == 'Y' or confirm == 'y':
        connect = sqlite3.connect("testsqlite.db")
        cursor = connect.cursor()
        cursor.execute(f"""
          DELETE FROM students;
       """)
        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_students()
    elif num == 3:
        uptade_students()
    elif num == 4:
        delete_students()
    elif num == 0:
        break

if name == ‘main’:#這種寫法含義將會在“包、模組”一節中華介紹。
main()

輸出結果
1-查詢學員姓名
2-新增學員姓名
3-修改學員姓名
4-刪除學員姓名
0-退出程式
請輸入操作編號1
行號 姓名 年齡 性別 電話

1 小明 男 17 32454657676
2 小李 男 21 23445545666
3 fghgf fg ggh 56565
4 bfb 34 56 34546677
5 xin nvf fkiv 3245687
6 3

    1-查詢學員姓名
    2-新增學員姓名
    3-修改學員姓名
    4-刪除學員姓名
    0-退出程式

請輸入操作編號2
新學生姓名:小塊
新學生性別:男
新學生年齡:12
新學生電話:1243657879989

    INSERT INTO students (name,sex, age, phone) VALUES("小塊","男","12","1243657879989");


    1-查詢學員姓名
    2-新增學員姓名
    3-修改學員姓名
    4-刪除學員姓名
    0-退出程式

請輸入操作編號3
要修改第幾個學生:2
修改後的姓名是:系 成v
修改後的性別:男
修改後的年齡:23
修改後的電話;21434545666
修改成功

    1-查詢學員姓名
    2-新增學員姓名
    3-修改學員姓名
    4-刪除學員姓名
    0-退出程式

請輸入操作編號4
請輸入子操作編號:
1.按學生編號刪除
2.刪除全部學生

請選擇子操作:1
要刪除第幾個學生:4
刪除成功

    1-查詢學員姓名
    2-新增學員姓名
    3-修改學員姓名
    4-刪除學員姓名
    0-退出程式

請輸入操作編號1
行號 姓名 年齡 性別 電話

1 小明 男 17 32454657676
2 fghgf fg ggh 56565
3 bfb 34 56 34546677
4 xin nvf fkiv 3245687
5 3
6 小塊 男 12 1243657879989

    1-查詢學員姓名
    2-新增學員姓名
    3-修改學員姓名
    4-刪除學員姓名
    0-退出程式

請輸入操作編號