Основы PostgreSQL

Основы PostgreSQL

Перед тем как приступить к решению задач по SQL, обязательно ознакомьтесь с информацией, представленной на этой странице.

Правильный порядок операторов в запросе выглядит так:


SELECT -- перечисление полей результирующей таблицы
FROM -- указание источника данных
WHERE -- фильтрация данных
GROUP BY -- группировка данных
HAVING -- фильтрация данных после группировки
ORDER BY -- сортировка результирующей таблицы, ASC (по возрастанию) или DESC (по убыванию)
LIMIT -- ограничение количества выводимых записей


Последовательность выполнения операторов в SQL-запросе:

  1. Сначала выполняется оператор FROM — происходит выбор нужной таблицы.
  2. Затем SELECT — отбираются указанные столбцы.
  3. Потом ORDER BY — производится сортировка результирующей таблицы.
  4. И в самом конце LIMIT — ограничивается количество выводимых записей.

Алиасы

При составлении SQL-запросов колонкам в результирующей таблице можно присваивать любые другие имена (их ещё называют «алиасами»). Это можно делать с помощью оператора AS:


SELECT name AS new_name 
FROM table


Если вдруг покажется, что на написание оператора AS уходит слишком много времени и сил, то его можно опустить, указав новое имя колонки без него. Следующая запись тоже сработает:


SELECT name new_name
FROM table
 


Функции

В SQL-запросах к колонкам таблиц можно применять разные функции — так же, как, например, в Excel. В общем виде синтаксис функций выглядит примерно так:


SELECT function(a, b, c, ...)
FROM table


Вместо function указывается название функции, а в скобках — её аргументы. В качестве аргументов могут выступать как колонки со значениями, так и отдельные значения. В зависимости от функции количество необходимых для её работы аргументов может отличаться.

Функции также можно применять к результату других функций, т.е. последовательно:


SELECT function_one(function_two(a, b), c)


В приведённой выше конструкции a, b, c — аргументы функций. При этом одним из аргументов функции function_one является результат выполнения функции function_two. Таким образом, сначала будет выполнена функция function_two, а затем её результат будет подан на вход функции function_one в качестве одного из аргументов.