from re import*
def s(d,q):
o,f,c=search(r' (?:all|(.*?)) from (\S+)(?:.*?\((.*)\))?',q,I).groups()
for x,l,r in d:
u=str.lower;h=bool;m=o and o.split(', ')or l;y=[]
for g in r:
_,*t=split('(?: (?:(and)|or) |^)(not )?(.*?)=',c or'',p:=0,I)
while t:a,n,k,v,*t=t;p=h(a)&p&(b:=h(n)^any(i==u(k)and(j==eval(v)or list==type(j)and eval(v)in j)for i,j in zip(l,g)))|p|b
if 1-h(c)|p:y+=[j for i,j in zip(l,g)for z in m if i==u(z)],
if u(f)==x:print([m,y])
db = [
["data", ("d1", "d2", "3", "~!@#"), [(123, "", [980, "abc"], "false"), (456, "this isn't empty!", [[],[]], "-123.4444"), (1, "2", [3, 4], "five")]],
["no", ("yes", "a", "1.5", "what"), []]
]
s(db,"SELECT ALL FROM data")
s(db,"SELECT D1 FROM DATA")
s(db,"SELECT d1, 3 FROM data")
s(db,"SELECT ALL FROM DATA WHERE (NOT d1=123)")
s(db,"SELECT all FROM data WHERE (d1=123)")
s(db,"SELECT ~!@# FROM DATA WHERE (3=[] OR d2=\"\")")
s(db,"SELECT all FROM DATA WHERE (d1=2)")
s(db,"select all from no")
s(db,"select 3 from data where (3=980)")
s(db,"SELECT ALL FROM DATA WHERE (3=[[],[]] AND ~!@#=\"-123.4444\")")
ZnJvbSByZSBpbXBvcnQqCmRlZiBzKGQscSk6CiBvLGYsYz1zZWFyY2gocicgKD86YWxsfCguKj8pKSBmcm9tIChcUyspKD86Lio/XCgoLiopXCkpPycscSxJKS5ncm91cHMoKQogZm9yIHgsbCxyIGluIGQ6CiAgdT1zdHIubG93ZXI7aD1ib29sO209byBhbmQgby5zcGxpdCgnLCAnKW9yIGw7eT1bXQogIGZvciBnIGluIHI6CiAgIF8sKnQ9c3BsaXQoJyg/OiAoPzooYW5kKXxvcikgfF4pKG5vdCApPyguKj8pPScsYyBvcicnLHA6PTAsSSkKICAgd2hpbGUgdDphLG4sayx2LCp0PXQ7cD1oKGEpJnAmKGI6PWgobileYW55KGk9PXUoaylhbmQoaj09ZXZhbCh2KW9yIGxpc3Q9PXR5cGUoailhbmQgZXZhbCh2KWluIGopZm9yIGksaiBpbiB6aXAobCxnKSkpfHB8YgogICBpZiAxLWgoYyl8cDp5Kz1baiBmb3IgaSxqIGluIHppcChsLGcpZm9yIHogaW4gbSBpZiBpPT11KHopXSwKICBpZiB1KGYpPT14OnByaW50KFttLHldKQogIApkYiA9IFsKIFsiZGF0YSIsICgiZDEiLCAiZDIiLCAiMyIsICJ+IUAjIiksIFsoMTIzLCAiIiwgWzk4MCwgImFiYyJdLCAiZmFsc2UiKSwgKDQ1NiwgInRoaXMgaXNuJ3QgZW1wdHkhIiwgW1tdLFtdXSwgIi0xMjMuNDQ0NCIpLCAoMSwgIjIiLCBbMywgNF0sICJmaXZlIildXSwKIFsibm8iLCAoInllcyIsICJhIiwgIjEuNSIsICJ3aGF0IiksIFtdXQpdCgpzKGRiLCJTRUxFQ1QgQUxMIEZST00gZGF0YSIpCnMoZGIsIlNFTEVDVCBEMSBGUk9NIERBVEEiKQpzKGRiLCJTRUxFQ1QgZDEsIDMgRlJPTSBkYXRhIikKcyhkYiwiU0VMRUNUIEFMTCBGUk9NIERBVEEgV0hFUkUgKE5PVCBkMT0xMjMpIikKcyhkYiwiU0VMRUNUIGFsbCBGUk9NIGRhdGEgV0hFUkUgKGQxPTEyMykiKQpzKGRiLCJTRUxFQ1QgfiFAIyBGUk9NIERBVEEgV0hFUkUgKDM9W10gT1IgZDI9XCJcIikiKQpzKGRiLCJTRUxFQ1QgYWxsIEZST00gREFUQSBXSEVSRSAoZDE9MikiKQpzKGRiLCJzZWxlY3QgYWxsIGZyb20gbm8iKQpzKGRiLCJzZWxlY3QgMyBmcm9tIGRhdGEgd2hlcmUgKDM9OTgwKSIpCnMoZGIsIlNFTEVDVCBBTEwgRlJPTSBEQVRBIFdIRVJFICgzPVtbXSxbXV0gQU5EIH4hQCM9XCItMTIzLjQ0NDRcIikiKQ==
[('d1', 'd2', '3', '~!@#'), [[123, '', [980, 'abc'], 'false'], [456, "this isn't empty!", [[], []], '-123.4444'], [1, '2', [3, 4], 'five']]]
[['D1'], [[123], [456], [1]]]
[['d1', '3'], [[123, [980, 'abc']], [456, [[], []]], [1, [3, 4]]]]
[('d1', 'd2', '3', '~!@#'), [[456, "this isn't empty!", [[], []], '-123.4444'], [1, '2', [3, 4], 'five']]]
[('d1', 'd2', '3', '~!@#'), [[123, '', [980, 'abc'], 'false']]]
[['~!@#'], [['false'], ['-123.4444']]]
[('d1', 'd2', '3', '~!@#'), []]
[('yes', 'a', '1.5', 'what'), []]
[['3'], [[[980, 'abc']]]]
[('d1', 'd2', '3', '~!@#'), [[456, "this isn't empty!", [[], []], '-123.4444']]]