作业如下:

1 #Author wangmengzhu 2 import os 3 4 def select(): 5 ''' 6 查询语法如下: 7 select name,age from staff_table where age > 22 8 select * from staff_table where dept = "IT" 9 select * from staff_table where enroll_date like "2013" 10 ''' 11 data = input('请输入你的命令>>: ') 12 data1 = data.split(' ') 13 #print(data1) 14 if data == ("select name,age from staff_table where age > %s" % (data1[7])): 15 with open('作业.txt', 'r+', encoding='utf-8') as f: 16 list1 = [] 17 count = 0 18 for line in f: 19 i = line.strip().split(',') 20 if i[2] > data1[7]: 21 list1.append(i) 22 for s in list1: 23 count = count + 1 24 print('满足条件的个数为>>:%s'%(count)) 25 #print(list1) 26 for j in list1: 27 print(j) 28 elif data == ('select * from staff_table where dept = %s'%(data1[7])): 29 with open('作业.txt', 'r+', encoding='utf-8') as f: 30 list2 = [] 31 count = 0 32 for line in f: 33 i = line.strip().split(',') 34 if i[4] == data1[7]: 35 list2.append(i) 36 for s in list2: 37 count = count + 1 38 print('满足条件的个数为>>:%s' % (count)) 39 # print(list1) 40 for j in list2: 41 print(j) 42 elif data == ('select * from staff_table where enroll_date like %s'%(data1[7])): 43 with open('作业.txt', 'r+', encoding='utf-8') as f: 44 list3 = [] 45 list4 = [] 46 count = 0 47 for line in f: 48 i = line.strip().split(',') 49 list3.append(i) 50 #print(list3) 51 for j in list3: 52 m = j[5].split('-') 53 if m[0] == data1[7]: 54 list4.append(j) 55 for s in list4: 56 count = count + 1 57 print('满足条件的条数为>>:%s'%(count)) 58 for j in list4: 59 print(j) 60 else: 61 print('你输入的命令不合法!!') 62 def add(): 63 ''' 64 注释信息: 65 可创建新员工纪录,以phone做唯一键,staff_id需自增 66 name,age,phone,dept,enroll-date 67 例如:mengzhu,23,12345678901,IT,2013-04-01 68 ''' 69 data = input('请输入你的命令>>: ') 70 data1 = data.split(',') 71 with open('作业.txt','r+',encoding = 'utf-8') as f: 72 list5 = [] 73 for line in f: 74 s = line.strip().split(',') 75 m = s[3] 76 list5.append(m) 77 if data1[2] in list5: 78 print('这条记录已经存在') 79 exit() 80 else: 81 my_index = str(len(list5)+1) 82 data1.insert(0,my_index) 83 data1 = ','.join(data1) 84 f.write(' ') 85 f.write(data1) 86 def delete(): 87 ''' 88 注释信息: 89 可删除指定员工信息纪录,输入员工id,即可删除 90 delete * from staff_table where id = 3 91 ''' 92 data = input('请输入你要删除的命令>>: ') 93 data1 = data.split(' ') 94 with open('作业.txt','r+',encoding = 'utf-8') as f, 95 open('new.txt','w+',encoding = 'utf-8') as f1: 96 if data == ('delete * from staff_table where id = %s'%(data1[7])): 97 for line in f: 98 i = line.strip().split(',') 99 if i[0] != data1[7]: 100 i = ','.join(i) 101 f1.write(i) 102 f1.write(' ') 103 else: 104 continue 105 106 107 os.remove('作业.txt') 108 os.rename('new.txt', '作业.txt') 109 def update(): 110 ''' 111 注释信息: 112 可修改员工信息,语法如下: 113 UPDATE staff_table SET dept="Market" WHERE where dept = "IT" 114 ''' 115 data = input('请输入你要更改的命令>>: ') 116 data1 = data.split(' ') 117 if data == ('UPDATE staff_table SET dept = %s where dept = %s'%(data1[5],data1[9])): 118 with open('作业.txt','r+',encoding = 'utf-8') as f: 119 for line in f: 120 i = line.strip().split(',') 121 #print(i) 122 if i[4] == data1[9]: 123 i[4] = data1[5] 124 print(i) 125 else: 126 continue 127 128 def main(): 129 cmd_dic = { 130 'select':select, 131 'delete':delete, 132 'update':update, 133 'add':add 134 } 135 while True: 136 sql = input('输入要查询的sql语句>>: ').strip() 137 if not sql:continue 138 cmd_info = sql.split() 139 cmd = cmd_info[0] 140 if cmd in cmd_dic: 141 cmd_dic[cmd]() 142 else: 143 print('cmd not exists') 144 145 main()