Примеры
Следующая инструкция выбирает столбцы из таблицы:
SELECT JOB_GRADE, JOB_CODE, JOB_COUNTRY, MAX_SALARY FROM PROJECT;
Следующая инструкция использует шаблон *, что бы выбрать все столбцы и строки из таблицы:
SELECT * FROM COUNTRIES;
Следующая инструкция использует агрегатную функцию, что бы сосчитать все строки в таблице, которые удовлетворяют условиям поиска определенным в предложении WHERE:
SELECT COUNT (*) FROM COUNTRY
WHERE POPULATION > 5000000;
Следующая инструкция устанавливает псевдоним таблицы в предложении SELECT и использует его для идентификации столбцов в предложении WHERE:
SELECT C.CITY FROM CITIES C
WHERE C.POPULATION < 1000000;
Следующая инструкция выбирает два столбца и сортирует возвращенные строки по второму столбцу:
SELECT CITY, STATE FROM CITIES
ORDER BY STATE;
Следующая инструкция выполняет левое объединение:
SELECT CITY, STATE_NAME FROM CITIES C
LEFT JOIN STATES S ON S.STATE = C.STATE
WHERE C.CITY STARTING WITH "San";
Следующая инструкция определяет план оптимизации запроса для упорядоченного поиска, использование индекса для упорядочивания:
SELECT * FROM CITIES ORDER BY CITY
PLAN (CITIES ORDER CITIES_1);
|
|
Следующая инструкция определяет план оптимизации запроса основывающийся на тройном объединении с двумя индексированными равенствами столбцов:
SELECT * FROM CITIES C, STATES S, MAYORS M
WHERE C.CITY = M.CITY AND C.STATE = M.STATE
PLAN JOIN (STATE NATURAL, CITIES INDEX DUPE_CITY,
MAYORS INDEX MAYORS_1);
В операторе SELECT ключевое слово SELECT используется в совокупности с ключевым словом FROM для того, чтобы организовать извлечение данных из базы данных в удобном для чтения формате. Часть запроса, заданная ключевым словом SELECT, определяет источник отбора данных.
Синтаксис простого оператора SELECT следующий.
SELECT [ * | ALL | DISTINCT СТОЛБЕЦ1, СТОЛБЕЦ2 ] FROM ТАБЛИЦА1 [, ТАБЛИЦА2 ];
За ключевым словом SELECT в запросе следует список столбцов, значения которых вы хотели бы видеть в результате запроса. За ключевым словом FROM следует список таблиц, из которых должны извлекаться данные. Звездочка (*) используется для указания того, что в результате запроса должны быть показаны значения всех столбцов таблицы. По поводу ее использования обратитесь к документации той реализации SQL, с которой работаете вы. Опция ALL используется тогда, когда нужно показать все значения столбца, включая и повторяющиеся. Опция DISTINCT используется для того, чтобы повторения исключить. Из этих опций используемой по умолчанию опцией является ALL, которую поэтому указывать не обязательно. Обратите внимание на то, что имена столбцов в списке, следующем за ключевым словом SELECT, разделяются запятыми, точно так же, как имена таблиц, следующие за ключевым словом FROM.
В операторах SQL запятые используются для разделения аргументов в списках. Это могут быть, например, списки с именами столбцов в запросах, списки с именами таблиц, списки значений, помещаемых в таблицу или списки значений, задающих условия с ключевым словом WHERE.
|
|
Аргументы – это значения, предусмотренные в синтаксисе оператора или команды SQL. Аргументы могут быть как обязательными, так и необязательными.
Основные возможности оператора SELECT раскрываются в следующих примерах.
Выполним простой запрос по отношению к таблице PRODUCTS_TBL:
SELECT * FROM PRODUCTS_TBL;
Звездочка означает выбор всех столбцов таблицы, которая, как видите, состоит из трех столбцов PROD_ID, PROD_DESC и COST. При выводе столбцы показываются в том порядке, в котором они расположены в таблице. В данной таблице 11 записей, на что указывает последняя строка вывода. Содержимое этой строки зависит от конкретной реализации SQL, например, в Oracle это будет 11 rows selected, а в другой реализации эта строка может выглядеть как 11 rows affected.
Теперь выберем данные из таблицы CANDY_TBL. Создадим эту таблицу из таблицы PRODUCTS_TBL специально для данного примера. Чтобы показать данные только одного столбца, укажем имя столбца после ключевого слова SELECT
SELECT PROD_DESC FROM CANDY_TBL;
PROD_DESC
СЛАДКАЯ КУКУРУЗА
СЛАДКАЯ КУКУРУЗА
ШОКОЛАД HERSHEYS
СНИКЕРС
В таблице CANDY_TBL четыре записи. В следующем примере для отображения всех записей используется опция ALL, чтобы показать, что эта опция необязательна и вообще лишняя. Нет необходимости указывать ALL, поскольку эта опция подразумевается по умолчанию.
SELECT ALL PROD_DESC FROM CANDY_TBL;
В следующем операторе использована опция DISTINCT, чтобы подавить вывод повторяющихся строк. Обратите внимание на то, что здесь значение СЛАДКАЯ КУКУРУЗА напечатано только один раз.
SELECT DISTINCT PROD_DESC FROM CANDY_TBL;
PROD_DESC
СЛАДКАЯ КУКУРУЗА
ШОКОЛАД HERSHEYS
СНИКЕРС
При использовании DISTINCT и ALL можно заключить имя соответствующего столбца в круглые скобки. Скобки часто используются в SQL, как и во многих других языках, для удобства чтения операторов.
SELECT DISTINCT (PROD_DESC) FROM CAHDY_TBL;