+

Search Tips   |   Advanced Search

EJB query: BNF syntax


The Backus-Naur Form (BNF) is one of the most commonly used notations for specifying the syntax of programming languages or command sets. This article lists the syntax for EJBs query language.

EJB QL ::= [select_clause] from_clause [where_clause] [order_by_clause]

DYNAMIC EJB QL := query_expression [order_by_clause] query_expression := query_term [UNION [ALL] query_term]* query_term := {select_clause_dynamic from_clause [where_clause] [group_by_clause] [having_clause] } | (query_expression) } [order_by_clause] from_clause::=FROM identification_variable_declaration [, {identification_variable_declaration | collection_member_declaration } ]* identification_variable_declaration::=collection_member_declaration | range_variable_declaration [join]* join := [ { LEFT [OUTER] | INNER }] JOIN {collection_valued_path_expression | single_valued_path_expression} [AS] identifier collection_member_declaration::= IN ( collection_valued_path_expression ) [AS] identifier range_variable_declaration::=abstract_schema_name [AS] identifier single_valued_path_expression ::= {single_valued_navigation | identification_variable}. ( cmp_field | method | cmp_field.value_object_attribute | cmp_field.value_object_method ) | single_valued_navigation single_valued_navigation::= identification_variable.[ single_valued_cmr_field. ]* single_valued_cmr_field collection_valued_path_expression ::= identification_variable.[ single_valued_cmr_field. ]* collection_valued_cmr_field select_clause::= SELECT { ALL | DISTINCT } {single_valued_path_expression | identification_variable | OBJECT ( identification_variable) | aggregate_functions } select_clause_dynamic ::= SELECT { ALL | DISTINCT } [ selection , ]* selection selection ::= { expression | subselect } [[AS] id ] order_by_clause::= ORDER BY [ {single_valued_path_expression | integer} [ASC|DESC],]* {single_valued_path_expression | integer}[ASC|DESC] where_clause::= WHERE conditional_expression conditional_expression ::= conditional_term | conditional_expression OR conditional_term conditional_term ::= conditional_factor | conditional_term AND conditional_factor conditional_factor ::= [NOT] conditional_primary conditional_primary::=simple_cond_expression | (conditional_expression) simple_cond_expression ::= comparison_expression | between_expression | like_expression | in_expression | null_comparison_expression | empty_collection_comparison_expression | quantified_expression | exists_expression | is_of_type_expression | collection_member_expression between_expression ::= expression [NOT] BETWEEN expression AND expression in_expression ::= single_valued_path_expression [NOT] IN { (subselect) | ( [ atom ,]* atom ) } atom = { string-literal | numeric-constant | input-parameter } like_expression ::= expression [NOT] LIKE {string_literal | input_parameter} [ESCAPE {string_literal | input_parameter}] null_comparison_expression ::= single_valued_path_expression IS [ NOT ] NULL empty_collection_comparison_expression ::= collection_valued_path_expression IS [NOT] EMPTY collection_member_expression ::= { single_valued_path_expression | input_paramter } [ NOT ] MEMBER [ OF ] collection_valued_path_expression quantified_expression ::= expression comparison_operator {SOME | ANY | ALL} (subselect) exists_expression ::= EXISTS {collection_valued_path_expression | (subselect)} subselect ::= SELECT [{ ALL | DISTINCT }] expression from_clause [where_clause] [group_by_clause] [having_clause] group_by_clause::= GROUP BY [single_valued_path_expression,]* single_valued_path_expression having_clause ::= HAVING conditional_expression is_of_type_expression ::= identifier IS OF TYPE ([[ONLY] abstract_schema_name,]* [ONLY] abstract_schema_name) comparison_expression ::= expression comparison_operator { expression | ( subquery ) } comparison_operator ::= = | > | >= | < | <= | <> method ::= method_name( [[expression , ]* expression ] ) expression ::= term | expression {+|-} term term ::= factor | term {*|/} factor factor ::= {+|-} primary primary ::= single_valued_path_expression | literal | ( expression ) | input_parameter | functions | aggregate_functions aggregate_functions := AVG([ALL|DISTINCT] expression) | COUNT({[ALL|DISTINCT] expression | * | identification_variable }) | MAX([ALL|DISTINCT] expression) | MIN([ALL|DISTINCT] expression) | SUM([ALL|DISTINCT] expression) | functions ::= ABS(expression) | BIGINT(expression) | CHAR({expression [,{ISO|USA|EUR|JIS}] ) | CONCAT (expression , expression ) | DATE(expression) | DAY({expression ) | DAYS( expression) | DECIMAL( expression [,integer[,integer]]) DIGITS( expression) | DOUBLE( expression ) | FLOAT( expression) | HOUR ( expression ) | INTEGER( expression ) | LCASE ( expression) | LENGTH(expression) | LOCATE( expression, expression [, expression] ) | MICROSECOND( expression ) | MINUTE ( expression ) | MOD ( expression , expression ) | MONTH( expression ) | REAL( expression) | SECOND( expression ) | SMALLINT( expression ) | SQRT ( expression) | SUBSTRING( expression, expression[, expression]) | TIME( expression ) | TIMESTAMP( expression ) | UCASE ( expression) | YEAR( expression ) xrel := XREL identification_variable . { single_valued_cmr_field | collection_valued_cmr_field } [ , identification_variable . { single_valued_cmr_field | collection_valued_cmr_field } ]*





Related concepts


EJB query language

 

Related tasks


Use EJB query