1 #Author guixin
2 def find():
3 '''
4 查询语法如下:
5 find name,age from staff_table where age > 22
6 find * from staff_table where dept = IT
7 find * from staff_table where enroll_date like 2013
8 '''
9 data = input("查询:")
10 data1 = data.split()
11 if len(data1) == 8 :
12 if data == ("find name,age from staff_table where age > %s"%(data1[7])):
13 f = open('staff_db','r')
14 list1 = []
15 count = 0
16 for line in f:
17 i = line.strip().split(',')
18 if int(i[2]) > int(data1[7]):
19 list1.append(i)
20 for line in list1:
21 count += 1
22 print("满足条件的数量:%s"%(count))
23 for line in list1:
24 print(line)
25 elif data == ("find * from staff_table where dept = %s"%(data1[7])):
26 f = open('staff_db','r')
27 list2 = []
28 count = 0
29 for line in f:
30 i = line.strip().split(',')
31 if i[4] == data1[7]:
32 list2.append(i)
33 for line in list2:
34 count += 1
35 print("满足条件的数量:%s"%(count))
36 for line in list2:
37 print(line)
38 elif data == ("find * from staff_table where enroll_date like %s"%(data1[7])):
39 list3 = []
40 list4 = []
41 count = 0
42 f = open('staff_db','r')
43 for line in f:
44 i = line.strip().split(',')
45 list3.append(i)
46 for line in list3:
47 i = line[5].split('-')
48 if i[0] == data1[7]:
49 list4.append(line)
50 for line in list4:
51 count += 1
52 print("满足条件的数量:%s"%(count))
53 for line in list4:
54 print(line)
55 else:
56 print("输入有误")
57 else:
58 print("输入有误")
59 def add():
60 '''
61 注释信息:
62 可创建新员工记录,以phone做唯一键,staff_id需自增
63 新增方法:
64 Gui Xin,22,13977777777,it,1999-1-1
65 '''
66 data = input("添加:")
67 data1 = data.split(',')
68 print(data1)
69 if len(data1) == 5:
70 list5 = []
71 f = open("staff_db",'r+')
72 for line in f:
73 i = line.strip().split(',')
74 list5.append(i[3])
75 if data1[2] in list5:
76 print("这条记录已存在")
77 else:
78 staff_id = str(len(list5)+1)
79 data1.insert(0,staff_id)
80 data1 = ', '.join(data1)
81 f.write('\n')
82 f.write(data1)
83 else:
84 print("输入有误")
85 def delete():
86 """
87 注释信息:
88 可删除指定员工的信息记录,输入员工ID即可删除
89 del * from staff_db where id = 1
90 """
91 data = input("删除:")
92 data1 = data.split()
93 f = open('staff_db','r+')
94 if len(data1) == 8:
95 if data == ("del * from staff_db where id = %s"%(data1[7])):
96 list6 = []
97 for line in f:
98 i = line.strip().split(',')
99 list6.append(i)
100 if int(i[0]) == int(data1[7]):
101 list6.remove(i)
102 print("删除记录:%s"%(i))
103 print(list6)
104 else:
105 print("输入有误")
106 else:
107 print("输入有误")
108 def update():
109 '''
110 注释信息:可修改员工信息,语法如下
111 update staff_table set dept = HR where dept = IT
112 update staff_table set age = 18 where name = 'Alex Li'
113 '''
114 data = input("更新:")
115 data1 = data.split()
116 if len(data1) == 10:
117 if data == ("update staff_table set dept = %s where dept = %s"%(data1[5],data1[9])):
118 f = open("staff_db",'r+')
119 for line in f:
120 i = line.strip().split(',')
121 if i[4] == data1[9] :
122 i[4] = data1[5]
123 print(i)
124 elif data == ("update staff_table set age = %s where name = %s"%(data1[5],data1[9])):
125 f = open("staff_db",'r+')
126 for line in f:
127 i = line.strip().split(',')
128 if i[1] == data1[9]:
129 i[2] = data1[5]
130 print(i)
131 else:
132 print("输入有误")
133 else:
134 print("输入有误")
135 data = input("/查询/添加/删除/更新:")
136 if data == "查询":
137 find()
138 elif data == "添加":
139 add()
140 elif data == "删除":
141 delete()
142 elif data == "更新":
143 update()
144 else:
145 print("输入有误")