您的位置:首页 > 其它

select name where id>1

2017-11-04 23:24 169 查看
啥都别说了就是高兴,明天再继续实现!!(小部分功能实现)



sel = input('请输入查询信息:')  # select name, age where age>20
se = sel.split('where')
content = se[0].split('select')
con = content[1].split(',')
# print(con,se[1])     # [' name', ' age ']  # age > 20
if '>' in se[1]:
s = se[1].split('>')
# print(s)              # [' age', '20']
f = open('SQL',encoding='utf-8')
for line in f:
line = line.strip()  # 读第一行,去空格
l = line.split(',')
# print(l)         # ['id', 'name', 'age', 'phone', 'job']
for titl in l:
if titl.strip() == s[0].strip(): # 找到判断条件的索引
jj = l.index(titl)       # name 和  age
for i in range(len(con)):
con_one_index = l.index(con[i].strip()) # 找到name的索引   # 1
for line2 in f:              # 读第二行  1,Alex,22,13651054608,IT
line2_l = line2.split(',')
find1 = line2_l[con_one_index].strip()# 找到了要返回的内容  Alex
if int(line2_l[jj]) > int(s[1]):  # 20
print(find1)
f.close()

这才是low的正版(要求实现):

select  *  where  phone  like  133

select  name,id  where  age > 22

select  *  where  job  =  IT

# 2017-11-3大礼包

# id,name,age,phone,job
# 1,Alex,22,13651054608,IT
# 2,Egon,23,13304320533,Tearcher
# 3,nezha,25,1333235322,IT

# 可以的(虽然只有基础篇)
sel = input('请输入查询信息:') # select name,job where age=20
def greater(dxd):
se = sel.split('where')
content = se[0].split('select')
con = content[1].split(',')
# print(con,se[1]) # [' name', ' age '] # age > 20
if dxd in se[1]:
s = se[1].split(dxd)
# print(s) # [' age', '20']
f = open('SQL', encoding='utf-8')
for line in f:
line = line.strip() # 读第一行,去空格
l = line.split(',')
# print(l) # ['id', 'name', 'age', 'phone', 'job']
for titl in l:
if titl.strip() == s[0].strip(): # 找到判断条件的索引
jj = l.index(titl) # jj = 2 age
if len(con) >= 1 and content[1].strip() != '*': # 看返回的内容有几个
con_one_index0 = l.index(con[0].strip())
if len(con) >= 2:
con_one_index1 = l.index(con[1].strip())
if len(con) >= 3:
con_one_index2 = l.index(con[2].strip())
if len(con) >= 4:
con_one_index3 = l.index(con[3].strip())
for line2 in f: # 读第二行 1,Alex,22,13651054608,IT
line2_l = line2.split(',')
if content[1].strip() == '*':
if dxd == '>':
if int(line2_l[jj]) > int(s[1]):
xing = ','.join(line2_l)
print(xing.strip())
if dxd == '<':
if int(line2_l[jj]) < int(s[1]):
xing = ','.join(line2_l)
print(xing.strip())
if dxd == '=':
if line2_l[jj].strip() == s[1].strip():
xing = ','.join(line2_l)
print(xing.strip())
if dxd == 'like':
long = len(s[1].strip()) # 133 3
if str(line2_l[jj][0:long].strip()) == s[1].strip(): # ###like
xing = ','.join(line2_l)
print(xing.strip())
elif len(con) >= 1:
find1 = line2_l[con_one_index0].strip() # 找到了要返回的内容 Alex
if len(con) >= 2:
find2 = line2_l[con_one_index1].strip()
if len(con) >= 3:
find3 = line2_l[con_one_index2].strip()
if len(con) >= 4:
find4 = line2_l[con_one_index3].strip()
if dxd == '>':
if int(line2_l[jj]) > int(s[1]): # 20
if len(con) >= 4:
print(find1, find2, find3, find4)
elif len(con) >= 3:
print(find1, find2, find3)
elif len(con) >= 2:
print(find1, find2)
elif len(con) == 1 and content[1].strip() != '*':
print(find1)
if dxd == '<':
if int(line2_l[jj]) < int(s[1]): # 20
if len(con) >= 4:
print(find1, find2, find3, find4)
elif len(con) >= 3:
print(find1, find2, find3)
elif len(con) >= 2:
print(find1, find2)
elif len(con) == 1 and content[1].strip() != '*':
print(find1)
if dxd == '=':
if line2_l[jj].strip() == s[1].strip():
if len(con) >= 4:
print(find1, find2, find3, find4)
elif len(con) >= 3:
print(find1, find2, find3)
elif len(con) >= 2:
print(find1, find2)
elif len(con) == 1 and content[1].strip() != '*':
print(find1)
if dxd == 'like':
long = len(s[1].strip()) # 特么的!!空格太重要了
if str(line2_l[jj][0:long].strip()) == s[1].strip():
if len(con) >= 4:
print(find1, find2, find3, find4)
elif len(con) >= 3:
print(find1, find2, find3)
elif len(con) >= 2:
print(find1, find2)
elif len(con) == 1 and content[1].strip() != '*':
print(find1)
f.close()
if '<' in sel:
dxd = '<'
if '>' in sel:
dxd = '>'
if '=' in sel:
dxd = '='
if 'like' in sel:
dxd = 'like'
greater(dxd)
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