Сортировка вывода

Использование условий для отбора данных

Ключевое слово FROM

Ключевое слово FROM всегда используется с оператором SELECT. Это ключевое слово является обязательным элементом запроса. Целью задаваемого с помощью FROM выражения является сообщение базе данных о том, из какой таблицы или таблиц должны извлекаться данные. Выражение FROM может включать как одну, так и несколько таблиц.

Синтаксис задаваемого с помощью FROM выражения следующий.

FROM ТАБЛИЦА1 [, ТАБЛИЦА2 ]

Условиеэто часть запроса, содержащая информацию, на основе которой отбираются данные. Условие может принимать либо значение TRUE, либо значение FALSE, что и используется для отбора. Выражение WHERE используется в запросах для исключения из рассмотрения некоторых строк из тех, что при отсутствии условий были бы включены в результаты запроса.

В выражении WHERE может содержаться несколько условий. Если условий несколько, они связываются операциями AND и OR, обсуждение которых предполагается в ходе урока «Операции в условиях для отбора данных». Из того же урока вы узнаете об использовании логических операций, с помощью которых можно конструировать условия в запросах. В ходе данного урока мы будем рассматривать только запросы с одним условием.

Операцияэто символ или ключевое слово SQL, использующееся для связывания элементов в операторе SQL.

Синтаксис оператора SELECT, использующего выражение WHERE следующий.

SELECT [ ALL | * | DISTINCT СТОЛБЕЦ1, СТОЛБЕЦ2 ] FROM ТАБЛИЦА1 [ , ТАБЛИЦА2 ] WHERE [ УСЛОВИЕ1 | ВЫРАЖЕНИЕ1] [ AND УСЛОВИЕ2 | ВЫРАЖЕНИЕ2 ];

Вот простой запрос без использования ключевого слова WHERE.

SELECT * FROM PRODUCTS_TBL;

Добавим в тот же запрос условие.

SELECT * FROM PRODUCTS_TBL WHERE COST < 5;

PROD_ID PROD_DESC COST

13 ИСКУССТВЕННЫЕ ПАРАФИНОВЫЕ ЗУБЫ 1.1

9 СЛАДКАЯ КУКУРУЗА 1.35

6 ТЫКВЕННЫЕ КОНФЕТЫ 1.45

87 ПЛАСТИКОВЫЕ ПАУКИ 1.05

119 МАСКИ В АССОРТИМЕНТЕ 4.95

Теперь показаны только строки с информацией о товарах стоимостью меньше $5. С помощью следующего запроса извлекается информация о товаре с кодовым номером 119.

SELECT PROD_DESC, COST FROM PRODUCTS_TBL WHERE PROD_ID = '119';

PROD_DESC COST

МАСКИ В АССОРТИМЕНТЕ 4.95

Обычно требуется, чтобы выводимые данные были как-то упорядочены. Выводимые данные можно упорядочить с помощью выражения, связанного с ключевым словом ORDER BY. Упорядочение, задаваемое с помощью ключевого слова ORDER BY, по умолчанию будет упорядочением по возрастанию, обозначается A–Z (А–Я) в случае сортировки имен. Алфавитное упорядочение по убыванию соответствует порядку Z–А (Я–А). Для числовых значений между 1 и 9 упорядочение по возрастанию обозначается 1-9, а по убыванию – 9-1.

Синтаксис оператора SELECT, использующего выражение ORDER BY, следующий.

SELECT [ALL | * | DISTINCT СТОЛБЕЦ1, СТОЛБЕЦ2]

FROM ТАБЛИЦА1 [, ТАБЛИЦА2]

WHERE [УСЛОВИЕ1 | ВЫРАЖЕНИЕ1 ] [ AND УСЛОВИЕ2 | ВЫРАЖЕНИЕ2 ]

ORDER BY СТОЛБЕЦ1 | ЦЕЛОЕ_ЗНАЧЕНИЕ [ASC | DESC];

Для примера использования ключевого слова ORDER BY расширим один из использовавшихся выше операторов. Отсортируем вывод по описаниям товаров в порядке возрастания (алфавитном порядке). Обратите внимание на использование опции ASC. В выражении, задаваемом ключевым словом ORDER BY, эта опция может указываться после имени каждого из столбцов.

SELECT PROD_DESC, PROD_ID, COST

FROM PRODUCTS_TBL

WHERE COST < 20

ORDER BY PROD_DESC ASC;

 

PROD_DESC PROD_ID COST

ИСКУССТВЕННЫЕ ПАРАФИНОВЫЕ ЗУБЫ 13 1.1

КОСТЮМЫ В АССОРТИМЕНТЕ 15 10

МАСКИ В АССОРТИМЕНТЕ 119 4.95

ПЛАСТИКОВЫЕ ПАУКИ 87 1.05

ПЛАСТИКОВЫЕ ТЫКВЫ 222 7.75

СЛАДКАЯ КУКУРУЗА 9 1.35

ТЫКВЕННЫЕ КОНФЕТЫ б 1.45

ФОНАРИ 90 , 14.5

Ввиду того, что порядок по возрастанию является порядком, принимаемым по умолчанию, нет необходимости указывать ASC вообще.

Можно также использовать DESC, как это сделано в следующем примере, чтобы отсортировать вывод в порядке, обратном алфавитному.

SELECT PRODJDESC, PROD_ID, COST

FROM PRODUCTS_TBL

WHERE COST < 20

ORDER BY PROD_DESC DESC;

 

PROD_DESC PROD_ID COST

ФОНАРИ 90 14.5

ТЫКВЕННЫЕ КОНФЕТЫ 6 1.45

СЛАДКАЯ КУКУРУЗА 9 1.35

ПЛАСТИКОВЫЕ ТЫКВЫ 222 7.75

ПЛАСТИКОВЫЕ ПАУКИ 87 1.05

МАСКИ В АССОРТИМЕНТЕ 119 4.95

КОСТЮМЫ В АССОРТИМЕНТЕ 15 10

ИСКУССТВЕННЫЕ ПАРАФИНОВЫЕ ЗУБЫ 13 1.1

В SQL предлагаются и некоторые сокращения. Столбец, указанный в списке ключевого слова ORDER BY, можно заменить числом. ЦЕЛОЕ_ЗНАЧЕНИЕ является значением, замещающим действительное имя столбца и соответствующим порядку столбца в списке после ключевого слова SELECT. Вот пример использования числового идентификатора вместо имени столбца.

SELECT PROD_DESC, PROD_ID, COST FROM PRODUCTS_TBL WHERE COST < 20 ORDER BY 1;

В этом запросе целое значение 1 представляет столбец PROD_DESC. Точно так же 2 представляет столбец PROD_ID, 3 – COST и т. д.

Можно задать упорядочение по нескольким столбцам, используя либо имена столбцов, либо соответствующие им в списке SELECT номера:

ORDER BY 1, 2, 3

Столбцы в выражении ORDER BY не обязательно должны быть в том же порядке, каком они указаны в списке после ключевого слова SELECT, например, как в случае ORDER BY 1,3,2