Estou tentando encontrar a melhor maneira de formatar uma string de consulta sql. Quando estou depurando meu aplicativo, gostaria de registrar para arquivar todas as strings de consulta sql, e é importante que a string esteja formatada corretamente.
Opção 1
def myquery():
sql = "select field1, field2, field3, field4 from table where condition1=1 and condition2=2"
con = mymodule.get_connection()
...
- Isso é bom para imprimir a string sql.
- Não é uma boa solução se a string for longa e não se ajustar à largura padrão de 80 caracteres.
opção 2
def query():
sql = """
select field1, field2, field3, field4
from table
where condition1=1
and condition2=2"""
con = mymodule.get_connection()
...
Aqui, o código é claro, mas quando você imprime a string de consulta sql, obtém todos esses espaços em branco irritantes.
u '\ nselecione campo1, campo2, campo3, campo4 \ n_ _ ___ da tabela \ n _ ___ onde condição1 = 1 \ n _ ___ _e condição2 = 2'
Observação: substituí os espaços em branco por sublinhados _
, porque eles são cortados pelo editor
Opção 3
def query():
sql = """select field1, field2, field3, field4
from table
where condition1=1
and condition2=2"""
con = mymodule.get_connection()
...
- Não gosto dessa opção porque quebra a clareza do código bem tabulado.
Opção 4
def query():
sql = "select field1, field2, field3, field4 " \
"from table " \
"where condition1=1 " \
"and condition2=2 "
con = mymodule.get_connection()
...
- Não gosto desta opção porque toda a digitação extra em cada linha e é difícil editar a consulta também.
Para mim, a melhor solução seria a Opção 2, mas não gosto dos espaços em branco extras quando imprimo a string sql.
Você conhece outras opções?