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

Во вложенном запросе групповая функция MAX возвращает наибольшее из значений столбца amount (сумма) таблицы Orders (Заказы) – в данном случае 22 000. Внешний запрос, в свою очередь, выводит те строки таблицы Orders, в которых значение столбца amount равно значению, выданному подзапросом, то есть 22 000 (табл. 2.15). Таблица 2.15. Результат выполнения запроса

О других групповых функциях, а также об операторах, используемых для обработки результатов подзапроса, вы узнаете в главе 3.

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

В следующем подразделе мы рассмотрим еще один способ совместного использования запросов – объединение запросов.

Объединение результатов запросов

Чтобы объединить несколько запросов в одну SQL-команду и, соответственно, объединить результаты запросов, используется ключевое слово UNION. Запросы, объединяемые с помощью UNION, должны выводить одинаковое количество столбцов, и типы данных столбцов должны быть совместимы. При объединении результатов автоматически удаляются повторяющиеся строки; чтобы запретить удаление повторяющихся строк, вместо слова UNION нужно использовать выражение UNION ALL. Наконец, строки объединенного запроса можно упорядочить с помощью выражения ORDER BY. В качестве примера рассмотрим запрос, выводящий информацию о заказах с наибольшей и наименьшей суммой заказа:

SELECT * FROM Orders

WHERE amount = (SELECT MAX(amount) FROM Orders)

UNION

SELECT * FROM Orders

WHERE amount = (SELECT MIN(amount) FROM Orders)

ORDER BY 1;

Результатом выполнения этого запроса будет следующий набор данных (табл. 2.16). Таблица 2.16. Результат выполнения запроса

Первый запрос возвращает строку таблицы Orders, в которой значение поля amount максимально (это строка с id = 1013), второй – строку, в которой значение поля amount минимально (это строка с id = 1012), и при упорядочении по значению столбца id строки меняются местами.

Итак, мы рассмотрели основные возможности поиска и отбора данных, предоставляемые командой SELECT. Далее рассмотрим, как выгружать результат запроса в файл.

Выгрузка данных в файл

Чтобы результат запроса был сохранен в файл, добавьте в команду 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) с помощью команды

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

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

1С: Управление торговлей 8.2
1С: Управление торговлей 8.2

Современные торговые предприятия предлагают своим клиентам широчайший ассортимент товаров, который исчисляется тысячами и десятками тысяч наименований. Причем многие позиции могут реализовываться на разных условиях: предоплата, отсрочка платежи, скидка, наценка, объем партии, и т.д. Клиенты зачастую делятся на категории – VIP-клиент, обычный клиент, постоянный клиент, мелкооптовый клиент, и т.д. Товарные позиции могут комплектоваться и разукомплектовываться, многие товары подлежат обязательной сертификации и гигиеническим исследованиям, некондиционные позиции необходимо списывать, на складах периодически должна проводиться инвентаризация, каждая компания должна иметь свою маркетинговую политику и т.д., вообщем – современное торговое предприятие представляет живой организм, находящийся в постоянном движении.Очевидно, что вся эта кипучая деятельность требует автоматизации. Для решения этой задачи существуют специальные программные средства, и в этой книге мы познакомим вам с самым популярным продуктом, предназначенным для автоматизации деятельности торгового предприятия – «1С Управление торговлей», которое реализовано на новейшей технологической платформе версии 1С 8.2.

Алексей Анатольевич Гладкий

Финансы / Программирование, программы, базы данных
97 этюдов для архитекторов программных систем
97 этюдов для архитекторов программных систем

Успешная карьера архитектора программного обеспечения требует хорошего владения как технической, так и деловой сторонами вопросов, связанных с проектированием архитектуры. В этой необычной книге ведущие архитекторы ПО со всего света обсуждают важные принципы разработки, выходящие далеко за пределы чисто технических вопросов.?Архитектор ПО выполняет роль посредника между командой разработчиков и бизнес-руководством компании, поэтому чтобы добиться успеха в этой профессии, необходимо не только овладеть различными технологиями, но и обеспечить работу над проектом в соответствии с бизнес-целями. В книге более 50 архитекторов рассказывают о том, что считают самым важным в своей работе, дают советы, как организовать общение с другими участниками проекта, как снизить сложность архитектуры, как оказывать поддержку разработчикам. Они щедро делятся множеством полезных идей и приемов, которые вынесли из своего многолетнего опыта. Авторы надеются, что книга станет источником вдохновения и руководством к действию для многих профессиональных программистов.

Билл де Ора , Майкл Хайгард , Нил Форд

Программирование, программы, базы данных / Базы данных / Программирование / Книги по IT