# xsqlparser
**Repository Path**: shenqd/xsqlparser
## Basic Information
- **Project Name**: xsqlparser
- **Description**: No description available
- **Primary Language**: Unknown
- **License**: MIT
- **Default Branch**: master
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 0
- **Forks**: 0
- **Created**: 2024-05-20
- **Last Updated**: 2024-05-20
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
# xSqlParser
解析SQL语句,支持mysql、oracle、sqlserver,sql92
一名golang新手的第一个开源项目,欢迎star, fork, 有什么需求、意见和建议尽管在issue里提,
我还可以通过antlr的TokenStreamRewrite来对sql的特定节点进行逻辑修改,项目内暂时还没有添加这项功能,如果需要的话我可以加上。
### DOCUMENTATION📜
[](https://github.com/jiunx/xsqlparser/blob/master/README.md)
[](https://github.com/jiunx/xsqlparser/blob/master/README-cn.md)
## 快速入门
### 安装
获取最新版本
```
go get github.com/jiunx/xsqlparser
```
## 运行测试
您可以使用 parser_test.go 中的测试代码来测试解析器是否正确解析了 sql 语句。
```
sql := "select id,name,address from t"
parserFactory := parser.GetParserFactoryInstance()
mysqlParser, err := parserFactory.GetParser(util.Mysql)
if err != nil {
fmt.Println(err)
return
}
statement, err2 := mysqlParser.Parse(context.Background(), sql)
if err2 != nil {
fmt.Println(err2)
}
fmt.Printf("%+v\n", statement)
```
你会得到这样的输出
```
&{Sql:select id,name,address from t SqlType:select Language:mysql Tables:[t] Columns:[id name address] Results:[id name address] Ast:0xc000246c00}
```
下面介绍statement的结构
```
statement.SqlType sql的类型, 如 select, insert, update, delete, create, drop, etc.
statement.Tables sql涉及到的表名, 如 t.
statement.Columns sql涉及到的字段名, 如 id, name, address.
statement.Results select语句的结果集, 如 id, name, address.
statement.Ast 这条sql的AST树,如果你熟悉ANTLR或者树操作的话你也可以通过listener来解析sql.
```
## Contributing
jiunx(作者).
[antlr](https://github.com/antlr/antlr4), 主要依赖的技术
[shardingsphere](https://github.com/apache/shardingsphere),从这里获取的antlr语法文件
## Authors
jiunx
## Acknowledgments
* Antlr4