- •1. Простая выборка данных
- •1.1. Структура оператораSelect
- •1.2. Форма оператора selecTдля простой выборки данных
- •1.3. Сортировка записей
- •1.4. Выбор интервалов записей
- •1.5. Условные выражения с операторомCase
- •1.5.1. ОператорCasEсо значениями
- •1.5.2. Оператор casEс условием поиска
- •Лабораторная работа 1
1.2. Форма оператора selecTдля простой выборки данных
Тривиальный запрос, возвращающий все данные (все столбцы и все записи) из одной таблицы, формулируется так:
SELECT *
FROM имяТаблицы;
Например, получим все сведения обо всех авторах:
SELECT *
FROM authors;
Может потребоваться выбрать не все столбцы таблицы, а только некоторые. Тогда SQL-запрос будет выглядеть так:
SELECT списокСтолбцов
FROM имяТаблицы;
Список столбцов – это перечень имен столбцов, разделенных запятой, как они определены в таблице, указанной в выражении FROM. Можно указать все или только некоторые столбцы в любом порядке. Возможно также указать один и тот же столбец несколько раз.
Например, получим фамилии и имена всех авторов:
SELECT last_name, first_name
FROM authors;
Сразу за оператором SELECT до списка столбцов можно применять ключевые слова ALL (все) и DISTINCT (отличающиеся), которые указывают, какие записи представить в результатной таблице. Если эти ключевые слова не используются, то подразумевается, что следует выбрать все записи, что также соответствует применению ключевого слова ALL. В случае использования DISTINCT в результатной таблице представляются только уникальные записи. При этом если в исходной таблице находятся несколько идентичных записей, то из них выбирается только первая.
Например, получим все имена, которые встречаются среди авторов:
SELECT DISTINCT first_name
FROM authors;
Существует и еще одна форма оператора DISTINCT с явным перечислением полей, проверяемых на наличие дубликатов. В этом случае за словом DISTINCT следует секция ON (списокСтолбцов).
Например, получим имена, которые встречаются среди авторов, с указанием одной из фамилий, соответствующих каждому имени:
SELECT DISTINCT ON (first_name)
first_name, last_name
FROM authors;
Заголовки столбцов в результатной таблице можно переопределить по своему усмотрению, назначив для них так называемые псевдонимы (синонимы). Для этого в списке столбцов после соответствующего столбца следует написать выражение вида:
AS заголовокСтолбца
Назначение синонима не влияет на исходное поле и действует лишь в контексте итогового набора, возвращаемого запросом.
Например,
SELECT last_name AS Фамилия, first_name AS Имя
FROM authors;
Псевдонимы также можно задать и для каждой таблицы после ключевого слова FROM. Для этого достаточно указать псевдоним через пробел сразу (или с использованием слова AS) после имени соответствующей таблицы. Псевдонимы таблиц, более короткие, чем их имена, удобно использовать в сложных запросах.
Например,
SELECT *
FROM authors a;
или
SELECT *
FROM authors As a;
В списке столбцов оператора SELECT могут быть не только простые поля, но и произвольные выражения (включающие вызовы функций или различные операции с идентификаторами) и константы.
Например, получим в одном столбце и фамилию, и имя автора, используя оператор конкатенации (слияния) строк:
SELECT last_name || ' ' || first_name AS name
FROM authors;
Команда SELECT также может использоваться для простого вычисления и вывода результатов выражений и констант. В этом случае она не содержит секции FROM.
Например,
SELECT 2+2 AS "2 plus 2",
pi() AS "the pi function",
'PostgreSQL is more than a calculator!' AS comment;
Перечень операторов и функций, доступных в СУБД PostgreSQL, см. в приложении (П.5. Операторы, П.6. Функции).
