DBSeek

G

godwin

Hello there,
I need some thoughts about a web application that i am dreaming
and
drooling about in python. I want a search page to look exactly like
Google. But when i press the search button, it should search a database
in an rdbms like Oracle and provide results.
For example, if my keywords are "all customers with names
starting with 'God'" it should somehow search table CUSTOMER , with
following query :
SELECT CUSTNAME FROM CUSTOMER WHERE CUSTNAME LIKE 'God%'
So we basically need is a good python parser module which parses the
keywords into an sql or sqls and list the results. I can look in the
keywords for table and column synonyms and map it into table and column
names and create sql but it's not a foolproof idea as we all know that
english is a very vague language. The above idea wil fail , if i can't
identify table,column names ,operators and values in their logical
orders so as to create a syntactically correct sql. If there are more
tables involved, i should also think of joining tables
(inner,outer,equi joins). All I want is some enlightening thoughts from
the python hackers(i mean programmers) out there.Plz polish your grey
cells and let me know your thoughts.

# this is my basic and foolish keywordparser
# the object db provides the table as well as column names
# as u can see it may or may not work even for a single table
class KeyWordParser(object):
def __init__(self,keywords,db):
self.keywords = keywords.upper().split()
self.db = db
self.tables = []
self.columns = []

def parse2sql(self):
for word in self.keywords:
if word in self.db.tables():
self.tables.append(word)

for word in self.keywords:
for table in self.tables:
for column in self.db.columns(table):
if column == word:
self.columns.append(column)
sql = 'SELECT %s FROM %s' % (','.join(self.columns) or
'*',','.join(self.tables))
return sql
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

No members online now.

Forum statistics

Threads
473,769
Messages
2,569,582
Members
45,057
Latest member
KetoBeezACVGummies

Latest Threads

Top