抽空用PB做了一个SQL解析器程序,可以将SQL语句解析为Treeview视图:
编程的难点主要是对左右括号和单引号匹配的处理,此外还要处理运算符。目前已经具备对SELECT语句的解析,将来准备添加对INSERT、DELETE、UPDATE的解析。SELECT语句解析已实现的功能:
- SELECT 子句
- *
- TOP n
- DISTINCT
- FROM 子句
- LEFT OUTER JOIN
- RIGHT OUTER JOIN
- FULL OUTER JOIN
- LEFT JOIN
- RIGHT JOIN
- FULL JOIN
- INNER JOIN
- WHERE 子句
- NOT EXISTS
- EXISTS
- IN
- ANY
- GROUP BY 子句
- ORDER BY 子句
FROM和WHERE子句支持嵌套SQL表(虚拟表),允许无限层次的嵌套。