Шпаргалка по SQL – базовые запросы

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

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

SELECT

Чтобы вывести все записи со значениями во всех колонках, необходимо либо перечислить все колонки в операторе SELECT, либо указать после оператора специальный символ «*»:

SELECT column_1, column_2, ...
FROM table


SELECT *
FROM table

ORDER BY

Для сортировки значений по какой-либо колонке в SQL используется оператор ORDER BY с ключевыми словами ASC (по возрастанию) или DESC (по убыванию).

При этом по умолчанию сортировка происходит по возрастанию, т.е. ASC указывать не обязательно. Для сортировки по убыванию после ORDER BY необходимо явно указать DESC:

SELECT column_1, column_2
FROM table
ORDER BY column_1        -- сортировка по возрастанию


SELECT column_1, column_2
FROM table
ORDER BY column_1 ASC    -- сортировка по возрастанию


SELECT column_1, column_2
FROM table
ORDER BY column_1 DESC   -- сортировка по убыванию

Сортировать результат SQL-запроса можно сразу по нескольким колонкам, указывая их после ORDER BY через запятую вместе с направлением сортировки (ASC или DESC):

SELECT column_1, column_2
FROM table
ORDER BY column_1 DESC, column_2    -- сначала сортировка по первой колонке (по убыванию), 
                                    -- затем по второй (по возрастанию)

AS

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

SELECT name AS new_name
FROM table

SELECT name new_name
FROM table

Функции

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

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

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

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

Строки

Список функций со строковыми данными

Типы данных

Иногда возникает необходимость изменить тип данных в какой-нибудь колонке результирующей таблицы, не меняя при этом свойства исходной таблицы — например, преобразовать число в текст (тип данных VARCHAR). Для этого существует функция CAST.

На вход функции CAST необходимо подать имя колонки, указав через AS тип данных, к которому нужно привести все значения:

SELECT CAST(column AS VARCHAR)
FROM table

Также изменить тип данных можно с помощью специального синтаксиса с двумя двоеточиями («::»):

SELECT column::VARCHAR
FROM table

Подробнее о преобразовании типов данных.

Конкатенация

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

SELECT CONCAT('SQL', ' ', 'Simulator ', 2022)

Результат:
SQL Simulator 2022

Подробнее о конкатенации в примерах.

Дата и время

Подробнее о DATE_PART.

COALESCE

Функция COALESCE читает список значений слева направо и, как только видит значение, которое не является NULL, сразу же возвращает его и прекращает чтение списка.

SELECT COALESCE(NULL, 'I am not NULL' , 'karpov.courses')

Результат:
I am not NULL


SELECT COALESCE(NULL, 25, 100, 150)

Результат:
25


SELECT COALESCE('NULL', 'I am not NULL', 'karpov.courses')

Результат:
NULL

PostgreSQL COALESCE

Математика и арифметика

SELECT (column_1 + column_2) / 2 AS average
FROM table
SELECT ROUND(100.5454, 2)

Результат:
100.55


SELECT ROUND(100.551, 1)

Результат:
100.6


SELECT ROUND(100.5511)

Результат:
101.0

Условия CASE

CASE  
WHEN logical_expression_1 THEN expression_1
WHEN logical_expression_2 THEN expression_2
...
ELSE expression_else
END AS case_example
  1. На каждом этапе WHEN – THEN вычисляется некоторое логическое выражение logical_expression, стоящее после WHEN. Если оно оказывается истинным (TRUE), то в качестве результата оператор возвращает выражение expression, стоящее после THEN, и заканчивает свою работу.
  2. Если выражение оказывается ложным (FALSE), то оператор продолжает работу и проверяет следующее условие.
  3. Если ни одно из условий не проходит проверку на истинность, то возвращается выражение, указанное после ELSE. При этом ELSE указывать не обязательно — если его не указать, то вернётся пустое значение NULL (в случае, если все проверки после WHEN оказались ложными).
  4. В конце обязательно указывается ключевое слово END, которое говорит об окончании конструкции CASE. Также после END новому расчётному полю с помощью AS можно присвоить некоторое имя, но это делать не обязательно. Обязательными являются только ключевые слова CASE,  WHEN,  THEN и END.

Сообщение Шпаргалка по SQL – базовые запросы появились сначала на Веб-студия Юсота.


Source: usota.ru knowledge-base