Иллюстрированный самоучитель по PostgreSQL

SELECT

Перечисленные ниже ключевые слова и параметры могут присутствовать в каждом определении источника.

  • [ ONLY ] таблица [ * ]. Имя существующей таблицы или представления, из которого производится выборка. При отсутствии ключевого слова ONLY поиск также производится во всех производных таблицах. С этой же целью можно добавить после имени таблицы символ *.
  • подзапрос. Команда SELECT, выполняемая в секции FROM другой команды SELECT. В результате выполнения подзапроса создается временная таблица, записи которой обрабатываются во время выполнения команды. Код подзапросов заключается в круглые скобки.
  • [ AS ] псевдоним_источника. Альтернативное имя для источника данных, упоминаемого в секции FROM.
  • список_псевдонимов. Разделенный запятыми список псевдонимов для полей предшествующего источника. Количество псевдонимов в списке может быть меньше количества нолей в источнике, к которому относится список.
  • тип_объедипения. Тип объединения, задается одним из следующих значений:
    • [ INNER ] JOIN;
    • LEFT [ OUTER ] JOIN;
    • RIGHT [ OUTER ] JOIN;
    • FULL [ OUTER ] JOIN.
  • NATURAL. Необязательное ключевое слово NATURAL означает, что объединение двух источников производится по всем одноименным полям. Наличие ключевого слова NATURAL исключает необходимость объединения по явно заданным условиям.
  • условие_объединения. После ключевого слова ON указывается условие объединения. Синтаксис аналогичен синтаксису секции WHERE.
  • список_полей_объединения. Список полей, приведенный в секции USING, представляет собой сокращенную запись для секции ON. Предполагается, что объединение производится по совпадающим значениям одноименных полей двух объединяемых источников.

Результаты:

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

  • ERROR: Relation 'источник' does not exist. Ошибка – указанная таблица или представление отсутствует в текущей базе данных.
  • ERROR: Table name "источник" specified more than once. Ошибка – таблица или представление встречается в списке дважды без определения псевдонима. Ошибка исправляется определением псевдонима в секции AS для одного из источников.
  • ERROR: Attribute 'поле' not found. Ошибка – поле не найдено ни в одном из перечисленных источников.

Описание

Команда SELECT предназначена для выборки данных из таблицы, представления, подзапроса или набора, полученного в результате объединения. Секция WHERE определяет критерий отбора записей; если запись не удовлетворяет критерию, она не включается в набор. При отсутствии секции WHERE в выборку включаются все записи источника данных.

В команде SELECT могут включаться различные секции, полный список которых с краткими описаниями приведен выше в пункте "Параметры". Дополнительные примеры их использования имеются в главе 4.

Примеры

Следующая команда возвращает все записи из таблицы books:

booktown=# SELECT * FROM books;
id 1 title | authorjd | subjectjd
7808 | The Shining 4156 9
4513 Dune 1866 | 15
4267 | 2001: A Space Odyssey 2001 15
1608 The Cat in the Hat 1809 2
1590 Bartholomew and the Oobleck 1809 2
25908 Franklin in the Dark 15990 | 2
1501 Goodnight Moon 2031 | 2
190 Little Women 16 6
1234 The Velveteen Rabbit 25041 3
2038 Dynamic Anatomy 1644 | 0
156 The Tell-Tale Heart 115 9
41472 Practical PostgreSQL 1212 4
41473 | Programming Python 7805 | 4
41477 Learning Python 7805 j 4
41478 | Perl Cookbook 7806 | 4
(15 rows)

В другом примере выборка ограничивается записями с кодом, большим 5000:

booktown=# SELECT * FROM books WHERE id > 5000;
id title | authorjd | subjectjd
7808 | The Shining | 4156 | 9 25908
Franklin in the Dark 15990 2
41472 Practical PostgreSQL | 1212 4
41473 I Programming Python 7805 | 4
41477 I Learning Python 7805 | 4
41478 | Perl Cookbook 7806 | 4
(6 rows)
Если Вы заметили ошибку, выделите, пожалуйста, необходимый текст и нажмите CTRL + Enter, чтобы сообщить об этом редактору.