• если установлен режим STRICT_ALL_TABLES, а некорректное значение обнаружено в одной из последующих добавляемых строк, то операция частично отменяется: строки, предшествующие ошибочной строке, добавляются в таблицу, а ошибочная и следующие за ней – игнорируются. В связи с этим в таблицы, не поддерживающие транзакции, рекомендуется добавлять по одной строке в каждой команде INSERT.

...

Внимание!

В любом из режимов числа с дробной частью, добавляемые в целочисленный столбец, округляются до целого, причем такая операция не вызывает ни ошибок, ни предупреждений.

Если вы задали для столбца таблицы свойство NOT NULL (тем самым запретив использовать значение NULL в качестве значения по умолчанию), но не задали отличное от NULL значение по умолчанию (свойство DEFAULT), и если вы удалили значение столбца по умолчанию с помощью команды ALTER TABLE, то в строгом режиме считается, что у такого столбца нет значения по умолчанию. Поэтому при добавлении строки в таблицу необходимо явно задать значение для такого столбца, в противном случае операция INSERT полностью отменяется и выдается сообщение об ошибке. Исключение составляют столбцы с типом TIMESTAMP и ENUM, а также числовые столбцы со свойством AUTO_INCREMENT: для них в случае отсутствия явно заданного значения используются такие же значения, что и в нестрогом режиме.

Изменить режим взаимодействия вашего клиентского приложения с сервером вы можете с помощью команды

SET SQL_MODE = \'<Режим>\

Например, команда

SET SQL_MODE = \'\

устанавливает нестрогий режим, а команды

SET SQL_MODE = \'STRICT_TRANS_TABLES\

и

SET SQL_MODE = \'STRICT_ALL_TABLES\

устанавливают соответствующий строгий режим.

Команда SET SQL_MODE изменяет режим взаимодействия с сервером только для текущего соединения и не влияет на взаимодействие сервера с другими клиентскими приложениями. Новый режим вступает в силу немедленно после выполнения команды и сохраняется только до момента отключения от сервера.

Если же вы хотите, чтобы новый режим действовал глобально (то есть для всех клиентских приложений), необходимо включить в команду изменения режима ключевое слово GLOBAL:

SET GLOBAL SQL_MODE = \'<Режим>\

Режим, установленный глобально, применяется для всех вновь подключаемых к серверу клиентских приложений; ранее подключенные приложения продолжают работать в прежнем режиме. Чтобы новый режим вступил в силу для вашего приложения, необходимо отключиться от сервера и затем снова подключиться к нему. Глобальный режим сохраняется до момента перезапуска сервера MySQL.

...

Внимание!

В отличие от других клиентских приложений, графическая утилита MySQL Query Browser всегда взаимодействует с сервером в глобальном режиме. Установить для нее режим, отличный от установленного глобально, невозможно: команда SET SQL_MODE, выполненная в MySQL Query Browser, игнорируется. Таким образом, чтобы изменить режим для MySQL Query Browser, нужно изменить режим глобально с помощью команды SET GLOBAL SQL_MODE. При изменении глобального режима новый режим применяется к этой утилите сразу же, без переподключения к серверу.

Теперь, когда данные внесены в таблицы, можно пользоваться базой данных для нахождения нужных вам сведений. Об этом и пойдет речь в следующем разделе.

<p>2.5. Извлечение данных из таблиц</p>

Для получения информации из таблиц базы данных используются запросы – SQL-команды, начинающиеся с ключевого слова SELECT. В этом разделе вы познакомитесь со структурой запросов.

Простые запросы

Знакомство с запросами начнем с наиболее простой команды, которая выводит все данные, содержащиеся в таблице:

SELECT * FROM <Имя таблицы>;

Например, в результате выполнения запроса

SELECT * FROM Customers;

вы получите всю информацию о клиентах (см. рис. 2.2 и 2.4).

...
Перейти на страницу:

Похожие книги