SQL查询格式化(很快基本的无模式验证)

sqlvalidator的Python项目详细描述


SqlValidator

sql查询格式化(很快基本的无模式验证)

格式化

格式化可通过两种方式使用:

  • 从命令行格式化包含用# sqlformat标记的sql字符串的python文件:

sqlvalidator --format myfile.pysqlvalidator --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>
  • 提供的模式(以验证列存在)

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
hbm中的java异常。xml   java如何扩展JavaDoc5.0标准doclet?   java将所有非字母数字更改为+   java如何使用JSP从URL获取参数   把java学校的程序员变成C或C++程序员有多难?   java使用HTML获取表内容   java在JPanel中使用repaint()方法而不删除已绘制的内容   rest如何在Java中动态映射同一父类的子对象列表   如果协议不是http或https,java如何解析URL?   java删除文本时如何在eclipse中隐藏建议框?   java代码名1 GPS跟踪器   java寻找骑士所有独特的可能动作   从一个管道到另一个进程的java InputStream仍然被阻塞   java在阶段后将子项添加到窗格。show()   java如何确保在子对象中调用超级方法?   java从json对象获取值   java使用多线程读取文件   java Struts 1.1+Hibernate 3.2集成