做一个自己使用的文件数据库,为了支持简单sql语句,需要编写一个sql解析器。现在碰到一个问题,
在解析带有绑定变量的sql语句的时候如何将变量真正的值解析出来,
例如,insert into student values('make','+age+'); 这边插入的第二个值是一个变量,问题是sql语句是以一个字符串的形式传递到解析函数里面的,在解析函数里面我该如何获取到这个变量的值?
附带一个问题,有谁写过sql的解析器的吗,能不能分享一下你是怎么编写的吗?我的方法是直接对sql进行解析,将需要的东西解析出来
比如create table student {
name char[8]
age int
}
解析这个语句的时候,我就是将表名student 列信息 name char[8] age int 代表的信息提取出来,存到对应的数据结构中,当然解析的时候也会对sql语句的合法性进行一定的检查,反正我能想到的错误类型都检查了,应该还有差错。