Читаем SQL: быстрое погружение полностью

Предположим, что службе поддержки необходим список клиентов sTunes. Целесообразно упорядочить полученные результаты по фамилии клиентов. Чтобы сделать это, надо использовать новое условие после условия FROM. Условие ORDERBY используется для сортировки данных в порядке возрастания или убывания на основе одного или нескольких столбцов. По умолчанию данные будут отсортированы в порядке возрастания от A до Z. Специальное ключевое слово ASC, определяющее порядок сортировки, необязательно. Для сортировки в порядке убывания от Z до A необходимо после сортируемого поля добавить ключевое слово DESC. Например, запрос ORDERBYLastNameDESC сортирует столбец с псевдонимом LastName в порядке убывания.

/*

CREATED BY: Уолтер Шилдс

CREATED ON: 13.03.2018

DESCRIPTION: Данный запрос осуществляет выборку полей имени, фамилии и электронной почты из таблицы customers (клиенты), отсортированных

по фамилии (Last Name).

*/

SELECT

FirstName AS [First Name],

LastName AS [Last Name],

Email AS [EMAIL]

FROM

customers

ORDER BY

LastName ASC

Рис. 37

Примечание

Если условие ORDER BY отсутствует, каждый запрос будет возвращать данные в том порядке, в котором они были изначально сохранены в таблице.

Рис. 38

Также условие ORDERBY мы можем использовать для сортировки по нескольким столбцам. В данном примере мы выполним сначала сортировку по имени (по алфавиту), а затем по фамилии (в обратном порядке). Для этого нам необходимо в условии ORDERBY указать два поля. При перечислении нескольких полей их необходимо разделять запятыми.

/*

CREATED BY: Уолтер Шилдс

CREATED ON: 13.03.2018

DESCRIPTION: Данный запрос осуществляет выборку полей имени, фамилии и электронной почты из таблицы customers (клиенты), отсортированных сначала по имени (по возрастанию), а затем по фамилии (по убыванию).

*/

SELECT

FirstName AS [First Name],

LastName AS [Last Name],

Email AS [EMAIL]

FROM

customers

ORDER BY

FirstName ASC,

LastName DESC

Выполним данный запрос и проанализируем имена клиентов, начинающиеся с буквы D. Мы видим, что имена расположены по алфавиту, а фамилии — в обратном порядке.

Примечание

Если вы используете условие ORDER BY для столбца, в котором имеются пустые строки, вы увидите, что эти значения будут отображаться в начале списка как NULL (если сортировка осуществляется в порядке возрастания).

<p id="практические_задания_2">Практические задания</p>

• Измените порядок полей в условии SELECT и установите LastName первым столбцом, а не вторым. Выполните запрос, в результате которого будут получены упорядоченные записи LastName. Стал ли список более читабельным?

<p id="_7_xhtml_2523toc_marker_7_7"><strong>Получение ограниченного числа записей с помощью условия LIMIT</strong></p>

В предыдущих примерах мы осуществляли выборку всех записей из таблицы customers. Хотя мы ограничили наши записи тремя полями и отсортировали эти поля, в панели сообщений мы видим, что каждый раз мы возвращаем 59 строк. Если нет необходимости в просмотре всех 59 записей, мы можем ограничить наши результаты определенным количеством строк. Это бывает полезно при сортировке по количеству (которое мы продемонстрируем позже), например по самой высокой цене или самым большим продажам. Если после условия ORDERBY мы добавим ключевые слова LIMIT10, в результате вернутся только первые десять записей в указанном порядке сортировки. Можно указать любое число записей, которое необходимо отобразить (при условии, что в таблице имеется такое количество записей).

/*

CREATED BY: Уолтер Шилдс

CREATED ON: 13.03.2018

DESCRIPTION: Данный запрос осуществляет выборку первых 10 записей из таблицы customers (клиентов), отсортированных сначала по имени (по возрастанию), а затем по фамилии (по убыванию).

*/

