Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Сравнение СУБД Новый топик    Ответить
Топик располагается на нескольких страницах: [1] 2   вперед  Ctrl      все
 разные реализации sql  [new]
ci3ix
Member

Откуда:
Сообщений: 1
Всем доброго времени суток!
Работаю в MS Access, на любительском уровне.
Как-то возникла сложная для задача, обратился к админу. При написании запроса на SQL сильно ругался, что майкрософтовский диалект заметно отличается от общепринятых, по его мнению.
Не подскажете, в чем и где именно различия? Буду благодарен за ссылки на статьи, хочется немного просветиться на этот счет, кроме того, есть еще дополнительные причины выяснить различия между реализациями SQL например в Access и mySQL или Oracle.
В справке по аксессу ничего нет, перерыл все. В сети - тону, море информации, но ничего такого.
Помогите, кто знает, плиз.
18 ноя 04, 23:43    [1118772]     Ответить | Цитировать Сообщить модератору
 Re: разные реализации sql  [new]
vadiminfo
Member

Откуда: Обнинск
Сообщений: 4802
Фактически у каждой СУБД свой диалект SQL, который они так или иначе приводят в соответсвие тем или иным стандартами, например, SQL2. Язык SQL некоторые СУБД, например, Оракл начали использовать еще до появления первых стандартов. Комитеты или группы по стандартизаци тоже так или иначе учитывают наработки ведущих СУБД, но иногда поступают жестко, как например с JOIN. Однако, в угоду пользователей производители СУБД продлжают добавлять и свое что-то.
SQL Access естественно менее выразителен (это ведь файлсерверная СУБД, расчитанная на работу на клиентских компах), чем ORACLE и, наверняка, чем MS SQL (тоже микрософт) - оба серверные. Более того, в Access есть ограничения на сложность запроса, хотя и допустимого по синтаксису. Он просто может сказать, что запрос слишком сложен и все.
Если хотите сравнить с ORACLE, то откройте справки ORACLE и Access и сравнивайте. Но берите ORACLE как минимум 9 версии, в 8 JOIN нет еще.
19 ноя 04, 01:11    [1118866]     Ответить | Цитировать Сообщить модератору
 Re: разные реализации sql  [new]
ChA
Member

Откуда: Москва
Сообщений: 11377
ci3ix
майкрософтовский диалект заметно отличается от общепринятых
Интересное мнение, на самом деле, как раз версии от MS по синтаксису наиболее близки к стандарту SQL-92, и практически гарантировано к SQL-89. Или что-то другое подразумевается под общепринятыми ?
19 ноя 04, 06:12    [1118932]     Ответить | Цитировать Сообщить модератору
 Re: разные реализации sql  [new]
Gluk (Kazan)
Member

Откуда:
Сообщений: 9365
В стандарте что-нибудь говориться про квадратные скобки ?
19 ноя 04, 08:03    [1119020]     Ответить | Цитировать Сообщить модератору
 Re: разные реализации sql  [new]
www.fun4me.narod.ru
Member

Откуда: Moscow
Сообщений: 2406
>>В стандарте что-нибудь говориться про квадратные скобки ?

А они необязательны.
19 ноя 04, 08:15    [1119034]     Ответить | Цитировать Сообщить модератору
 Re: разные реализации sql  [new]
ЗоринАндрей
Member

Откуда: Санкт-Петербург
Сообщений: 3004
Standard SQL
Оракл в плане соответствия стандартам выглядит много лучше MS.
В статье упомянуты только три "больших" вендора.
От себя добавлю что Sybase SQL Anywhere is compliant with SQL-99 core specifications. т.е. соответствует стандарту лучше чем кто либо из большой тройки.

автор
версии от MS по синтаксису наиболее близки к стандарту SQL-92

бред.
наиболее близки по сравнению с кем?
то что поддерживается MSSQL называется entry level SQL92 на самом деле SQL89 и есть. покажите мне DBMS которая НЕ поддерживает SQL89? там и поддерживать то нечего толком. :))

А вообще, грубо говоря, никакого "общепринятого SQL" не существует. И для большинства вендоров соответствие стандарту это последнее о чем они подумают планируя развитие продукта.
19 ноя 04, 08:20    [1119039]     Ответить | Цитировать Сообщить модератору
 Re: разные реализации sql  [new]
www.fun4me.narod.ru
Member

Откуда: Moscow
Сообщений: 2406
2 Зорин:

Oracle 8.1.7.0 не поддерживает join
Oracle 9i не поддерживает full outer join

Oracle не поддерживает это :-
Special syntax (N'string') is provided for representing
literals in that character repertoire.

Уровни изоляции транзакций в Oracle разве совпадают с Ansi 92?
19 ноя 04, 08:25    [1119044]     Ответить | Цитировать Сообщить модератору
 Re: разные реализации sql  [new]
Gluk (Kazan)
Member

