Ключевые слова all| distinct

Раздел SELECT

Извлечение данных — команда SELECT

Управление данными

Целью любой системы управления базами данных в конечном счете является ввод, изменение, удаление и выборка данных. Рассмотрим методы управления данными с помощью языка SQL.

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

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

SELECT <Список выбора>

[ INTO <Новая_таблица>]

FROM <Исходная_таблица>

[WHERE <Условие_отбора>]

[GROUP BY <Ключи группировки>]

[HAVING <Условие_отбора>]

[ORDER BY <Ключи сортировки> ASC|DESC] ]

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


SELECT

INTO

FROM

WHERE

GROUP BY

HAVING

UNION

ORDER BY

COMPUTE

FOR

OPTION


Основное назначение раздела SELECT (одного из двух обязательных разделов, которые должны указываться в любом запросе) задание набора столбцов, возвращаемых после выполнения запроса т. е. внешнего вида результата. В простейшем случае возвращается столбец одной из таблиц, участвующих в запросе. В более сложных ситуациях набор значений в столбце формируется как результат вычисления выражения. Такие столбцы называются вычисляемыми и по умолчанию им не присваивается никакого имени.

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

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

SELECT [ ALL| DISTINT]

[ТОР n [PERCENT]]

<Список_выбора>

Рассмотрим назначение параметров.

При указании ключевого слова ALL в результат запроса выводятся все строки, удовлетворяющие сформулированным условиям, тем самым разрешается включение в результат одинаковых строк (одинаковость строк определяется на уровне результата отбора, а не на уровне исходных данных). Параметр ALL используется по умолчанию.

Если в запросе SELECT указывается ключевое слово DISTINCT, то в результат выборки не будет включаться более одной повторяющейся строки. Таким образом, каждая возвращенная строка будет уникальной. Уникальность строки при этом определяется на уровне строк результата выборки, а не на уровне исходных данных. Если в результат выборки включаются два столбца, уникальность будет определяться по значениям обоих этих столбцов. В отдельности значения в первом и втором столбцах могут повторяться, но комбинация значений в обоих столбцах должна быть уникальна. Аналогичные правила действуют и в отношении больше го количества столбцов.

Ключевое слово TOP n [PERSENT]

Использование ключевого слова TOP n, где n-числовое значение, позволяет отобрать в результат не все строки, а только первые n. При этом отбираются первые строки результата выборки, а не исходных данных. Если в запросе используется раздел WHERE, то ключевое слово TOP работает с набором строк, возвращенных после применения логического условия, определенного в разделе WHERE.

Можно выбрать не фиксированное количество строк, а определенный процент от всех строк, удовлетворяющих условию. Для этого необходимо добавить ключевое слово PERSENT.

Предложение <Список_выбора>

Синтаксис:

<Список_выбора>::={*|{<Имя_таблицы>|<Псевдоним_таблицы>}.*

|{<Имя_столбца>|<Выражение>}|

[[AS],<Псевдоним_столбца>]

|<Псевдоним_столбца>=<Выражение>

}[,…,n]

Символ * означает включение в результат всех столбцов, имеющихся в списке таблиц раздела FROM.

Если в результат не нужно включать все столбцы всех таблиц, то можно явно указать имя объекта, из которого необходимо выбрать все столбцы (<Имя_таблицы>.* или <Псевдоним_таблицы>.*)

SELECT Дисциплина.ID_Дисциплина, Наименование, Семестр

FROM Дисциплина, Учебный_план


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: