Текст книги "MySQL 5.0. Библиотека программиста"
![](/books_files/covers/thumbs_150/mysql-50-biblioteka-programmista-27068.jpg)
Автор книги: Виктор Гольцман
Жанр: Базы данных, Компьютеры
сообщить о неприемлемом содержимом
Текущая страница: 5 (всего у книги 18 страниц) [доступный отрывок для чтения: 5 страниц]
В этом подразделе будет описано, как изменить те параметры таблицы, которые мы обсуждали в предыдущем подразделе. Для модификации ранее созданной таблицы используется команда ALTER TABLE. Задавая различные параметры этой команды, вы можете внести в таблицу следующие изменения.
• Добавить столбец вы можете с помощью команды
ALTER TABLE <Имя таблицы>
ADD <Имя столбца> <Тип столбца> [<Свойства столбца>]
[FIRST или AFTER <Имя предшествующего столбца>];
В этой команде мы указываем имя таблицы, в которую добавляется столбец, а также имя и тип добавляемого столбца (о типах столбцов см. пункт «Типы данных в MySQL»). При необходимости можно также задать свойства добавляемого столбца (см. пункт «Свойства столбцов»). Кроме того, можно определить место нового столбца среди уже существующих: добавляемый столбец может стать первым (FIRST) или следовать после указанного предшествующего столбца (AFTER). Если место столбца не задано, он становится последним столбцом таблицы.
Например, чтобы добавить в таблицу Products (Товары) столбец store (название склада, где хранится каждый вид товара), выполните команду
ALTER TABLE Products ADD store VARCHAR(100) AFTER details;
Примечание
Добавить столбец со свойством AUTO_INCREMENT можно только с одновременным созданием индекса или ключа для этого столбца. Например, если бы столбец id не был включен в таблицу Products (Товары) при ее создании, мы могли бы добавить его с помощью команды
ALTER TABLE Products
ADD id BIGINT AUTO_INCREMENT, ADD PRIMARY KEY (id);
• Добавить первичный ключ вы можете с помощью команды
ALTER TABLE <Имя таблицы>
ADD [CONSTRAINT <Имя ключа>]
PRIMARY KEY (<Список столбцов>);
При добавлении в таблицу первичного ключа мы указываем имя таблицы, в которую нужно добавить ключ, и имена столбцов, которые будут образовывать первичный ключ (эти столбцы должны уже существовать в таблице). Более подробно о первичных ключах было сказано в пункте «Ключевые столбцы и индексы».
Например, если бы первичный ключ не был определен при создании таблицы Orders (Заказы), мы могли бы добавить его с помощью команды
ALTER TABLE Orders ADD PRIMARY KEY (id);
• Добавить внешний ключ вы можете с помощью команды
ALTER TABLE <Имя таблицы>
ADD [CONSTRAINT <Имя внешнего ключа>]
FOREIGN KEY [<Имя индекса>] (<Список столбцов>)
REFERENCES <Имя родительской таблицы>
(<Список столбцов первичного ключа родительской таблицы>)
[<Правила поддержания целостности связи>];
При добавлении в таблицу внешнего ключа мы указываем имя таблицы, в которую нужно добавить ключ, имена столбцов, которые будут образовывать внешний ключ (эти столбцы должны уже существовать в таблице), а также имя родительской таблицы (на которую будет ссылаться данная таблица) и имена столбцов, образующих первичный ключ в родительской таблице. В случае необходимости можно также задать имя создаваемого внешнего ключа, имя индекса, автоматически добавляемого для столбцов внешнего ключа, и правила поддержания целостности связи при удалении и изменении строк родительской таблицы.
Например, если бы внешний ключ не был определен при создании таблицы Orders (Заказы), мы могли бы добавить его с помощью команды
ALTER TABLE Orders
ADD FOREIGN KEY (customer_id) REFERENCES Customers (id)
ON DELETE RESTRICT ON UPDATE CASCADE);
Более подробно о внешних ключах говорилось в пункте «Ключевые столбцы и индексы».
• Добавить в таблицу обычный индекс вы можете с помощью команды
ALTER TABLE <Имя таблицы>
ADD INDEX [<Имя индекса>] (<Список столбцов>);
Добавить уникальный индекс – с помощью команды
ALTER TABLE <Имя таблицы>
ADD [CONSTRAINT <Имя ограничения>]
UNIQUE (<Список столбцов>);
Добавить полнотекстовый индекс – с помощью команды ALTER TABLE <Имя таблицы>
ALTER TABLE <Имя таблицы>
ADD FULLTEXT [<Имя индекса>] (<Список столбцов>);
При добавлении в таблицу индекса мы указываем имя таблицы, в которую нужно добавить индекс, и имена столбцов, включенных в индекс. В случае необходимости можно также задать имя индекса. Более подробно об индексах было сказано в пункте «Ключевые столбцы и индексы».
Например, добавить индекс для столбца store (склад) таблицы Products (Товары) можно с помощью команды
ALTER TABLE Products ADD INDEX (store);
• Изменить столбец таблицы вы можете с помощью следующих команд:
– Чтобы полностью изменить описание столбца, выполните команду
ALTER TABLE <Имя таблицы>
CHANGE <Прежнее имя столбца >
<Новое имя столбца>
<Новый тип столбца> [<Свойства столбца>]
[FIRST или AFTER <Имя предшествующего столбца>];
Внимание!
Изменять тип столбца, который уже содержит какие-либо значения, необходимо с осторожностью, так как при этом возможно внесение коррективов в значения. Например, если тип данных с плавающей точкой меняется на целочисленный, числовые значения будут округлены.
В этой команде мы указываем имя таблицы, текущее имя столбца, новое имя столбца (которое может совпадать с текущим), новый тип столбца (который также может совпадать с текущим типом), а также, при необходимости, свойства столбца (старые свойства при выполнении команды CHANGE удаляются). Кроме того, можно определить место столбца среди остальных столбцов таблицы: изменяемый столбец может стать первым (FIRST) или следовать после указанного предшествующего столбца (AFTER).
Например, чтобы переименовать столбец store (склад) таблицы Products (Товары) в warehouse (склад) и изменить его тип на CHAR(100), выполните команду
ALTER TABLE Products CHANGE store warehouse CHAR(100);
Чтобы присвоить столбцу свойство AUTO_INCREMENT, необходимо либо одновременно с этим, либо заранее создать индекс для этого столбца.
– Чтобы изменить описание столбца без переименования, выполните команду
ALTER TABLE <Имя таблицы>
MODIFY <Имя столбца>
<Новый тип столбца> [<Свойства столбца>]
[FIRST или AFTER <Имя предшествующего столбца>];
Данная команда полностью аналогична предыдущей, за исключением возможности переименования столбца.
– Чтобы установить значение по умолчанию для столбца, выполните команду
ALTER TABLE <Имя таблицы>
ALTER <Имя столбца>
SET DEFAULT <Значение по умолчанию>;
Например, чтобы установить для столбца warehouse таблицы Products значение по умолчанию Склад № 1, выполните команду
ALTER TABLE Products
ALTER warehouse SET DEFAULT 'Склад № 1';
Чтобы удалить значение по умолчанию, выполните команду
ALTER TABLE <Имя таблицы>
ALTER <Имя столбца> DROP DEFAULT;
Например, удалить значение по умолчанию, установленное для столбца warehouse, можно с помощью команды
ALTER TABLE Products ALTER warehouse DROP DEFAULT;
• Удалить столбец таблицы вы можете с помощью команды
ALTER TABLE <Имя таблицы> DROP <Имя столбца>;
При удалении столбца он удаляется также из всех индексов, в которые он был включен (в отличие от первичного и внешнего ключа, которые требуется удалить прежде, чем удалять входящие в них столбцы). Если при этом в индексе не остается столбцов, то индекс также автоматически удаляется. Например, для удаления столбца warehouse (склад) из таблицы Products (Товары) выполните команду
ALTER TABLE Products DROP warehouse;
• Удалить первичный ключ вы можете с помощью команды
ALTER TABLE <Имя таблицы> DROP PRIMARY KEY;
Например, удалить первичный ключ из таблицы Orders (Заказы) можно с помощью команды
ALTER TABLE Orders DROP PRIMARY KEY;
• Удалить внешний ключ вы можете с помощью команды
ALTER TABLE <Имя таблицы>
DROP FOREIGN KEY <Имя внешнего ключа>;
В этой команде необходимо указать имя внешнего ключа. Если вы не задали имя внешнего ключа при его создании, то имя было присвоено автоматически и узнать его можно с помощью команды SHOW CREATE TABLE (см. подраздел «Другие команды для работы с таблицами»).
Например, удалить внешний ключ из таблицы Orders можно с помощью команды
ALTER TABLE Orders DROP FOREIGN KEY orders_ibfk_1;
(здесь orders_ibfk_1 – имя внешнего ключа, автоматически присвоенное ему при создании).
• Удалить индекс (обычный, уникальный или полнотекстовый) вы можете с помощью команды
ALTER TABLE <Имя таблицы> DROP INDEX <Имя индекса>;
В этой команде необходимо указать имя индекса. Если вы не задали имя индекса при его создании, то имя было присвоено автоматически и узнать его можно с помощью команды SHOW CREATE TABLE (см. подраздел «Другие команды для работы с таблицами»).
Например, удалить индекс, созданный для поля name (имя) таблицы Customers (Клиенты), можно с помощью команды
ALTER TABLE Customers DROP INDEX name;
(здесь name – имя индекса: по умолчанию индексу присваивается имя первого индексируемого столбца).
• Включить и отключить обновление неуникальных индексов в таблице с типом MyISAM вы можете с помощью следующих команд:
ALTER TABLE <Имя таблицы> DISABLE KEYS;
Эта команда временно отключает обновление неуникальных индексов, что позволяет увеличить быстродействие операций добавления строк в таблицу.
ALTER TABLE <Имя таблицы> ENABLE KEYS;
Эта команда позволяет восстановить индексы после добавления строк.
• Переименовать таблицу вы можете с помощью команды
ALTER TABLE <Имя таблицы> RENAME <Новое имя таблицы>;
• Упорядочить строки таблицы по значениям одного или нескольких столбцов вы можете с помощью команды
ALTER TABLE <Имя таблицы>
ORDER BY <Имя столбца 1> [ASC или DESC],
[<Имя столбца 2> [ASC или DESC],…];
Упорядочение строк позволяет ускорить последующие операции сортировки по значениям указанных столбцов. Однако порядок строк в таблице может нарушиться после операций добавления и удаления строк. По умолчанию строки таблицы упорядочиваются по возрастанию значений. Вы можете выбрать направление сортировки, указав ключевое слово ASC (по возрастанию) или DESC (по убыванию).
Для таблиц с типом InnoDB, в которых есть первичный ключ или уникальный индекс, не допускающий неопределенных значений (NOT NULL UNIQUE), эта команда игнорируется, поскольку строки таких таблиц автоматически упорядочиваются по значениям этого ключа/индекса.
• Задать опциональные свойства таблицы (см. пункт «Опциональные свойства таблицы») вы можете с помощью команды
ALTER TABLE <Имя таблицы> <Опциональное свойство таблицы>;
Например, изменить тип таблицы можно с помощью команды
ALTER TABLE <Имя таблицы> ENGINE <Новый тип таблицы>;
• Изменить кодировку и правило сравнения символьных значений, используемых по умолчанию для новых символьных столбцов таблицы, можно, как любое другое опциональное свойство таблицы, с помощью команды
ALTER TABLE <Имя таблицы>
CHARACTER SET <Имя кодировки>
[COLLATE <Имя правила сравнения>];
Например, если для таблицы Products (Товары) требуется установить в качестве кодировки по умолчанию кодировку CP-1251, это можно сделать с помощью команды
ALTER TABLE Products CHARACTER SET cp1251;
После выполнения этой команды существующие столбцы таблицы Products по-прежнему будут иметь кодировку UTF-8. Если же с помощью команды ALTER TABLE будут добавляться новые символьные столбцы, то им будет по умолчанию присваиваться кодировка CP-1251.
Если вы хотите не только изменить кодировку, используемую по умолчанию для новых столбцов, но и преобразовать в новую кодировку существующие символьные столбцы таблицы, то нужно использовать команду
ALTER TABLE <Имя таблицы>
CONVERT TO CHARACTER SET <Имя кодировки>
[COLLATE <Имя правила сравнения>];
При выполнении этой команды не просто меняются описания символьных столбцов: данные в этих столбцах также преобразуются в новую кодировку. Например, после выполнения команды
ALTER TABLE Products CONVERT TO CHARACTER SET cp1251;
все наименования и описания товаров (значения столбцов description и details) преобразуются в кодировку CP-1251.
Если же данные в столбце фактически закодированы с помощью одной кодировки, а в описании столбца указана другая кодировка, исправить эту ошибку можно, изменив кодировку только в описании столбца, без преобразования данных. Это можно сделать, преобразовав тип столбца из символьного в бинарный (то есть тип CHAR преобразовать в тип BINARY, тип VARCHAR – в тип VARBINARY, тип TEXT – в тип BLOB и т. п.), а затем обратно в символьный, уже в правильной кодировке. Для этого выполним последовательно две команды:
ALTER TABLE <Имя таблицы>
CHANGE <Имя столбца> <Имя столбца> <Бинарный тип данных>;
ALTER TABLE <Имя таблицы>
CHANGE <Имя столбца> <Имя столбца> <Исходный тип данных>
CHARACTER SET <Фактическая кодировка значений>;
Например, если для столбца details таблицы Products установлен тип TEXT и кодировка UTF-8, а данные в нем фактически находятся в кодировке CP-1251, приведем описание столбца в соответствие с реальной кодировкой с помощью команд
ALTER TABLE Products CHANGE details details BLOB;
ALTER TABLE Products
CHANGE details details TEXT CHARACTER SET cp1251;
Итак, вы изучили команду изменения таблицы. В следующем подразделе рассмотрим еще несколько полезных команд работы с таблицами.
Другие команды для работы с таблицамиВ этом подразделе мы познакомимся с командами получения информации о таблицах, а также с командой удаления таблицы.
Получить детальную информацию о конкретной таблице вы можете с помощью команды
DESCRIBE <Имя таблицы>;
или
SHOW CREATE TABLE <Имя таблицы>;
Эти команды вы можете использовать, чтобы, например, узнать имена и порядок следования столбцов таблицы, проверить правильность изменений, внесенных в структуру таблицы с помощью команды ALTER TABLE и т. п.
Команда DESCRIBE выводит информацию о столбцах таблицы. Например, чтобы получить информацию о столбцах таблицы Customers (Клиенты), выполним команду
DESCRIBE Customers;
Примечание
Во всех клиентских приложениях, подключенных к серверу MySQL, в результате выполнения одной и той же команды отображаются одни и те же данные. Однако окна разных клиентских приложений выглядят по-разному (сравним, например, рис. 2.2 и рис. 2.4). Поэтому здесь и далее мы будем приводить не изображение окна, а только сами данные, выводимые командой.
Результат выполнения этой команды представлен в табл. 2.1.
Таблица 2.1. Результат выполнения команды DESCRIBE Customers;
![](i_044.png)
Для каждого столбца таблицы команда DESCRIBE отображает следующие характеристики:
• Field – имя столбца;
• Type – тип столбца;
• Null – указывает, допускает ли столбец неопределенные значения (NULL): YES – допускает, NO – не допускает;
• Key – показывает вхождение столбца в ключи и индексы:
– PRI – столбец входит в первичный ключ или, если в таблице нет первичного ключа, в уникальный индекс, не допускающий неопределенных значений;
– UNI, MUL – столбец является первым столбцом индекса;
• Default – значение столбца по умолчанию;
• Extra – дополнительная информация.
Команда SHOW CREATE TABLE выводит полную информацию о всех параметрах таблицы в виде текста команды CREATE TABLE, позволяющей создать таблицу, идентичную данной. Эта команда может не совпадать с командой, с помощью которой была в действительности создана таблица, если, например, таблица была изменена с помощью команды ALTER TABLE или программа MySQL автоматически внесла корректировки в структуру таблицы (например, добавление значения по умолчанию для столбца или присвоение имени индексу). К примеру, команда
SHOW CREATE TABLE Customers;
выводит результат, представленный в табл. 2.2.
Таблица 2.2. Результат выполнения команды SHOW CREATE TABLE Customers;
![](i_045.png)
Если сравнить данные из табл. 2.2 с «настоящей» командой создания таблицы Customers (см. листинг 2.2), то вы увидите, как изменились определения столбцов.
Просмотреть список таблиц текущей базы данных вы можете с помощью команды
SHOW TABLES;
Если вы выбрали в качестве текущей базу данных SalesDept (Отдел продаж) и создали в ней три таблицы – Customers (Клиенты), Products (Товары) и Orders (Заказы), то команда SHOW TABLES выведет следующий результат (табл. 2.3).
Таблица 2.3. Результат выполнения команды SHOW TABLES;
![](i_046.png)
Наконец, чтобы удалить ненужную или ошибочно созданную таблицу, выполните команду
DROP TABLE <Имя таблицы>;
Внимание!
Удаление таблицы – очень ответственная операция, поскольку она приводит к удалению всех данных, хранившихся в таблице. Рекомендуется перед удалением таблицы создать резервную копию базы данных.
Итак, вы освоили основные операции, выполняемые с таблицами, а именно: команды CREATE TABLE (создание), ALTER TABLE (изменение), DROP TABLE (удаление), SHOW TABLES (просмотр списка таблиц), DESCRIBE и SHOW CREATE TABLE (просмотр информации о таблице). Теперь мы переходим к работе с отдельными строками.
2.4. Ввод данных в таблицу
После создания таблиц можно приступать к наполнению их данными. В данном разделе вы узнаете о двух операциях, с помощью которых можно добавить строки в таблицу. Вначале мы рассмотрим загрузку данных из текстового файла, затем – вставку отдельных строк.
Загрузка данных из файлаЕсли требуется добавить в таблицу большой массив данных, удобно использовать для этого команду загрузки данных из файла. Загрузка из файла выполняется программой MySQL значительно быстрее, чем вставка строк с помощью команды INSERT.
Например, чтобы загрузить данные в таблицу Customers (Клиенты), команда создания которой показана в листинге 2.2, выполните следующие действия.
1. Запустите стандартную программу Windows Блокнот (Пуск → Все программы → Стандартные → Блокнот).
2. В окне программы Блокнот введите данные, используя для отделения значений друг от друга клавишу Tab, а для перехода на следующую строку – клавишу Enter (рис. 2.5).
![](i_047.png)
Рис. 2.5. Ввод данных в текстовый файл
Примечание
Вместо отсутствующего значения необходимо при заполнении файла ввести символы «N». Тогда в базу данных будет загружено неопределенное значение (NULL).
3. Для сохранения файла с данными нажмите комбинацию клавиш Ctrl+S. В стандартном окне Windows Сохранить как выберите папку, в которую нужно поместить файл (например, C: data). Введите имя файла (например, Customers. txt) и нажмите кнопку Сохранить.
4. Для загрузки данных из созданного файла выполните команду
LOAD DATA LOCAL INFILE 'C:/data/Customers.txt'
INTO TABLE Customers
CHARACTER SET cp1251;
Обратите внимание, что в пути к файлу необходимо использовать прямую косую черту, а не обратную.
Файл Customers.txt мы создали в формате, принятом по умолчанию в MySQL, поэтому при загрузке потребовалось указать только один дополнительный параметр – кодировку Windows.
Однако если вам нужно загрузить в таблицу данные из текстового файла, который был создан в другом формате (например, выгружен из другой базы данных), могут потребоваться и другие параметры. Полностью команда LOAD DATA имеет следующий вид:
LOAD DATA [LOCAL] INFILE 'Путь и имя файла'
[REPLACE или IGNORE]
INTO TABLE <Имя таблицы>
CHARACTER SET <Имя кодировки>
[
FIELDS
[TERMINATED BY <Разделитель значений в строке>]
[[OPTIONALLY]
ENCLOSED BY <Символ, в который заключены значения>]
[ESCAPED BY <Экранирующий символ>]
]
[
LINES
[STARTING BY <Префикс строки>]
[TERMINATED BY <Разделитель строк>]
]
[IGNORE <Количество строк в начале файла> LINES]
[(<Список столбцов>)]
[SET <Имя столбца> = <Выражение>,…];
В этой команде вы можете использовать следующие параметры.
• LOCAL – укажите этот параметр, если файл с данными находится на клиентском компьютере (то есть на том компьютере, где работает клиентское приложение, в котором вы и вводите эту команду). Если файл расположен на компьютере, где работает сервер MySQL, параметр LOCAL указывать не нужно.
• 'Путь и имя файла' – введите полный путь к файлу, например C:/Data/ mytable.txt (необходимо использовать прямую косую черту вместо обратной, принятой в Windows).
• REPLACE или IGNORE – укажите один из этих параметров, чтобы сообщить программе MySQL, как нужно обрабатывать загружаемую строку, если в таблице уже есть строка с таким же значением первичного ключа или уникального индекса. Если указан параметр REPLACE, то существующая в таблице строка заменяется новой. Если указан параметр IGNORE, новая строка в таблицу не загружается.
• CHARACTER SET <Имя кодировки> – укажите кодировку данных в файле. Этот параметр используется для корректного преобразования кодировок. Предполагается, что все данные в файле имеют одну и ту же кодировку.
Внимание!
Загрузка данных в кодировке UTF-8 может работать некорректно вследствие переменного количества байтов на символ в этой кодировке. Рекомендуем файл с данными в этой кодировке перед загрузкой преобразовать в какую-либо однобайтовую кодировку. Например, откроем файл с помощью программы Блокнот, в меню Файл выберем команду Сохранить как, а затем в стандартном окне Windows Сохранить как в поле Кодировка выберем из списка значение ANSI и нажмем кнопку Сохранить. После этого загрузим этот файл, указав в команде LOAD DATA параметр CHARACTER SET cp1251.
• FIELDS – укажите этот параметр, чтобы сообщить программе MySQL, в каком формате заданы значения в файле:
– TERMINATED BY <Разделитель значений в строке> – укажем символ, разделяющий значения в строке файла. Например, если значения разделены запятыми, укажем параметр TERMINATED BY, если значения разделены символами табуляции – TERMINATED BY t', если значения разделены косой чертой – TERMINATED BY /;
– ENCLOSED BY <Символ, в который заключены значения> – укажем символ, которым обрамляются значения. Например, если все значения заключены в одинарные кавычки, укажем ENCLOSED BY , если в одинарные кавычки заключены только символьные значения, укажем OPTIONALLY ENCLOSED BY , а если никакие значения не обрамляются никакими символами, укажем ENCLOSED BY или вообще опустим этот параметр;
– ESCAPED BY <Экранирующий символ> – укажем экранирующий символ (его также называют escape-символом). Этот символ сообщает программе MySQL, что следующий за ним символ нужно интерпретировать особым образом. А именно, обычный символ, следующий после экранирующего, будет рассматриваться как специальный символ, а специальный символ, наоборот, – как обычный символ.
Чаще всего экранирующим символом служит обратная косая черта, и в этом случае зададим значение ESCAPED BY \. Тогда, например, записанное в файле значение «N» будет прочитано и загружено в базу данных как NULL. Другой пример: если значения в файле разделены запятыми, то экранирующий символ помещается перед запятой, которая должна восприниматься как часть значения, а не как разделитель, то есть последовательность символов «,» интерпретируется как символ запятой в значении.
Если параметр FIELDS не указан, программа MySQL считает, что значения в файле разделяются табуляцией и не заключаются ни в какие кавычки, а в качестве экранирующего символа используется обратная косая черта.
• LINES – укажите этот параметр, чтобы сообщить программе MySQL, в каком формате заданы строки в файле:
– STARTING BY <Префикс строки> – укажем последовательность символов в начале каждой строки, которая должна игнорироваться программой вместе со всеми предшествующими символами. После префикса должны начинаться значения;
– TERMINATED BY <Разделитель строк> – укажем символ, которым заканчиваются строки. Например, если строки заканчиваются символом перевода строки, укажем параметр TERMINATED BY n', если символом возврата каретки – укажем TERMINATED BY r', если сочетанием этих символов – укажем TERMINATED BY rn', если нулевым байтом – укажем TERMINATED BY .
Если параметр LINES не указан, программа MySQL считает, что строки в файле не имеют префикса и заканчиваются символом перевода строки «n».
• IGNORE <Количество строк в начале файла> LINES – укажите этот параметр, если первые несколько строк в файле не содержат значений (иными словами, являются заголовком) и при загрузке их нужно пропустить.
• (<Список столбцов>) – перечислите столбцы таблицы, в которые будут загружаться данные. Это необходимо, если файл содержит данные не для всех столбцов таблицы или порядок следования значений в файле отличается от порядка столбцов в таблице.
• SET <Имя столбца> = <Выражение> – вы можете записывать в столбцы не только значения из файла, но и значения, вычисленные с помощью выражений. Для этого создадим одну или несколько переменных, присвоим им считанные из файла значения и запишем в столбец значение выражения, использующего эти переменные. Пусть, например, имеется таблица t1 с числовым столбцом c1 и столбцом с2 с типом TIMESTAMP. В столбец c1 нужно загрузить значение из файла, если это значение не превосходит 1000, либо NULL, если значение в файле больше 1000, а в столбец c2 при этом нужно записать текущую дату и время. Это можно сделать с помощью команды
LOAD DATA INFILE 'С:/DATA/t1.txt'
INTO TABLE t1 (@var1)
SET c1 = IF(@var1< = 1000,@var1,NULL), c2 = CURRENT_TIMESTAMP;
(о функции IF и о других функциях, используемых в выражениях, рассказывается в главе 3).
Далее рассмотрим команду INSERT, с помощью которой также можно добавлять строки в таблицу.
Внимание! Это не конец книги.
Если начало книги вам понравилось, то полную версию можно приобрести у нашего партнёра - распространителя легального контента. Поддержите автора!Правообладателям!
Данное произведение размещено по согласованию с ООО "ЛитРес" (20% исходного текста). Если размещение книги нарушает чьи-либо права, то сообщите об этом.Читателям!
Оплатили, но не знаете что делать дальше?