Выборка данных

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

Оператор SELECT состоит из нескольких предложений. Некоторые из предложений являются обязательными, другие – нет.
Предложение обычно состоит из ключевого слова Зарезервированное слово, являющееся частью языка SQL и предоставляемых данных.

Упрощенный синтаксис оператора SELECT выглядит следующим образом:

SELECT [DISTINCT] [<table_name>.]<column_name> [,...]
FROM <table_name>
[WHERE <condition>]
[GROUP BY <column_name>[,... ]
[HAVING <condition>]
[ORDER_BY <column_name>|<column_number> [ASC | DESC][,...]

Выборка нескольких столбцов

Чтобы при помощи оператора SELECT извлечь данные из таблицы, нужно указать как минимум две вещи — что вы хотите выбрать и откуда.

Ключевое слово SELECT сообщает базе данных, что данное предложение является запросом на извлечение информации. После SELECT через запятую перечисляются названия полей, содержимое которых запрашивается. Обязательным ключевым словом в предложении-запросе SELECT является слово FROM. За ключевым словом FROM указывается список разделенных запятыми имен таблиц, из которых извлекается информация.

SQL:
SELECT name, lastname
FROM tbl_clients;

Результатом выполнения запроса на выборку всегда является таблица, содержащая выбранные записи. Приведенный выше запрос осуществляет выборку всех значений полей name и lastname из таблицы tbl_clients.

Порядок следования столбцов в этой таблице соответствует порядку полей, указанному в запросе, а не их порядку в исходной таблице.

Выборка всех столбцов таблицы

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

SQL:
SELECT * FROM tbl_clients;

Представленный оператор извлекает все столбцы из таблицы tbl_clients и отображает их в соответствии с порядком, в котором они были определены при создании таблицы. При использовании символа "*" столбцы возвращаются в том порядке, в котором они были определены при создании таблицы.

Исключение дубликатов строк

Получаемые в результате SQL-запроса таблицы могут содержать повторяющиеся строки. Например, запрос для получения списка названий городов, где проживают клиенты, можно записать в следующем виде:

SQL:
SELECT region FROM tbl_clients

Его результатом будет таблица:

region
Portland
Seattle
Seattle
New Jersey
Seattle
Seattle
Washington
Los Angeles
......

Проблема состоит в том, что в набор результатов этого запроса включается каждое появление каждого названия города, обнаруженного в таблице tbl_clients. Например, если имеется 20 человек из, Сиэтла, 7 человек из Вашингтона и 3 из Лос-Анджелеса, то в наборе результатов будет 20 раз упомянут Сиэтл, 7 раз Вашингтон и 3-Вашингтон. Очевидно, что эта избыточная информация не нужна.

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

Предыдущий запрос можно записать в следующем виде:

SQL:
SELECT DISTINCT region FROM tbl_clients

В результате получим таблицу, в которой дубликаты строк исключены:

region
Portland
Seattle
New Jersey
Washington
Los Angeles
California
Oregon
New York