SQL-parser presents a random SELECT-statement as such class:
public class Query {
private List<Column> selections;
private List<Source> fromSources;
private List<Join> joins;
private List<WhereClause> whereClauses;
private List<String> groupByColumns;
private List<Sort> sortColumns;
private Integer limit = 0;
private Integer offset = 0;
}
- SELECT
- FROM
- WHERE
- JOIN
- GROUP BY
- ORDER BY
- LIMIT
- OFFSET
Also nested statements, aliases and inner, left, right, full, cross join.
SELECT author.name, book.id, book.cost
FROM (SELECT * FROM classic.authors)
LEFT JOIN book ON (author.id = book.author_id)
WHERE book.cost > 500 AND book.id BETWEEN 10 AND 50
GROUP BY author.name
ORDER BY book.id ASC
OFFSET 10
LIMIT 10
- Write your SELECT-statement into input.txt file. In ouput.txt file you will see the result of parsing.
- Write every main keyword from a new line.
- Nested statements need to be written in one line for a better parsing.
- Use keyword AS only for naming columns, not tables.
- JDK 17
- Gradle 7
git clone git@github.com:anasasiia/sql-parser.git
make build
make lint
make run