powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / IBM DB2, WebSphere, IMS, U2 [игнор отключен] [закрыт для гостей] / Терминология
11 сообщений из 11, страница 1 из 1
Терминология
    #34189966
Фотография Щукина Анна
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Уважаемые дамы и господа!
Помогите с подбором правильной терминологии.
Как правильно называется конструкция WITH вида:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
WITH 
  test as (...)
    (
      ...
    )
select * 
  from test
В Oracle такое называется SubQuery Factoring, в MS SQL Server 2005 - Common Table Expression. А как оно называется у вас?
...
Рейтинг: 0 / 0
Терминология
    #34190151
Victor Metelitsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
http://publib.boulder.ibm.com/infocenter/db2luw/v8/topic/com.ibm.db2.udb.doc/admin/r0000879.htm

"У нас" это называется select statement.
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
Select-statement

Read syntax diagramSkip visual syntax diagram>>-+-----------------------------------+--fullselect--*--------->
   |       .-,-----------------------. |
   |       V                         | |
   '-WITH----common-table-expression-+-'

>--+------------------+--*--+---------------------+--*---------->
   +-read-only-clause-+     '-optimize-for-clause-'
   '-update-clause----'

>--+------------------+--*-------------------------------------><
   '- isolation-clause-'

В то время как
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
common-table-expression

Read syntax diagramSkip visual syntax diagram>>-table-name--+----------------------------+------------------->
               |    .-,-----------.         |
               |    V             |    ( 1 )  |
               '-4 (----4 column-name-+--4 )------'

>--AS--(--fullselect--)----------------------------------------><

Перечитайте доки по MS - возможно, common table expression там всё-таки определён, как в DB2 (ведь оттуда и взято)? И SubQuery Factoring - больше похоже на название процесса (что-то вроде "Разложение Запроса На Составляющие Части"), чем на название конструкции.
...
Рейтинг: 0 / 0
Терминология
    #34190159
Victor Metelitsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
Select-statement

>>-+-----------------------------------+--fullselect--*--------->
   |       .-,-----------------------. |
   |       V                         | |
   '-WITH----common-table-expression-+-'

>--+------------------+--*--+---------------------+--*---------->
   +-read-only-clause-+     '-optimize-for-clause-'
   '-update-clause----'

>--+------------------+--*-------------------------------------><
   '- isolation-clause-'

В то время как
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
common-table-expression

>>-table-name--+----------------------------+------------------->
               |    .-,-----------.         |
               |    V             |    ( 1 )  |
               '- (---- column-name-+-- )------'

>--AS--(--fullselect--)----------------------------------------><
так получше...
...
Рейтинг: 0 / 0
Терминология
    #34191968
Бабичев Сергей
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 Victor Metelitsa:

Что касается MS SQL, то там всегда был странный подход к терминологии.
Как правило, термины, устоявшиеся в других системах, в наглую "передираются", но возлагается на них "немного" другая смысловая нагрузка.
Вот ссылка на MS SQL: тынц
...
Рейтинг: 0 / 0
Терминология
    #34191970
Бабичев Сергей
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Victor MetelitsaИ SubQuery Factoring - больше похоже на название процесса (что-то вроде "Разложение Запроса На Составляющие Части"), чем на название конструкции.Не-а, это именно название конструкции. Вот тут можно посмотреть: тынц (требуется регистрация, регистрация бесплатная)
На всякий случай ещё и процитирую:
Oracle9i SQL Reference
Release 2 (9.2)
Part Number A96540-02 subquery_factoring_clause
The subquery_factoring_clause (WITH query_name) lets you assign names to subquery blocks. You can then reference the subquery block multiple places in the query by specifying the query name. Oracle optimizes the query by treating the query name as either an inline view or as a temporary table.

You can specify this clause in any top-level SELECT statement and in most types of subqueries. The query name is visible to all subsequent subqueries (except the subquery that defines the query name itself) and to the main query.
...
Рейтинг: 0 / 0
Терминология
    #34192444
Victor Metelitsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Бабичев Сергей2 Victor Metelitsa:

Что касается MS SQL, то там всегда был странный подход к терминологии.
Как правило, термины, устоявшиеся в других системах, в наглую "передираются", но возлагается на них "немного" другая смысловая нагрузка.
Вот ссылка на MS SQL: тынц

Спасибо за ссылку. По ней я вижу, что test в
Код: plaintext
1.
2.
3.
test as (...)
    (
      ...
    )
называется CTE и в DB2, и в MSSQL.

Ого, так они и рекурсию a la DB2 сделали...
...
Рейтинг: 0 / 0
Терминология
    #34192651
Бабичев Сергей
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Victor MetelitsaОго, так они и рекурсию a la DB2 сделали...Видимо, это у них ещё с тех времен повелось, когда Билли "спёр" идею курсорного манипулятора (aka "мышь") у фирмы Xerox и оконного интерфейса у APPLE Computers ;)
...
Рейтинг: 0 / 0
Терминология
    #34193491
Victor Metelitsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Оконный интерфейс тоже родом из Xerox, и даже Ethernet оттуда. И термин "Объектно-ориентированное программирование". Много ли Xerox'у было пользы?

Заимствование WITH и рекурсии я ставлю Микрософту в плюс. И я был бы рад, если бы DB2 позаимствовала кое-какие фичи кое у кого, как она уже сделала с некоторыми другими фичами...
...
Рейтинг: 0 / 0
Терминология
    #34195137
Бабичев Сергей
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Victor MetelitsaЗаимствование WITH и рекурсии я ставлю Микрософту в плюс. В принципе согласен. Ибо изобрести что-то новое в наши дни - довольно сложная задача. А вот позаимствовать что-то уже изобретенное, вместо придумывания собственных кривых велосипедов, во имя расшириния функционала собственной системы - это и в самом деле большой плюс.

Victor MetelitsaИ я был бы рад, если бы DB2 позаимствовала кое-какие фичи кое у кого, как она уже сделала с некоторыми другими фичами...Ой, если не секрет, то об чем речь? Интересует как уже позаимствованные фичи, так и те, которые хотелось бы поиметь. (Просто я в DB2 полный ноль, но хотелось бы расширить свой кругозор).
...
Рейтинг: 0 / 0
Терминология
    #34196849
Victor Metelitsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Например:
* во второй версии DB2 не было внешних соединений
* sequence появились только в версии 7.2
* хранимые процедуры из триггеров стало можно вызывать только в 8.2.
* аналогов переменных пакетов Oracle нет до сих пор (на самом деле они нужны только для портирования, но тем не менее...), как и индексов по выражениям.

Зато хорошо было бы убрать нафиг XML и забыть о нём как о страшном сне.
...
Рейтинг: 0 / 0
Терминология
    #34198502
Бабичев Сергей
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Victor MetelitsaНапример:
* во второй версии DB2 не было внешних соединений
* sequence появились только в версии 7.2
* хранимые процедуры из триггеров стало можно вызывать только в 8.2.
* аналогов переменных пакетов Oracle нет до сих пор (на самом деле они нужны только для портирования, но тем не менее...), как и индексов по выражениям.

Зато хорошо было бы убрать нафиг XML и забыть о нём как о страшном сне.Спасибо, Виктор!
...
Рейтинг: 0 / 0
11 сообщений из 11, страница 1 из 1
Форумы / IBM DB2, WebSphere, IMS, U2 [игнор отключен] [закрыт для гостей] / Терминология
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]