11.5 Функции CRUD для таблиц
TableSelectFunction
Table.select() и collection.find() используют разные методы для сортировки результатов. Table.select() следует именованию языка SQL и вызывает метод сортировки orderBy(). Collection.find() этого не делает. Используйте метод sort() для сортировки результатов, возвращаемых Collection.find(). Приоритет здесь отдаётся близости к стандарту SQL, а не единообразию API.
Синтаксис этой функции, представленный в EBNF, выглядит следующим образом:
TableSelectFunction
::= '.select(' ProjectedSearchExprStrList? ')' ( '.where(' SearchConditionStr ')' )?
( '.groupBy(' SearchExprStrList ')' )? ( '.having(' SearchConditionStr ')' )?
( '.orderBy(' SortExprStrList ')' )? ( '.limit(' NumberOfRows ')' ( '.offset(' NumberOfRows ')' )? )?
( '.lockExclusive(' LockContention ')' | '.lockShared(' LockContention ')' )?
( '.bind(' ( PlaceholderValues ) ')' )*
( '.execute()' )?
Рисунок 11.15 TableSelectFunction
TableInsertFunction
Синтаксис этой функции, представленный в EBNF, выглядит следующим образом:
TableInsertFunction
::= '.insert(' ( TableFields )? ')'
( '.values(' ExprOrLiteral (',' ExprOrLiteral)* ')' )+
( '.execute()' )?
Рисунок 11.16 TableInsertFunction
TableUpdateFunction
Синтаксис этой функции, представленный в EBNF, выглядит следующим образом:
TableUpdateFunction
::= '.update()'
( '.set(' TableField ',' ExprOrLiteral ')' )+ '.where(' SearchConditionStr ')'
( '.orderBy(' SortExprStrList ')' )? ( '.limit(' NumberOfRows ')' )?
( '.bind(' ( PlaceholderValues ) ')' )*
( '.execute()' )?
Рисунок 11.17 TableUpdateFunction
TableDeleteFunction
Синтаксис этой функции, представленный в EBNF, выглядит следующим образом:
TableDeleteFunction
::= '.delete()' '.where(' SearchConditionStr ')'
( '.orderBy(' SortExprStrList ')' )? ( '.limit(' NumberOfRows ')' )?
( '.bind(' ( PlaceholderValues ) ')' )*
( '.execute()' )?
Рисунок 11.18 TableDeleteFunction
© 2025 Oracle
Licensed under the GPLv2 License.