Основные возможности оператора SELECT раскрываются в следующих примерах.
Давайте сначала выполним простой запрос по отношению к таблице PRODUCT S_TBL:
SELECT * FROM PRODUCTSJTBL;
PROD_ID PROD_DESC COST
11235 КОСТЮМ ВЕДЬМЫ 29.99
222 ПЛАСТИКОВЫЕ ТЫКВЫ 7.75
13 ИСКУССТВЕННЫЕ ПАРАФИНОВЫЕ ЗУБЫ 1.1
90 ФОНАРИ 14.5
11 строк выбраны.
Звездочка означает выбор всех столбцов таблицы, которая, как видите, состоит из трех столбцов PROD_ID, PROD_DESC и COST. При выводе столбцы показываются в том порядке, в котором они расположены в таблице. В данной таблице 11 записей, на что указывает последняя строка вывода. Содержимое этой строки зависит от конкретной реализации SQL, например, в Oracle это будет 11 rows selected, а в другой реализации эта строка может выглядеть как 11 rows affected.
Теперь выберем данные из таблицы CANDY_TBL. Создадим эту таблицу из таблицы PRODUCTSJTBL специально для данного примера. Чтобы показать данные только одного столбца, укажем имя столбца после ключевого слова SELECT
SELECT PROD_DESC FROM CANDYJTBL;
PROD_DESC
СЛАДКАЯ КУКУРУЗА
СЛАДКАЯ КУКУРУЗА
ШОКОЛАД HERSHEYS
СНИКЕРС
4 строки выбраны.
В таблице CANDY_TBL четыре записи. В следующем примере для отображения всех записей используется опция ALL, чтобы показать, что эта опция необязательна и вообще лишняя. Нет необходимости указывать ALL, поскольку эта опция подразумевается по умолчанию.
SELECT ALL PROD_DESC FROM CANDYJTBL;
PROD_DESC
СЛАДКАЯ КУКУРУЗА
СЛАДКАЯ КУКУРУЗА
ШОКОЛАД HERSHEYS
СНИКЕРС
4 строки выбраны.
В следующем операторе использована опция DISTINCT, чтобы подавить вывод повторяющихся строк. Обратите внимание на то, что здесь значение СЛАДКАЯ КУКУРУЗА напечатано только один раз.
SELECT DISTINCT PROD_DESC FROM CANDYJTBL;
PROD_DESC
СЛАДКАЯ КУКУРУЗА
ШОКОЛАД HERSHEYS
СНИКЕРС
3 строки выбраны.
При использовании DISTINCT и ALL можно заключить имя соответствующего столбца в круглые скобки. Скобки часто используются в SQL, как и во многих других языках, для удобства чтения операторов.
SELECT DISTINCT(PROD_DESC) FROM CAHDYJTBL;
PROD_DESC
СЛАДКАЯ КУКУРУЗА
ШОКОЛАД HERSHEYS
СНИКЕРС
3 строки выбраны.
Ключевое слово FROM
Ключевое слово FROM всегда используется с оператором SELECT. Это ключевое слово является обязательным элементом запроса. Целью задаваемого с помощью FROM выражения является сообщение базе данных о том, из какой таблицы или таблиц должны извлекаться данные. Выражение FROM может включать как одну, так и несколько таблиц.
Синтаксис задаваемого с помощью FROM выражения следующий.
FROM ТАБЛИЦА1 [ , ТАБЛИЦА2 ]
Использование условий для отбора данных
Условие - это часть запроса, содержащая информацию, на основе которой отбираются данные. Условие может принимать либо значение TRUE, либо значение FALSE, что и используется для отбора. Выражение WHERE используется в запросах для исключения из рассмотрения некоторых строк из тех, что при отсутствии условий были бы включены в результаты запроса.
В выражении WHERE может содержаться несколько условий. Если условий несколько, они связываются операциями AND и OR, обсуждение которых предполагается в ходе урока 8, "Операции в условиях для отбора данных". Из того же урока вы узнаете об использовании логических операций, с помощью которых можно конструировать условия в запросах. В ходе данного урока мы будем рассматривать только запросы с одним условием.
Операция - это символ или ключевое слово SQL, использующееся для связывания элементов в операторе SQL.
Синтаксис оператора SELECT, использующего выражение WHERE следующий.
SELECT [ ALL | * | DISTINCT СТОЛБЕЦ!, СТОЛБЕЦ2 ] FROM ТАБЛИЦА! [ , ТАБЛИЦА2 ] WHERE [ УСЛОВИЕ! | ВЫРАЖЕНИЕ! ] [ AND УСЛОВИЕ2 | ВЫРАЖЕНИЕ2 ];
Вот простой запрос без использования ключевого слова WHERE.
SELECT *
FROM PRODUCTS_TBL;
PROD_ID PROD_DESC COST
11235 КОСТЮМ ВЕДЬМЫ 29.99
222 ПЛАСТИКОВЫЕ ТЫКВЫ 7.75
13 ИСКУССТВЕННЫЕ ПАРАФИНОВЫЕ ЗУБЫ 1.1
90 ФОНАРИ 14.5
15 КОСТЮМЫ В АССОРТИМЕНТЕ 10
9 СЛАДКАЯ КУКУРУЗА 1.35
6 ТЫКВЕННЫЕ КОНФЕТЫ 1.45
87 ПЛАСТИКОВЫЕ ПАУКИ 1.05
119 МАСКИ В АССОРТИМЕНТЕ 4.95
1234 ЦЕПОЧКА ДЛЯ КЛЮЧЕЙ 5.95
2345 ПОЛОЧКА ИЗ ДУБА 59.99
11 строк выбраны.
Добавим в тот же запрос условие.
SELECT * FROM PRODUCTSJTBL WHERE COST < 5;
PROD_ID PROD_DESC COST
13 ИСКУССТВЕННЫЕ ПАРАФИНОВЫЕ ЗУБЫ 1.1
9 СЛАДКАЯ КУКУРУЗА 1.35
6 ТЫКВЕННЫЕ КОНФЕТЫ 1.45
87 ПЛАСТИКОВЫЕ ПАУКИ 1.05
119 МАСКИ В АССОРТИМЕНТЕ 4.95
5 строк выбраны.
Теперь показаны только строки с информацией о товарах стоимостью меньше $5. С помощью следующего запроса извлекается информация о товаре с кодовым номером 119.
Читать дальше