pip install sqlparse
python
import sqlparse
def parse_sql(sql):
parsed = sqlparse.parse(sql)
for statement in parsed:
statement_type = statement.get_type()
tokens = statement.tokens
for token in tokens:
if token.is_group():
for inner_token in token.tokens:
if inner_token.is_keyword():
print(statement_type)
print(statement)
print()
sql = "SELECT id, name FROM users WHERE age > 18;"
parse_sql(sql)
SELECT
[<DML 'SELECT' at 0x7f0ad7220a40>, <Whitespace ' ' at 0x7f0ad7220a90>, <IdentifierList 'id' at 0x7f0ad7220030>, <Whitespace ' ' at 0x7f0ad7220440>, <IdentifierList 'name' at 0x7f0ad72200c0>, <Whitespace ' ' at 0x7f0ad7220980>, <Keyword 'FROM' at 0x7f0ad72205e0>, <Whitespace ' ' at 0x7f0ad72208e0>, <Identifier 'users' at 0x7f0ad7220520>, <Whitespace ' ' at 0x7f0ad7220520>, <Where 'WHERE ...' at 0x7f0ad7220910>]
python
import sqlparse
sql = "SELECT id, name FROM users WHERE age > 18;"
parsed = sqlparse.parse(sql)
formatted_sql = sqlparse.format(parsed[0].tokens, reindent=True)
print(formatted_sql)
SELECT
id,
name
FROM
users
WHERE
age > 18;