2010-05-21 111 views
2

例如:描述语言语法的这种语言的名称是什么?

<SELECT statement> ::= 
    [WITH <common_table_expression> [,...n]] 
    <query_expression> 
    [ ORDER BY { order_by_expression | column_position [ ASC | DESC ] } 
    [ ,...n ] ] 
    [ COMPUTE 
    { { AVG | COUNT | MAX | MIN | SUM } (expression) } [ ,...n ] 
    [ BY expression [ ,...n ] ] 
    ] 
    [ <FOR Clause>] 
    [ OPTION (<query_hint> [ ,...n ]) ] 
<query_expression> ::= 
    { <query_specification> | (<query_expression>) } 
    [ { UNION [ ALL ] | EXCEPT | INTERSECT } 
     <query_specification> | (<query_expression>) [...n ] ] 
<query_specification> ::= 
SELECT [ ALL | DISTINCT ] 
    [TOP expression [PERCENT] [ WITH TIES ] ] 
    <select_list> 
    [ INTO new_table ] 
    [ FROM { <table_source> } [ ,...n ] ] 
    [ WHERE <search_condition> ] 
    [ <GROUP BY> ] 
    [ HAVING <search_condition> ] 

什么语言叫什么名字?

回答

1

这不是一种语言,而是BNF(Backus-Naur Form)语法的正式描述(在本例中为SQL选择语句)。

+0

实际上,BNF是通过上下文无关文法定义的,反过来又是一种语言本身。 – pmr 2010-05-21 09:20:47

+0

@pmr - 但是你可以用它编程;) – Oded 2010-05-21 09:22:22

0

这看起来有点像一部分SQL的BNF定义。