|
|
|
Стиль SQL для разных серверов
|
|||
|---|---|---|---|
|
#18+
Разные сервера БД, разные стили работы с инструкциями SQL. Например Oracle внутреннее объединение по равенству: Код: sql 1. 2. 3. 4. Для MS SQL Server так пишут редко, чаще всего Код: sql 1. 2. 3. Для Oracle в таком ANSI стиле то же пишут, но чаще всего так: Код: sql 1. 2. 3. (допускается опускание зарезервированного слова INNER) А про внешнее объединение я вообще молчу, редко где в Oracle увидешь такое: Код: sql 1. 2. 3. Чаще всего: Код: sql 1. 2. 3. 4. Почему? Почему не пишут так, что будет работать на всех платформах, ну или стараться по максимому? Синтаксис ANSI поддерживается и Oracle и MS SQL Server, за редким исключением можно писать инструкции, которые без труда будут работать и там и тут, но чаще всего наоборот, или (+) или (*) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.02.2016, 11:07 |
|
||
|
Стиль SQL для разных серверов
|
|||
|---|---|---|---|
|
#18+
ПростоинтересущийсяПочему? Потому что сначала были разные разработчики, каждый из которых считал себя пупом земли. Ну или не был знаком с другими, и не знал, с кем договариваться. Ну а потом уже "так сложилось исторически". ORACLE вон до сих пор не различает NULL и пустую строку - и вроде никто не помер. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.02.2016, 11:56 |
|
||
|
Стиль SQL для разных серверов
|
|||
|---|---|---|---|
|
#18+
ПростоинтересущийсяА про внешнее объединение я вообще молчу, редко где в Oracle увидешь такое: Это наследие прошлого. Раньше Oracle не поддерживал такой синтаксис. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.02.2016, 12:48 |
|
||
|
Стиль SQL для разных серверов
|
|||
|---|---|---|---|
|
#18+
ПростоинтересущийсяР А про внешнее объединение я вообще молчу, редко где в Oracle увидешь такое: Код: sql 1. 2. 3. ну как бы странные ты делаешь выводы, у нас например весь код такой, а Oracle outer joins встречаться очень редко, где-то их 5-10%. Проект с начала на орал 11. а почему не пишут -- все просто, привычка! Но старые ораклоиды потихоньку "вымерают", так что постепенно все придет к единому стандарту. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.02.2016, 14:34 |
|
||
|
Стиль SQL для разных серверов
|
|||
|---|---|---|---|
|
#18+
MasterZivПростоинтересущийсяР А про внешнее объединение я вообще молчу, редко где в Oracle увидешь такое: Код: sql 1. 2. 3. ну как бы странные ты делаешь выводы, у нас например весь код такой, а Oracle outer joins встречаться очень редко, где-то их 5-10%. Проект с начала на орал 11. а почему не пишут -- все просто, привычка! Но старые ораклоиды потихоньку "вымерают", так что постепенно все придет к единому стандарту. Я имел в виду именно форму представление конструкций, не (+), а не частоту их использования. Наследие это понятно, но все же по мне так ANSI синтаксис более очевиден при огромных конструкциях. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.02.2016, 15:35 |
|
||
|
Стиль SQL для разных серверов
|
|||
|---|---|---|---|
|
#18+
ПростоинтересущийсяНаследие это понятно, но все же по мне так ANSI синтаксис более очевиден при огромных конструкциях. А вот не надо забывать, что основные СУБД появились задолго до появления ANSI и даже самого SQL. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.02.2016, 16:25 |
|
||
|
Стиль SQL для разных серверов
|
|||
|---|---|---|---|
|
#18+
Простоинтересущийся но все же по мне так ANSI синтаксис более очевиден при огромных конструкциях. На форуме Oracle этот вопрос периодически обсуждался, можно поискать топики. Если в двух словах: 1. на мой взгляд, понятность конструкции с точностью до наоборот. Видимо понятность - дело привычки :) 2. в ANSI-SQL до сих пор проскакивают глюки, хотя он появился в Oracle 9, это где-то 2002 г. Поэтому, если визуально запрос верен, но работает неверно, то первым делом рекомендуют переписать на родной синтаксис. 3. отличий в синтаксисе SQL у разных СУБД хватает и без этого, поэтому задача беспроблемного переноса с одной СУБД на другой при использовании AMSI-JOIN все равно не решается. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.02.2016, 09:24 |
|
||
|
|

start [/forum/topic.php?fid=16&msg=39175042&tid=1340782]: |
0ms |
get settings: |
6ms |
get forum list: |
14ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
147ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
46ms |
get tp. blocked users: |
1ms |
| others: | 206ms |
| total: | 437ms |

| 0 / 0 |
