- общие сведения о СУБД
- клиентские приложения
- база данных курса
5 SELECT <select_list>
1 FROM <source_1> AS P
INNER JOIN <source_2> AS C
ON <join_on_clause>
2 WHERE <predicate_condition>
3 GROUP BY <group_by_list / GROUPING SETS | CUBE | ROLLUP >
4 HAVING <having_condition>
6 ORDER BY <column(s)_order>
7 LIMIT (number_of_rows);
- Множества и дубликаты:
DISTINCT
CASE
-выражения
- SQL:89 vs SQL:92
JOIN: INNER, OUTER, CROSS
- Self-join
ORDER BY [ASC, DESC]
WHERE
+ операторы сравнения + предикатыLIMIT, OFFSET-FETCH
- Обзор типов данных
CAST
, оператор::
- Типы данных строка, дата-время
INSERT INTO .. VALUES, INSERT INTO .. SELECT
SELECT INTO
UPDATE, DELETE
MERGE
*
- Обзор: скалярные, агрегирования, оконные
- Скалярные функции преобразования данных, функции-условия, функции для работы с NULL
- Тип данных
Array
- Функции агрегирования:
COUNT, SUM, AVG, MIN, MAX, STRING_AGG
GROUP BY
+ фильтрHAVING
- Расширения
GROUP BY: GROUPING SETS, CUBE, ROLLUP
- Подзапросы возвращающие скаляр, вектор, таблицу (
EXISTS
) - Простые и корреляционные подзапросы
- Создание и использование представлений:
CREATE VIEW view_name... SELECT FROM view_name...
- Использование наследуемых таблиц (derived table):
SELECT FROM (SELECT ...)
- Использование общих табличных выражений (common table expression, CTE):
WITH cte_name AS ( SELECT ...)
-- * Recursive и materialized
- Объединение (
UNION
), пересечение (INTERSECT
), вычитание (EXCEPT
) - Табличная инструкция:
CROSS (LEFT) LATERAL JOIN ... ON TRUE
- Расчет нарастающих итогов, изменений данных, скользящих средних
- Функции ранжирования, агрегирования, сдвига и статистические
... OVER (PARTITION BY ... ORDER BY ... ROWS BETWEEN ...)