Чтобы результат запроса был сохранен в файл, добавьте в команду SELECT выражение
INTO OUTFILE \'Путь и имя файла\' [FILEDS …] [LINES …]
В этой команде нужно указать полный путь к файлу, в который будут выгружены данные (этот файл должен быть новым, не существующим на момент выгрузки). При задании пути к файлу необходимо использовать прямую косую черту вместо принятой в Windows обратной косой черты. Указанный файл создается на компьютере, на котором работает сервер MySQL. Данные выгружаются в той кодировке, в которой они хранятся в базе данных.
При необходимости вы можете также задать параметры FILEDS и LINES, которые имеют тот же смысл, что и параметры FILEDS и LINES команды LOAD DATA (см. подраздел «Загрузка данных из файла»). Если впоследствии файл будет загружаться в базу данных MySQL с помощью команды LOAD DATA, то в команде LOAD DATA нужно будет указать те же самые значения параметров FILEDS и LINES, которые использовались при выгрузке.
Команды SELECT… INTO OUTFILE и LOAD DATA можно использовать для резервного копирования таблиц или для переноса данных на другой сервер MySQL. Например, данные из таблицы Customers (Клиенты), сохраненные в файл с помощью команды
SELECT * from Customers INTO OUTFILE \'C:/data/Customers.txt\
можно загрузить в таблицу Customers_copy (имеющую такую же структуру, что и таблица Customers) с помощью команды
LOAD DATA INFILE \'C:/data/Customers.txt\' INTO TABLE Customers_copy;
...
Внимание!
В случае выгрузки и последующей загрузки символьных данных в кодировке UTF-8 могут возникнуть проблемы, связанные с переменным количеством байтов на символ в этой кодировке. Если вы выгрузили данные из таблицы с кодировкой UTF-8, рекомендуем перед загрузкой преобразовать файл в какую-либо однобайтовую кодировку. Например, откроем файл с помощью программы Блокнот (Пуск → Все программы → Стандартные → Блокнот), в меню Файл выберите команду Сохранить как, а затем в стандартном окне Windows Сохранить как в поле Кодировка выберите из списка значение «ANSI» и нажмите кнопку Сохранить. При загрузке преобразованного файла укажите в команде LOAD DATA параметр CHARACTER SET cp1251 (см. подраздел «Вставка отдельных строк»).
Итак, вы освоили команду SELECT, которая предоставляет широкие возможности поиска и отбора данных. Последняя операция, которую мы обсудим в этой главе, – редактирование данных в таблицах.
В этом разделе вы познакомитесь с командами изменения, замещения и удаления строк таблицы. Начнем с рассмотрения команды UPDATE, которая позволяет установить новые значения в одной или нескольких строках, например, следующим образом:
UPDATE <���Имя таблицы>
SET <���Имя столбца 1> = <���Значение 1>,
…,
<���Имя столбца N> = <���Значение N>
[WHERE <���Условие отбора>]
[ORDER BY <���Имя столбца> [ASC или DESC]]
[LIMIT <���Количество строк>];
Например, если у клиента по фамилии Крылов изменился номер телефона, то обновить информацию в базе данных можно с помощью команды
UPDATE Customers SET phone = \'444-25-27\' WHERE id = 536;
В команде UPDATE используются следующие основные параметры:
• имя редактируемой таблицы;
• SET <���Имя столбца 1> = <���Значение 1>, … , <���Имя столбца N> = <���Знaчение N> – список столбцов и новых значений для этих столбцов. Более подробную информацию о вставке значений в таблицу и о режимах взаимодействия с сервером MySQL вы можете найти в подразделе «Вставка отдельных строк». Задать новое значение вы можете также с помощью выражения, использующего прежние значения в строке. Например, удвоить рейтинги для всех клиентов можно с помощью команды
UPDATE Customers SET rating = rating*2;
• WHERE <���Условие отбора> – укажите условие отбора, чтобы изменения были применены только к тем строкам таблицы, которые удовлетворяют этому условию. Если условие отбора не задано, изменения будут применены ко всем строкам таблицы. Условия отбора мы рассматривали в подразделе «Условия отбора». В условиях отбора можно использовать вложенный запрос (см. подраздел «Вложенные запросы»), который не должен обращаться к самой модифицируемой таблице.
• ORDER BY <���Имя столбца> [ASC или DESC] – при необходимости вы можете указать, в каком порядке применять изменения к строкам таблицы. Обычно порядок применения изменений не влияет на результат выполнения операции. Однако в некоторых случаях последовательность действий может быть важна. Например, если вы установили предельное количество изменяемых строк (см. следующий пункт), то некоторые строки, удовлетворяющие условию отбора, могут остаться неизменными, а какие именно это будут строки – зависит от последовательности применения изменений. Другим подобным случаем является обновление значений первичного ключа или уникального индекса, которые не должны содержать повторяющихся значений, а наличие или отсутствие повторяющихся значений в столбце может зависеть от порядка применения изменений.
Читать дальше
Конец ознакомительного отрывка
Купить книгу