Откуда:
Сообщений: 9365
Учите матчасть Oracle 9i ПОДДЕРЖИВАЕТ full outer join.
То что ANSI Join-ы в Oracle фигово работают - это немножко другая тема.
19 ноя 04, 08:46    [1119076]     Ответить | Цитировать Сообщить модератору
 Re: разные реализации sql  [new]
www.fun4me.narod.ru
Member

Откуда: Moscow
Сообщений: 2406
И как можно сравнивать по SQL99, если ещё нет соответвствия SQL92 ?!
Грубо говоря, основные возможности мы не поддерживаем, ну так новых фич добавим.

Стандар SQL желательно разделить на три части -
1. DDL и создание процедур
2. DML и вызов процедур
3. INFORMATION_SCHEMA

Так вот, для клиентского приложение наиболее важно соответствие ВТОРОЙ части стандарта, так как остальное ему по фиг - как тому админу, которому пришлось писать сложный запрос. Ведь админ этот не создавал базу (её вообще отресторить можно при желании) и не лез в INFORMATION_SCHEMA.

Вторая часть стандарта наиболее важна, всё остальное - детали реализации и их вообще нет смысла стандартизировать.
19 ноя 04, 08:49    [1119079]     Ответить | Цитировать Сообщить модератору
 Re: разные реализации sql  [new]
www.fun4me.narod.ru
Member

Откуда: Moscow
Сообщений: 2406
>> Учите матчасть Oracle 9i ПОДДЕРЖИВАЕТ full outer join.

Только не работает full outer join . Тема вчера такая на оракловом форуме появилась.
19 ноя 04, 08:50    [1119083]     Ответить | Цитировать Сообщить модератору
 Re: разные реализации sql  [new]
Gluk (Kazan)
Member

Откуда:
Сообщений: 9365
www.fun4me.narod.ru
2 Зорин:

Oracle не поддерживает это :-
Special syntax (N'string') is provided for representing
literals in that character repertoire.

Уровни изоляции транзакций в Oracle разве совпадают с Ansi 92?


SQL> select N'ffff' from dual;

N'FF
----
ffff

SQL> 

Странно, у меня поддерживает на 8.1.7.4 Вы бы хоть потрудились проверять свои высказывания.

По поводу соответствия уровням изоляции транзакций рекомендую почитать Кайта
19 ноя 04, 08:50    [1119085]     Ответить | Цитировать Сообщить модератору
 Re: разные реализации sql  [new]
Gluk (Kazan)
Member

Откуда:
Сообщений: 9365
www.fun4me.narod.ru
>> Учите матчасть Oracle 9i ПОДДЕРЖИВАЕТ full outer join.

Только не работает full outer join . Тема вчера такая на оракловом форуме появилась.


Еще раз по буквам: Oracle ПОДДЕРЖИВАЕТ full outer join. То что он не работает - вопрос реализации, а не соответствия стандартам. В Oracle есть гораздо более удобная форма выражения outer join, правда не имеющая ничего общего с этим угребищным стандартом.
19 ноя 04, 08:53    [1119089]     Ответить | Цитировать Сообщить модератору
 Re: разные реализации sql  [new]
www.fun4me.narod.ru
Member

Откуда: Moscow
Сообщений: 2406
>> То что он не работает - вопрос реализации

Ну ладно, Oracle поддерживает, но реализация не соответствует стандарту. Согласитесь ведь, что оракловый full outer join - это далеко не full outer join из ANSI SQL'92.

И вообще, какой смысл N'.....' возвращать в типе CHAR(...). Чем тогда CHRACTER отличается от NATIONAL CHARACTER.

Согласен, Oracle всё поддерживает, но так, как будто он студент, за неделю диплом написавший.
19 ноя 04, 09:02    [1119102]     Ответить | Цитировать Сообщить модератору
 Re: разные реализации sql  [new]
ЗоринАндрей
Member

Откуда: Санкт-Петербург
Сообщений: 3004
www.fun4me.narod.ru
Так вот, для клиентского приложение наиболее важно соответствие ВТОРОЙ части стандарта,


к какой части следует отнести
1. отсутствие раздельных типов данных для DATE и TIME
2. отсутствия ON [DELETE|UPDATE] SET NULL, ON [DELETE|UPDATE] SET DEFAULT
3. отсутствия триггеров и BEFORE и FOR EACH ROW

насколько НЕ важны для клиентского приложения эти пункты?

www.fun4me.narod.ru
Грубо говоря, основные возможности мы не поддерживаем, ну так новых фич добавим.

Именно так все и делают.

обычно все же последующие стандарты включают в себя предыдущие.
какая нах разница что "частично" поддерживать.
тем более что изрядное количество фич появляется в стандарте де-факто под давлением вендора.
19 ноя 04, 09:08    [1119119]     Ответить | Цитировать Сообщить модератору
 Re: разные реализации sql  [new]
www.fun4me.narod.ru
Member