SELECT

FirstName AS [First Name],

LastName AS [Last Name],

Email AS [EMAIL]

FROM

customers

ORDER BY

FirstName ASC,

LastName DESC

LIMIT 10

Рис. 39

На нашей панели сообщений (рис. 39) теперь появилось сообщение: 10 rows returned in 1ms (10 строк вернулось за 1 мс). Сначала запрос выполняет условие ORDERBY, а затем применяет ограничение.

Примечание

Нет необходимости всегда использовать условие LIMIT вместе с ORDER BY. В большинстве случаев имеет смысл упорядочить результаты по определенным критериям, прежде чем ограничивать их. Если условие ORDER BY не используется, результаты оператора LIMIT будут возвращены в том порядке, в котором они были изначально добавлены в таблицу.

<p id="_7_xhtml_2523toc_marker_7_8"><strong>Контрольные вопросы</strong></p>

1. Напишите запрос, чтобы узнать количество клиентов, фамилии которых начинаются с буквы B.

2. Какая компания при сортировке в порядке убывания появляется в верхней строке таблицы customers?

3. Какое количество клиентов не указали почтовый индекс?

<p id="_7_xhtml_2523toc_marker_7_9"><strong>Резюме</strong></p>

• Рекомендуется добавлять комментарии к запросам. Базовый блок комментариев может содержать имя разработчика, дату создания запроса и краткое описание запроса.

• При написании запроса полезно сначала сформулировать вопрос на человеческом языке, а затем определить необходимые ключевые слова и условия.

• Запрос обычно начинается с условия SELECT, которое указывает, какие поля выводить из таблицы, указанной в условии FROM.

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

Все книги серии Библиотека программиста

Программист-фанатик
Программист-фанатик

В этой книге вы не найдете описания конкретных технологий, алгоритмов и языков программирования — ценность ее не в этом. Она представляет собой сборник практических советов и рекомендаций, касающихся ситуаций, с которыми порой сталкивается любой разработчик: отсутствие мотивации, выбор приоритетов, психология программирования, отношения с руководством и коллегами и многие другие. Подобные знания обычно приходят лишь в результате многолетнего опыта реальной работы. По большому счету перед вами — ярко и увлекательно написанное руководство, которое поможет быстро сделать карьеру в индустрии разработки ПО любому, кто поставил себе такую цель. Конечно, опытные программисты могут найти некоторые идеи автора достаточно очевидными, но и для таких найдутся темы, которые позволят пересмотреть устоявшиеся взгляды и выйти на новый уровень мастерства. Для тех же, кто только в самом начале своего пути как разработчика, чтение данной книги, несомненно, откроет широчайшие перспективы. Издательство выражает благодарность Шувалову А. В. и Курышеву А. И. за помощь в работе над книгой.

Чед Фаулер

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

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

1С: Бухгалтерия 8 с нуля
1С: Бухгалтерия 8 с нуля

Книга содержит полное описание приемов и методов работы с программой 1С:Бухгалтерия 8. Рассматривается автоматизация всех основных участков бухгалтерии: учет наличных и безналичных денежных средств, основных средств и НМА, прихода и расхода товарно-материальных ценностей, зарплаты, производства. Описано, как вводить исходные данные, заполнять справочники и каталоги, работать с первичными документами, проводить их по учету, формировать разнообразные отчеты, выводить данные на печать, настраивать программу и использовать ее сервисные функции. Каждый урок содержит подробное описание рассматриваемой темы с детальным разбором и иллюстрированием всех этапов.Для широкого круга пользователей.

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

Программирование, программы, базы данных / Программное обеспечение / Бухучет и аудит / Финансы и бизнес / Книги по IT / Словари и Энциклопедии
1С: Управление торговлей 8.2
1С: Управление торговлей 8.2

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

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

Финансы / Программирование, программы, базы данных