18143453325 在线咨询 在线咨询
18143453325 在线咨询
所在位置: 首页 > 营销资讯 > 信息时代 > 查询语法树(数据库)

查询语法树(数据库)

时间:2022-12-14 08:30:02 | 来源:信息时代

时间:2022-12-14 08:30:02 来源:信息时代

    查询语法树 : 在DBMS 内部表示用户查询的方法,也是DBMS进行查询优化的依据。
DBMS的语法分析器对SQL查询进行词法和语法分析后,生成语法分析树。语法树由结点和边组成,结点表示语法类,边表示结点间的输入输出关系。语法树只是查询的一种内部表达方式,其具体形式由具体的数据库管理系统进行定义,不同数据库管理系统其语法树的形式不完全一样,但通常比较相似。
例如,有两个关系模式: 图书表BOOK记录了每本图书的编号、书名、作者等信息。借阅表BR记录了图书借阅的历史信息,包括图书编号、借阅人代码、姓名、借阅时间等信息。如果想查询“DB”一书所有借阅人的姓名及借阅时间,用SQL语言可以表达为:
SELECT BR.name,time
FROM BR,BOOK
WHERE BR.bookno=BOOK.bookno
AND BOOK.bname=‘DB’;
该SQL语句的查询语法树可以用图1表示。它包括两类结点: 第一类结点表示词法成分,包括关键字(SELECT、FROM、WHERE等)、关系名、属性名、常数、操作符等,方法是直接表示。第二类结点表示语法类,即查询子成分,包括〈Query〉、〈Condition〉、〈Attribute〉、〈Sel_list〉、〈Rel_list〉、〈Rel_name〉等,表示方法是用尖括号括起来。


图1 SQL查询语法树示例


数据库管理系统依据SQL语句来生成相应的查询语法树。同一个查询请求可有多种不同的SQL语句表达方式,每一种表达方式所对应的SQL语法树也会不同。例如查询请求也可以用嵌套子查询表示,它所对应的语法树与图1不同,它是将子查询的语法树嵌套在父查询的〈condition〉下面。为SQL语句生成查询语法树是关系数据库查询处理的第一步。经过后面的查询优化等处理后,这些不同的语法树形式有可能会优化成相同的查询执行计划。

74
73
25
news

版权所有© 亿企邦 1997-2022 保留一切法律许可权利。

为了最佳展示效果,本站不支持IE9及以下版本的浏览器,建议您使用谷歌Chrome浏览器。 点击下载Chrome浏览器
关闭