Откуда: Moscow
Сообщений: 2406
>>к какой части следует отнести
>>1. отсутствие раздельных типов данных для DATE и TIME
>>2. отсутствия ON [DELETE|UPDATE] SET NULL, ON [DELETE|UPDATE] SET DEFAULT
>>3. отсутствия триггеров и BEFORE и FOR EACH ROW

Типы данных надо всё же ко второй части отнести, а всё остальное - это проблемы специалиста по конкретной СУБД. Здесь стандарты не столь важны. Я так понимаю, что не могут все СУБД быть одинаковыми. Я вижу смысл только в стандартизации взаимодействия между БД и клиентской программой. А триггеры могут быть в каждой СУБД свои - почему бы и нет?
19 ноя 04, 09:17    [1119138]     Ответить | Цитировать Сообщить модератору
 Re: разные реализации sql  [new]
ЗоринАндрей
Member

Откуда: Санкт-Петербург
Сообщений: 3004
Есть такое слово portability.
Вот с Sybase на Microsoft еще реально всю систему перевести, ибо языки похожи.
А с Microsoft на Oracle проще убить чем вылечить
19 ноя 04, 09:42    [1119202]     Ответить | Цитировать Сообщить модератору
 Re: разные реализации sql  [new]
www.fun4me.narod.ru
Member

Откуда: Moscow
Сообщений: 2406
> А с Microsoft на Oracle проще убить чем вылечить

Ничего не поделаешь... На Oracle придётся свою систему писать. А что тут сделаешь?
Разве что хранимые процедуры в байт-коде? Чтоб на TCL писать можно было. С плюгинами к PostgreSQL, Oracle и MSSQL как extended xp? Ну так ведь нет таких....
19 ноя 04, 09:56    [1119250]     Ответить | Цитировать Сообщить модератору
 Re: разные реализации sql  [new]
Gluk (Kazan)
Member

Откуда:
Сообщений: 9365
Кто нибудь подскажет мне необразованному, что есть ANSI стандарт на ХП ?
19 ноя 04, 10:19    [1119345]     Ответить | Цитировать Сообщить модератору
 Re: разные реализации sql  [new]
www.fun4me.narod.ru
Member

Откуда: Moscow
Сообщений: 2406
SQL92:-

4.17 Procedures

A <procedure> consists of a <procedure name>, a sequence of <pa-
rameter declaration>s, and a single <SQL procedure statement>.


A <procedure> in a <module> is invoked by a compilation unit as-
sociated with the <module> by means of a host language "call"
statement that specifies the <procedure name> of the <procedure>
and supplies a sequence of parameter values corresponding in number
and in <data type> to the <parameter declaration>s of the <proce-
dure>. A call of a <procedure> causes the <SQL procedure statement>
that it contains to be executed.
19 ноя 04, 10:24    [1119373]     Ответить | Цитировать Сообщить модератору
 Re: разные реализации sql  [new]
Gluk (Kazan)
Member

Откуда:
Сообщений: 9365
И кто у нас соответствует этому стандарту ?
;)
19 ноя 04, 10:28    [1119398]     Ответить | Цитировать Сообщить модератору
 Re: разные реализации sql  [new]
Рыжий Кот
Member

Откуда: Мягкий Диван; [забанен] Рустамом; [разбанен] П02;
Сообщений: 21678
Как то пришлось подправлять руками запрос (лычную непрыязнь испитываю к визардам) в Акцеце с использованием вложенных запросов. Приличное время выполнения так и не получилось, а вот после этого потыкая в визарде нехт, нехт, нехт, Акцец нарисовал что-то страшное, но к моему удивлению достаточно шустрое.

Картинка с другого сайта.
19 ноя 04, 10:37    [1119448]     Ответить | Цитировать Сообщить модератору
 Re: разные реализации sql  [new]
gardenman
Member

Откуда: С-Петербург
Сообщений: 2347
если кому интересно, вот COOK BOOK по SQL (поваренная книга) )
. Занимательное я вам скажу чтиво))...
19 ноя 04, 10:56    [1119538]     Ответить | Цитировать Сообщить модератору
 Re: разные реализации sql  [new]
osse_
Guest
gardenman
если кому интересно, вот COOK BOOK по SQL (поваренная книга) )
. Занимательное я вам скажу чтиво))...


Если не затруднит:
Эта книга про SQL в DB2 или про "просто SQL"?

thnks.
19 ноя 04, 12:04    [1119907]     Ответить | Цитировать Сообщить модератору
 Re: разные реализации sql  [new]
gardenman
Member

Откуда: С-Петербург
Сообщений: 2347
SQL в DB2. Можно просто посравнивать...
19 ноя 04, 12:30    [1120061]     Ответить | Цитировать Сообщить модератору
 Re: разные реализации sql  [new]
?
Guest
А в оракле наконец избавились от равенства пустой строки '' и NULL ?
19 ноя 04, 18:24    [1122028]     Ответить | Цитировать Сообщить модератору
Топик располагается на нескольких страницах: [1] 2   вперед  Ctrl      все
Все форумы / Сравнение СУБД Ответить