SQL的语法树解析
SQL语法树解析是将SQL查询语句转换成抽象语法树- AST的过程,是数据库引擎处理查询的第一步,也是防止SQL注入的重要手段。
第一阶段
语法分析:拆解SQL语句,识别关键字、表名、列名
[select] [id]
第二阶段
语法分析:检查SQL是否符合语法规则,并构建抽象语法树
大概就是构建语法树。
第三阶段
语义分析:检查表、列是否存在,进行权限验证。
比如说执行:
SELECT id, name FROM users WHERE age > 'eighteen';
会报错:
ERROR: Column 'age' is INT, but 'eighteen' is STRING.

浙公网安备 33010602011771号