select name where id>1

啥都别说了就是高兴,明天再继续实现!!(小部分功能实现)

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)



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值