Мне было интересно узнать о различиях между диалектами SQL. Я смотрел here и here, но либо я не мог понять ответы, либо их было недостаточно. Я относительно новичок в SQL, и поэтому я не могу найти приемлемый ответ.Полный список различий между различными версиями SQL (MySQL, SQL Server и т. Д.)
ответ
На уровне coder вы обычно хотите знать об ANSI sql и отслеживать, как базы данных отличаются от этого.
Регулярные команды выбора/вставки/удаления/обновления довольно переносимы. В целом, вещи, которые будут отличаться, являются непрофильными синтаксическими аспектами, такими как:
- Функции. любые getXXX(), rtrim (xxx) чаще всего не относятся к конкретным производителям. В любом случае, функции, как правило, также испортили использование индекса, поэтому лучше всего использовать экономно.
- обновление/из, удаление/из. Я считаю, что это зависит от поставщика.
- даты. на удивление не переносимы, причем каждый и его собака имеют другой способ указать маски даты, например.
- процедурные/триггерные расширения. Любой процедурный язык, вероятно, будет иметь много возможностей для специфики поставщика.
кейс чувствительность. некоторые базы данных - это все UPPERCASE, некоторые из них строчные, некоторые нечувствительны.
любой «лишний материал» в запросе, который не является столбцом. Такие вещи, как LIMIT, rownum, rowid, обычно специфичны для поставщиков.
старый синтаксис внешнего соединения, как 'e.department_id = d.department_id (+)'
"сложных запросов". Предположим, вы хотите сбросить строки заказа для заказов, которые были полностью заполнены.
удалить из order_lines, где не существует (выберите 1 из order_lines s где s.order_no = order_lines.order_no и s.status <> 'fullfilled')
DB2, в прошлом, по крайней мере, будет скорее всего, жаловались на «коррелированный подзапрос», который в основном сводится к ссылке на таблицу, которую вы в процессе изменения, order_lines в этом случае.
В принципе, вы должны быть в порядке, если придерживаетесь старого ANSI SQL. Я много лет работал над PeopleSoft, и мы глубоко укоренились в написании мульти-db sql (DB2/Oracle/MSSQL и т. Д.), Не прибегая к написанию кода конкретного поставщика (т. Е. 1 запрос для Oracle, 1 для MSSQL ...). Это может быть сделано, просто требуется подозрительное мышление обо всем, что похоже на ярлыки , связанные с продавцами, независимо от того, насколько они привлекательны.
Для получения конкретных запросов отправьте сообщение на номер sqlfiddle.com, и вы можете проверить несколько случаев. И, к сожалению, я не знаю ни одной книги, целью которой является научить фактического, а не предлагаемого ANSI SQL. И, еще более, к сожалению, достойные @ стандарты ANSI SQL не видели подходящего, чтобы сделать их стандарт свободно доступным.
На уровне admin уровень, такой как все DDL для создания таблицы/индекса/..., есть еще больше различий, которые нужно знать, начиная с типов данных.
- 1. Полный список различий между версиями DirectX, шейдерами: функции, несовместимость, требования и т. Д.
- 2. SQL Server: список различий между таблицами
- 3. Есть ли окончательный список различий между версиями Ruby on Rails?
- 4. Разница между (Mysql, Sql server, Oracle и т. Д.) И Hadoop Big Data Analytics?
- 5. MySQL против SQL-различий
- 6. Существует ли окончательный список различий между текущей версией SQL Azure и SQL Server 2008?
- 7. Зеркалирование базы данных между различными версиями экземпляров сервера sql
- 8. Справочник по курсору SQL Server (синтаксис и т. Д.)
- 9. Доступ к объекту CoreData между версиями приложений и т. Д.
- 10. Автоматизация обнаружения различий схемы между TFS и SQL Server
- 11. Как перенести данные между различными SQL Server?
- 12. Динамически создаваемые проблемы безопасности SQL (sql injection и т. Д.)
- 13. Импорт между различными версиями python
- 14. MySQL sql data text Языки (японский, греческий и т. Д.)
- 15. WinRm между различными версиями
- 16. Переключение между различными версиями GCC
- 17. Односторонняя синхронизация между MySQL и SQL Server
- 18. Односторонняя синхронизация между SQL Server и MySQL
- 19. В чем разница между SQL Server Compact и SQL Server и стандартом SQL Server.?
- 20. ASP.NET C#, SQL рендеринг изображений, sql-запрос и т. Д.
- 21. Разница между различными типами SQL?
- 22. Переносимость приложений SQL Server между 32- и 64-разрядными версиями SQL Server?
- 23. Синтаксис между версиями mySQL
- 24. Значения различий SQL Server между двумя строками в каждом месяце
- 25. SQL Server: отображение различий в столбцах между двумя строками
- 26. SQL Server и MySQL Syncing
- 27. SQL Server Managment Studio 2012 с другими версиями SQL Server
- 28. Проблема кодирования символов между различными версиями PHP, Apache и MySQL
- 29. Разница между SQL Server 2005 и 2008
- 30. Получение различий между таблицами MySQL
Если вы новичок в SQL, различия, вероятно, не актуальны. Вы можете учиться в любой базе данных, а затем начинать понимать различия по мере того, как становитесь более опытными. –