SQL查询格式化(很快基本的无模式验证)
sqlvalidator的Python项目详细描述
SqlValidator
sql查询格式化(很快基本的无模式验证)
格式化
格式化可通过两种方式使用:
- 从命令行格式化包含用
# sqlformat
标记的sql字符串的python文件:
sqlvalidator --format myfile.py
或sqlvalidator --format myproject/
- 格式化表示sql的python字符串:
sqlvalidator.format_sql("SELECT * FROM table")
两者都为相同的输入sql输出相同的格式化字符串。
可以使用
sqlvalidator --check-format pyfile.py
它不会写回文件,只是返回一个状态码。 状态代码0表示没有任何更改。 状态代码1表示某些文件将重新格式化。
验证
尚未实现,但应成为此库的主要附加值。
建议的API:
importsqlvalidatorsql_query=sqlvalidator.parse("SELECT * from table")ifnotsql_query.is_valid():print(sql_query.errors)
理想情况下,此包应提供基本的SQL验证:
- 不使用缺少的列
- 更正聚合
- 无模式(不假设表名和列存在)
- 在函数中键入正确性
(仅适用于选定语句)
更多高级功能:
- 取决于后端(标准SQL、PostgreSQL、BigQuery、传统BigQuery…)
- 灵活的内部SQL表示以进行高级验证< /LI>
- 提供的模式(以验证列存在)