# sql脚本表及字段血缘分析 **Repository Path**: gava-coder/sqlscript-lineage-analysis ## Basic Information - **Project Name**: sql脚本表及字段血缘分析 - **Description**: 用java语言实现sql语句的表与表,字段与字段之间的依赖关系。本项目已通过2000多个sql批量脚本验证,多数sql脚本在0.2秒内能解析出血缘关系。 - **Primary Language**: Java - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 3 - **Forks**: 0 - **Created**: 2025-09-14 - **Last Updated**: 2025-11-28 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # sql脚本表及字段血缘分析 #### 介绍 ###### 用java语言实现sql语句的表与表,字段与字段之间的依赖关系。本项目已通过2000多个sql批量脚本验证,多数sql脚本在0.2秒内能解析出血缘关系。支持常用关系型数据库,主要解析以下三种sql语句获取依赖关系: - create table as select 或者 create table like - insert into - update #### 软件架构 ###### 基于java字符串处理,分为以下几个步骤解析依赖关系: - 格式化sql语句,替换换行符,格式化空格键,tab键等,删除注释部分。 - 子查询提取成单独的create table as select 语句,用临时表代替子查询。 - 扩展获取表字段的接口,实现接口根据表名称获取表字段,用来替换类似 select * 这样的 * 为具体字段。 - 替换select 后面函数括号内的逗号。 - 解析insert 或者 create as 后的字段,以及对应select后面的部分,根据表别名及表的字段,自定义contains方法获取一一对应关系。 ###### 案例,详见DEMO.sql #### 安装教程 1. xxxx 2. xxxx 3. xxxx #### 使用说明 1. xxxx 2. xxxx 3. xxxx #### 参与贡献 1. Fork 本仓库 2. 新建 Feat_xxx 分支 3. 提交代码 4. 新建 Pull Request #### 特技 1. 使用 Readme\_XXX.md 来支持不同的语言,例如 Readme\_en.md, Readme\_zh.md 2. Gitee 官方博客 [blog.gitee.com](https://blog.gitee.com) 3. 你可以 [https://gitee.com/explore](https://gitee.com/explore) 这个地址来了解 Gitee 上的优秀开源项目 4. [GVP](https://gitee.com/gvp) 全称是 Gitee 最有价值开源项目,是综合评定出的优秀开源项目 5. Gitee 官方提供的使用手册 [https://gitee.com/help](https://gitee.com/help) 6. Gitee 封面人物是一档用来展示 Gitee 会员风采的栏目 [https://gitee.com/gitee-stars/](https://gitee.com/gitee-stars/)