Формальный синтаксис MySQL (DML)

kruzer25

Кто-нибудь знает, где найти можно?
Интеерсует что-то типа:
column_name = word | `word`
table_name = word | `word`
field_full_name = table_name.column_name | ?
...
processed_field_full_name = field_full_name | function_name(field_full_name) | ...
...
select_columns = processed_field_full_name | select_columns, field_full_name
...
select_statement = SELECT select_columns FROM tables_list WHERE where_conditions GROUP BY group_conditions HAVING having_conditions ORDER BY order_conditions LIMIT limit_condition
...

kruzer25

^^...

kruzer25

Не катит.
Потому что:

SELECT
[ALL | DISTINCT | DISTINCTROW ]
[HIGH_PRIORITY]
[STRAIGHT_JOIN]
[SQL_SMALL_RESULT] [SQL_BIG_RESULT] [SQL_BUFFER_RESULT]
[SQL_CACHE | SQL_NO_CACHE] [SQL_CALC_FOUND_ROWS]
select_expr, ...
[FROM table_references
[WHERE where_condition]
[GROUP BY {col_name | expr | position}
[ASC | DESC], ... [WITH ROLLUP]]
[HAVING where_condition]
[ORDER BY {col_name | expr | position}
[ASC | DESC], ...]
[LIMIT {[offset,] row_count | row_count OFFSET offset}]
[PROCEDURE procedure_name(argument_list)]
[INTO OUTFILE 'file_name' export_options
| INTO DUMPFILE 'file_name'
| INTO var_name [, var_name]]
[FOR UPDATE | LOCK IN SHARE MODE]]
Это написано для людей, которые пишут запросы руками. И тут нету определения того, что такое select_expr, table_references, where_condition итп.
Мне нужен не reference, мне нужно формальное определение, как можно более полное.
ЗЫ: На самом деле, то, что есть разные варианты записи имён столбцов - `colname` и colname и прочие подобные неоднозначности меня не волнует - это нужно не для того, чтобы парсить готовые запросы, а для того, чтобы, наоборот, эти запросы конструировать. Достаточно, если под формальное определение будет подпадать хотя бы один вариант каждого запроса.

katrin2201

Там просто в одном месте собранного нету.
А описания всех этих элементов там есть.

kruzer25

А где?
Я вот не нашёл...

katrin2201

гуглом, я думаю, все найдется, если site указать
select_expr есть ниже по тексту, правда в виде примеров, но с ним вобщем то и так все понятно
про table_references в подразделе с join'ами моно прочитать ну итд.
вобщем, если сильно хотеть, можно все найти =)

kruzer25

select_expr есть ниже по тексту, правда в виде примеров, но с ним вобщем то и так все понятно
Мне-то и так всё понятно, и про select_expr, и про tasble_references, и про where_conditions...
Но надо, чтобы где-то было формальнрое определение, списком, чтобы сразу можно было написать это.

vall

посмотри в сырцах, у них вроде парсер на бизоне
Оставить комментарий
Имя или ник:
Комментарий: