MyBooks.club
Все категории

Виктор Гольцман - MySQL 5.0. Библиотека программиста

На сайте mybooks.club вы можете бесплатно читать книги онлайн без регистрации, включая Виктор Гольцман - MySQL 5.0. Библиотека программиста. Жанр: Программирование издательство неизвестно,. Доступна полная версия книги с кратким содержанием для предварительного ознакомления, аннотацией (предисловием), рецензиями от других читателей и их экспертным мнением.
Кроме того, на сайте mybooks.club вы найдете множество новинок, которые стоит прочитать.

Название:
MySQL 5.0. Библиотека программиста
Издательство:
неизвестно
ISBN:
нет данных
Год:
неизвестен
Дата добавления:
17 сентябрь 2019
Количество просмотров:
250
Читать онлайн
Виктор Гольцман - MySQL 5.0. Библиотека программиста

Виктор Гольцман - MySQL 5.0. Библиотека программиста краткое содержание

Виктор Гольцман - MySQL 5.0. Библиотека программиста - описание и краткое содержание, автор Виктор Гольцман, читайте бесплатно онлайн на сайте электронной библиотеки mybooks.club
Эта книга предназначена для всех, кто желает освоить СУБД MySQL. Для ее чтения вам не нужны никакие специальные знания – достаточно быть пользователем Windows. Вы узнаете, как установить и запустить MySQL, как создать собственную базу данных, как работать с данными при помощи команд SQL, как администрировать базу данных и оптимизировать ее работу. Разработчики веб-приложений на языках PHP, Perl и Java найдут в этой книге полезные сведения по использованию базы данных MySQL в соответствующих приложениях. Для всех операций, которые вам предстоит выполнить, приводятся подробные пошаговые инструкции, все основные действия поясняются на примере учебной базы данных.

MySQL 5.0. Библиотека программиста читать онлайн бесплатно

MySQL 5.0. Библиотека программиста - читать книгу онлайн бесплатно, автор Виктор Гольцман

– символьные значения, а также значения даты и времени приводятся в одинарных кавычках. Для числовых значений кавычки необязательны. Десятичным разделителем для чисел с дробной частью служит точка. Время и даты вводятся, соответственно, в формате «YYYY-MM-DD» и «HH:MM:SS»;

– чтобы ввести в столбец неопределенное значение, то необходимо указать вместо значения ключевое слово NULL без кавычек (слово в кавычках рассматривается как обычная символьная строка);

– вместо значения можно указать ключевое слово DEFAULT без кавычек, тогда в столбец будет введено значение по умолчанию (если оно задано для этого столбца).

Например, добавьте в таблицу Products (Товары) сведения о продукции компании с помощью команды, представленной в листинге 2.5.

Листинг 2.5.

Команда добавления строк в таблицу Products

INSERT INTO Products (description,details,price)

VALUES

