Estoy tratando de encontrar la mejor manera de formatear una cadena de consulta SQL. Cuando estoy depurando mi aplicación, me gustaría iniciar sesión para archivar todas las cadenas de consulta SQL, y es importante que la cadena esté formateada correctamente.
Opción 1
def myquery():
sql = "select field1, field2, field3, field4 from table where condition1=1 and condition2=2"
con = mymodule.get_connection()
...
- Esto es bueno para imprimir la cadena sql.
- No es una buena solución si la cadena es larga y no se ajusta al ancho estándar de 80 caracteres.
opcion 2
def query():
sql = """
select field1, field2, field3, field4
from table
where condition1=1
and condition2=2"""
con = mymodule.get_connection()
...
Aquí el código es claro, pero cuando imprime la cadena de consulta SQL, obtiene todos estos molestos espacios en blanco.
u '\ nseleccionar campo1, campo2, campo3, campo4 \ n_ _ ___ de la tabla \ n _ ___ donde condición1 = 1 \ n _ ___ _ y condición2 = 2'
Nota: he reemplazado los espacios en blanco con un guión bajo _
, porque el editor los recorta
Opción 3
def query():
sql = """select field1, field2, field3, field4
from table
where condition1=1
and condition2=2"""
con = mymodule.get_connection()
...
- No me gusta esta opción porque rompe la claridad del código bien tabulado.
Opción 4
def query():
sql = "select field1, field2, field3, field4 " \
"from table " \
"where condition1=1 " \
"and condition2=2 "
con = mymodule.get_connection()
...
- No me gusta esta opción porque toda la escritura adicional en cada línea y también es difícil editar la consulta.
Para mí la mejor solución sería la Opción 2 pero no me gustan los espacios en blanco adicionales cuando imprimo la cadena sql.
¿Conoces otras opciones?