Spec-Zone.ru › MySQL 9.2

1.7 Соответствие стандартам MySQL

  • 1.7.1 Расширения MySQL для стандартного SQL
  • 1.7.2 Отличия MySQL от стандартного SQL
  • 1.7.3 Обработка ограничений в MySQL

В этом разделе описывается соответствие MySQL стандартам ANSI/ISO SQL. Сервер MySQL имеет множество расширений стандартного SQL, и здесь вы можете узнать, что это за расширения и как их использовать. Также здесь вы найдете информацию о функциях, отсутствующих в MySQL Server, и о том, как обойти некоторые различия.

Стандарт SQL развивался с 1986 года, и существуют различные версии. В этом руководстве “SQL-92” относится к стандарту, выпущенному в 1992 году. “SQL:1999”, “SQL:2003”, “SQL:2008” и “SQL:2011” относятся к версиям стандарта, выпущенным в соответствующие годы, последняя из которых является наиболее новой. Мы используем выражение «“стандарт SQL”» для обозначения текущей версии стандарта SQL в любое время.

Одной из наших основных целей является дальнейшее стремление к соответствию стандарту SQL, но без ущерба для скорости и надёжности. Мы не боимся добавлять расширения к SQL или поддержку функций, не относящихся к SQL, если это значительно повысит удобство использования MySQL Server для большой части нашей пользовательской базы. Интерфейс HANDLER является примером этой стратегии. См. Раздел 15.2.5, «HANDLER Statement».

Мы продолжаем поддерживать транзакционные и не транзакционные базы данных, чтобы удовлетворить как критически важные 24/7 задачи, так и интенсивное использование веб-приложений или систем логирования.

MySQL Server изначально был разработан для работы со средними базами данных (10–100 миллионов строк или около 100 МБ на таблицу) на небольших компьютерных системах. Сегодня MySQL Server обрабатывает базы данных размером в терабайты.

Мы не ориентируемся на поддержку в реальном времени, хотя возможности репликации MySQL предлагают значительную функциональность.

MySQL поддерживает уровни ODBC от 0 до 3.51.

MySQL поддерживает кластеризацию баз данных с высокой доступностью, используя движок хранения NDBCLUSTER. См. Главу 25, MySQL NDB Cluster 9.2.

Мы реализовали функциональность XML, поддерживающую большую часть стандарта W3C XPath. См. Раздел 14.11, «XML Functions».

MySQL поддерживает родной тип данных JSON, как определено в RFC 7159, и основанный на стандарте ECMAScript (ECMA-262). См. Раздел 13.5, «Тип данных JSON». MySQL также реализует подмножество функций SQL/JSON, определенных предварительной публикацией проекта стандарта SQL:2016; см. Раздел 14.17, «JSON Functions», для получения дополнительной информации.

Выбор режимов SQL

Сервер MySQL может работать в различных режимах SQL и применять эти режимы по-разному для разных клиентов, в зависимости от значения системной переменной sql_mode. Администрирующие базы данных (DBA) могут установить глобальный режим SQL, соответствующий требованиям сайта и сервера, а каждое приложение может установить свой режим SQL сессии, соответствующий собственным требованиям.

Режимы влияют на поддерживаемый MySQL синтаксис SQL и проверки данных. Это упрощает использование MySQL в различных средах и совместное использование MySQL с другими серверами баз данных.

Для получения дополнительной информации о настройке режима SQL, см. Раздел 7.1.11, «Режимы сервера SQL».

Запуск MySQL в режиме ANSI

Чтобы запустить MySQL Server в режиме ANSI, запустите mysqld с параметром --ansi. Запуск сервера в режиме ANSI эквивалентен запуску с следующими параметрами:

--transaction-isolation=SERIALIZABLE --sql-mode=ANSI

Для достижения того же эффекта во время выполнения, выполните эти две команды:

SET GLOBAL TRANSACTION ISOLATION LEVEL SERIALIZABLE;
SET GLOBAL sql_mode = 'ANSI';

Можно заметить, что установка системной переменной sql_mode на 'ANSI' включает все параметры режима SQL, релевантные для режима ANSI следующим образом:

mysql> SET GLOBAL sql_mode='ANSI';
mysql> SELECT @@GLOBAL.sql_mode;
        -> 'REAL_AS_FLOAT,PIPES_AS_CONCAT,ANSI_QUOTES,IGNORE_SPACE,ANSI'

Запуск сервера в режиме ANSI с параметром --ansi немного отличается от установки режима SQL на 'ANSI', потому что параметр --ansi также устанавливает уровень изоляции транзакций.

См. Раздел 7.1.7, «Параметры команд сервера».

© 2025 Oracle
Licensed under the GPLv2 License.
https://docs.oracle.com/cd/E17952_01/mysql-9.2-en/compatibility.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API