Вставка отдельных строк
Для добавления одной или нескольких строк в таблицу можно использовать команду
INSERT [INTO] <���Имя таблицы>
[(<���Список столбцов>)]
VALUES
(<���Список значений 1>),
(<���Список значений 2>),
…
(<���Список значений N>);
В команде INSERT используются следующие основные параметры.
• Имя таблицы, в которую добавляются строки.
• Список имен столбцов, для которых будут заданы значения. Если значения будут заданы для всех столбцов таблицы, то приводить список столбцов необязательно.
...
Примечание
Если столбец таблицы не включен в список, то в этом столбце при добавлении строки будет автоматически установлено значение по умолчанию.
• Значения, которые нужно добавить в таблицу. Значения могут указываться в одном из следующих форматов:
– набор значений для каждой добавляемой строки заключается в скобки. Набор значений внутри каждой пары скобок должен соответствовать указанному списку столбцов, а если список столбцов не указан, то упорядоченному списку всех столбцов, составляющих таблицу (список столбцов таблицы можно просмотреть с помощью команды DESCRIBE, см. подраздел «Другие команды для работы с таблицами»). Значения внутри набора, а также сами наборы отделяются друг от друга запятыми;
– символьные значения, а также значения даты и времени приводятся в одинарных кавычках. Для числовых значений кавычки необязательны. Десятичным разделителем для чисел с дробной частью служит точка. Время и даты вводятся, соответственно, в формате «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);
Читать дальше
Конец ознакомительного отрывка
Купить книгу