SELECT

SELECT

SELECT — оператор языка

Он используется для выборки нуля или более строк из одной или нескольких таблиц, хранимых процедур, представлений БД. В большинстве приложений SELECT является наиболее часто используемым оператором SELECT пользователь описывает ожидаемый набор данных, но не указывает, какие физические операции должны быть произведены для получения этого набора. Определение для запроса оптимального плана является задачей СУБД, а точнее — оптимизатора.

Формат запроса с использованием данного оператора:

SELECT список полей FROM список таблиц WHERE условия…

Основные ключевые слова, относящиеся к запросу SELECT:

Содержание

Примеры

Таблица «T» Запрос Результат
C1 C2
1 a
2 b
SELECT * FROM T;
C1 C2
1 a
2 b
C1 C2
1 a
2 b
SELECT C1 FROM T;
C1
1
2
C1 C2
1 a
2 b
SELECT * FROM T WHERE C1 = 1;
C1 C2
1 a
C1 C2
1 a
2 b
SELECT * FROM T ORDER BY C1 DESC;
C1 C2
2 b
1 a

Для таблицы T запрос

SELECT * FROM T;

вернёт все столбцы всех строк данной таблицы. Для той же таблицы запрос

SELECT C1 FROM T;

вернёт значения столбца C1 всех строк таблицы— в терминах реляционной алгебры можно сказать, что была выполнена проекция. Для той же таблицы запрос

SELECT * FROM T WHERE C1 = 1;

вернёт значения всех столбцов всех строк таблицы, у которых значение поля C1 равно '1'— в терминах реляционной алгебры можно сказать, что была выполнена выборка, так как присутствует ключевое слово WHERE. Последний запрос

SELECT * FROM T ORDER BY C1 DESC;

вернёт те же строки, что и первый, однако результат будет отсортирован в обратном порядке (Z-A) из-за использования ключевого слова ORDER BY с полем C1 в качестве поля сортировки. Этот запрос не содержит ключевого слова WHERE, поэтому он вернёт всё, что есть в таблице. Несколько элементов ORDER BY могут быть указаны разделённые запятыми [напр. ORDER BY C1 ASC, C2 DESC] для более точной сортировки.


Ограничение возвращаемых строк

Согласно ISO

Оконная функция ROW_NUMBER()

Существуют различные оконные функции. ROW_NUMBER() OVER может быть использована для простого ограничения числа возвращаемых строк. Например, для возврата не более десяти строк:

SELECT * FROM (
  SELECT
    ROW_NUMBER() OVER (ORDER BY KEY ASC) AS rownumber,
    COLUMNS
  FROM tablename
) AS foo
WHERE rownumber <= 10

ROW_NUMBER может быть недетерминированным: если key не уникален, каждый раз при выполнении запроса возможно присвоение разных номеров строкам, у которых key совпадает. Когда key уникален, каждая строка будет всегда получать уникальный номер строки.

оконная функция RANK()

Функция RANK() OVER работает почти так же, как ROW_NUMBER, но может вернуть более чем n строк при определённых условиях. Например, для получения top-10 самых молодых людей:

SELECT * FROM (
  SELECT
    RANK() OVER (ORDER BY age ASC) AS ranking,
    person_id,
    person_name,
    age
  FROM person
) AS foo
WHERE ranking <= 10

Данный код может вернуть более чем 10 строк. Например, если есть два человека с одинаковым возрастом, он вернёт 11 строк.

Нестандартный синтаксис

Не все СУБД поддерживают вышеуказанные оконные функции. При этом многие имеют нестандартный синтаксис для решения тех же задач. Ниже представлены варианты простого ограничения выборки для различных СУБД:

Производитель/СУБД Синтаксис ограничения
DB2 (Поддерживает стандарт начиная с DB2 Version 6)
FIRST 10 * FROM T
FIRST 10 * FROM T
Interbase SELECT * FROM T ROWS 10
Также SELECT TOP 10 [PERCENT] * FROM T ORDER BY col
LIMIT 10
LIMIT 10
LIMIT 10
Oracle (Поддерживает стандарт начиная с Oracle8i)
Также SELECT * from T WHERE ROWNUM <= 10

См. также


Wikimedia Foundation. 2010.

Игры ⚽ Нужен реферат?

Полезное


Смотреть что такое "SELECT" в других словарях:

  • sélect — sélect, ecte ou (inv.) select [ selɛkt ] adj. • 1831; sélecte h. XVIIe; angl. select « choisi »; lat. selectus ♦ Fam. et vieilli Choisi, distingué (en parlant des gens, des réunions mondaines). ⇒ chic, élégant. Le « monde select et pourri de l… …   Encyclopédie Universelle

  • select — sélect, ecte ou (inv.) select [ selɛkt ] adj. • 1831; sélecte h. XVIIe; angl. select « choisi »; lat. selectus ♦ Fam. et vieilli Choisi, distingué (en parlant des gens, des réunions mondaines). ⇒ chic, élégant. Le « monde select et pourri de l… …   Encyclopédie Universelle

  • Select — оператор языка Он используется для выборки нуля или более строк из одной или нескольких таблиц, хранимых процедур, представлений БД. В большинстве приложений SELECT является наиболее часто используемым оператором SELECT пользователь описывает… …   Википедия

  • Select — may refer to: * Select (SQL), a keyword in SQL * , an HTML element * Select (magazine), a British music magazine * MTV Select , a television program * Cable select, a setting on ATA devices that allows position on the cable to determine the role… …   Wikipedia

  • select — SELÉCT, Ă, selecţi, te, adj. Ales, deosebit, distins. – Din fr. sélect, engl. select. Trimis de LauraGellner, 17.07.2007. Sursa: DEX 98  Select ≠ vulgar Trimis de siveco, 03.08.2004. Sursa: Antonime  SELÉCT adj. v. ales …   Dicționar Român

  • select — adj Select, elect, picked, exclusive can mean marked by a superior character or quality which distinguishes the person, the thing, or the group so qualified from others (as in value, excellence, or favor). Select implies that the person or thing… …   New Dictionary of Synonyms

  • Select — Álbum de Kim Wilde Publicación 1982 Género(s) Synthpop Discográfica RAK Records Productor(es) Ricky Wilde …   Wikipedia Español

  • Select — Se*lect , a. [L. selectus, p. p. of seligere to select; pref. se aside + levere to gather. See {Legend}.] Taken from a number by preferance; picked out as more valuable or exellent than others; of special value or exellence; nicely chosen;… …   The Collaborative International Dictionary of English

  • Select — Se*lect , v. t. [imp. & p. p. {Selected}; p. pr. & vb. n. {Selecting}.] To choose and take from a number; to take by preference from among others; to pick out; to cull; as, to select the best authors for perusal. One peculiar nation to select.… …   The Collaborative International Dictionary of English

  • select — I adjective accepted, adopted, appointed, best, capital, choice, chosen, culled, designated, elected, electus, elite, embraced, excellent, exceptional, exclusive, exquisitus, first rate, good, handpicked, matchless, named, picked, popular,… …   Law dictionary


Поделиться ссылкой на выделенное

Прямая ссылка:
Нажмите правой клавишей мыши и выберите «Копировать ссылку»