('Обогреватель Мосбытприбор ВГД 121R',

'Инфракрасный обогреватель. 3 режима нагрева:

400 Вт, 800 Вт, 1200 Вт','1145.00'),

('Гриль Мосбытприбор СТ-14',

'Мощность 1440 Вт. Быстрый нагрев. Термостат.

Цветовой индикатор работы','2115.00'),

('Кофеварка Мосбытприбор ЕКЛ-1032',

'Цвет: черный. Мощность: 450 Вт.

Вместительность: 2 чашки','710.00'),

('Чайник Мосбытприбор МН',

'Цвет: белый. Мощность: 2200 Вт. Объем: 2 л','925.00'),

('Утюг Мосбытприбор c паром АБ 200',

'Цвет: фиолетовый. Мощность: 1400 вт','518.00');

Эта команда добавляет значения в столбцы description (наименование), details (описание) и price (цена) таблицы Products. При этом в столбец id (идентификатор) автоматически вносятся порядковые номера строк, поскольку этот столбец имеет тип данных SERIAL (см. листинг 2.3).

Теперь, когда данные внесены и в таблицу Customers (Клиенты) (в предыдущем подразделе было рассказано, как загрузить в эту таблицу данные из файла), и в таблицу Products, можно заполнять таблицу Orders (Заказы). Напомню, что каждая строка таблицы Orders ссылается на строку таблицы Customers и строку таблицы Products, и в момент добавления строки в таблицу Orders соответствующие строки в таблицах Customers и Products должны уже существовать. Внесите в таблицу Orders сведения о заказах, выполнив команду, представленную в листинге 2.6.

Листинг 2.6. Команда добавления строк в таблицу Orders

INSERT INTO Orders

VALUES

(1012,'2007-12-12',5,8,'4500',533),

(1013,'2007-12-12',2,14,'22000',536),

(1014,'2008-01-21',5,12,'5750',533);

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

SHOW VARIABLES LIKE 'sql_mode

Эта команда показывает значение переменной sql_mode. Если в значении нет ключевых слов STRICT_TRANS_TABLES и STRICT_ALL_TABLES, это означает, что сервер работает в нестрогом режиме.

В нестрогом режиме вставляемое некорректное значение преобразуется в допустимое, в частности

• некорректная дата заменяется нулевой датой (0000-00-00 00:00:00);

• «лишние» символы в слишком длинном символьном значении отбрасываются (так, значение abc, вставляемое в столбец с типом CHAR(2), сокращается до ab);

• слишком большое число заменяется максимально возможным значением для данного типа столбца;

• при внесении в числовой столбец символьного значения все символы, начиная с первой буквы, отбрасываются, и в таблицу вносится начальная числовая часть значения, а если первый символ в значении буква, а не цифра, то значение заменяется нулем (даже если задано отличное от нуля значение по умолчанию);

• если вы установили для столбца свойство NOT NULL, но не задали значение по умолчанию, а при вставке строки не указали значение для этого столбца, то в столбец будет добавлено следующее значение:

– для числовых столбцов – 0, а если задано свойство AUTO_INCREMENT, то очередной порядковый номер;

– для столбцов с типом даты и времени – нулевая дата и/или время (0000–0000 00:00:00), а для первого в таблице столбца с типом TIMESTAMP – текущая дата и время;

– для символьных столбцов – пустая строка, а для столбца с типом ENUM – первый из элементов списка.

При этом операция добавления завершается успешно и генерируется предупреждение, которое можно просмотреть, выполнив после команды INSERT команду

SHOW WARNINGS;

...

Внимание!

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

Если в значении переменной sql_mode содержится ключевое слово STRICT_ TRANS_TABLES или STRICT_ALL_TABLES, значит, сервер работает в строгом режиме. Для таблиц с поддержкой транзакций (то есть таблиц с типом InnoDB) эти два режима эквивалентны и действуют одинаково. При попытке вставки некорректного значения операция INSERT полностью отменяется (то есть в таблицу не загружается ни одна из добавляемых строк, даже если некорректное значение обнаружено только в одной из них) и выдается сообщение об ошибке.

Для таблиц, не поддерживающих транзакции (то есть таблиц с типом MyISAM и др.), режимы STRICT_TRANS_TABLES или STRICT_ALL_TABLES функционируют следующим образом:

• если некорректное значение обнаружено в первой из добавляемых строк, операция INSERT полностью отменяется и выдается сообщение об ошибке (то есть результат выполнения такой же, как для таблиц InnoDB);

• если установлен режим STRICT_TRANS_TABLES, а некорректное значение обнаружено в одной из последующих добавляемых строк, то некорректное значение преобразуется в допустимое и генерируется предупреждение (как в нестрогом режиме);

• если установлен режим 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. При изменении глобального режима новый режим применяется к этой утилите сразу же, без переподключения к серверу.


Виктор Гольцман читать все книги автора по порядку

Виктор Гольцман - все книги автора в одном месте читать по порядку полные версии на сайте онлайн библиотеки mybooks.club.


MySQL 5.0. Библиотека программиста отзывы

Отзывы читателей о книге MySQL 5.0. Библиотека программиста, автор: Виктор Гольцман. Читайте комментарии и мнения людей о произведении.

Прокомментировать
Подтвердите что вы не робот:*
Подтвердите что вы не робот:*
Все материалы на сайте размещаются его пользователями.
Администратор сайта не несёт ответственности за действия пользователей сайта..
Вы можете направить вашу жалобу на почту librarybook.ru@gmail.com или заполнить форму обратной связи.