Содержание пакета (3 курса)
1. Основы PL/Python в СУБД PostgreSQL 5.00
Перед началом работы
3 урока
1.
Обращение к учащимся
↗
2.
Витрина курсов
↗
3.
Расширение курса
↗
Основы PL/Python
2 урока
1.
Что такое PL/Python?
↗
2.
Установка PL/Python
↗
Функции
1 урок
1.
Описание
↗
Значения данных
6 уроков
1.
Предисловие
↗
2.
Сопоставление типов данных
↗
3.
Null, None
↗
4.
Массивы, списки
↗
5.
Составные типы (Composite Type)
↗
6.
Функции, возвращающие множества (RETURNS SETOF)
↗
Совместное использование данных
1 урок
1.
Словари SD/GD
↗
Блоки PL/Python
1 урок
1.
Анонимные блоки
↗
Обращение к базе данных
5 уроков
1.
Синтетические данные
↗
2.
Введение
↗
3.
Функции обращения к базе данных
↗
4.
Обработка ошибок
↗
5.
Домашнее задание
↗
Вспомогательные функции
4 урока
1.
Синтетические данные
↗
2.
Введение
↗
3.
Отладка и сообщения
↗
4.
Экранирование
↗
Работа с транзакциями
3 урока
1.
Синтетические данные
↗
2.
Управление транзакциями
↗
3.
Явные подтранзакции
↗
Триггерные функции
2 урока
1.
Синтетические данные
↗
2.
Описание
↗
Переменные окружения
1 урок
1.
Описание
↗
2. Основы PL/pgSQL в СУБД PostgreSQL 5.00
Перед началом работы
3 урока
1.
Обращение к учащимся
↗
2.
Витрина курсов
↗
3.
Расширение курса
↗
Теоретические аспекты
1 урок
1.
Что такое PL/pgSQL?
↗
Системная информация
4 урока
1.
Предисловие
↗
2.
Системные каталоги
↗
3.
Системные представления
↗
4.
Информационная схема
↗
Блоки PL/pgSQL
5 уроков
1.
Структура блока
↗
2.
Анонимные блоки
↗
3.
Именованные блоки
↗
4.
Вложенные блоки
↗
5.
Область видимости
↗
Основные моменты
2 урока
1.
Экранирование символов
↗
2.
Строковые константы ($$)
↗
Переменные и константы
6 уроков
1.
Синтетические данные
↗
2.
Переменные
↗
3.
Сохранение результата запроса в переменные (SELECT INTO)
↗
4.
Константы
↗
5.
Тип строки (%ROWTYPE)
↗
6.
Наследование типа данных (%TYPE)
↗
Псевдонимы
1 урок
1.
ALIAS
↗
Конструкторы
1 урок
1.
ROW (табличные строки)
↗
Типы данных
5 уроков
1.
Составные типы данных (Composite Types)
↗
2.
Псевдотипы (Pseudo Types)
↗
3.
Полиморфные типы (Polymorphic Types)
↗
4.
Домены (Type System Domains)
↗
5.
Перечисления (Enum Types)
↗
Записи
2 урока
1.
Синтетические данные
↗
2.
Что такое записи?
↗
Динамический SQL
2 урока
1.
Синтетические данные
↗
2.
EXECUTE
↗
Управляющие структуры
3 урока
1.
IF-THEN-ELSE
↗
2.
NULL
↗
3.
CASE
↗
Циклы
7 уроков
1.
Что такое циклы?
↗
2.
Управления циклами
↗
3.
LOOP
↗
4.
WHILE
↗
5.
FOR
↗
6.
FOREACH
↗
7.
Вложенные циклы
↗
Метки
1 урок
1.
Что такое метки?
↗
Курсоры
9 уроков
1.
Синтетические данные
↗
2.
Что такое курсоры?
↗
3.
Получение информации о курсорах
↗
4.
Объявление курсора
↗
5.
Открытие курсора
↗
6.
Закрытие курсора
↗
7.
Использование курсора
↗
8.
Атрибуты курсора
↗
9.
Цикл в курсоре
↗
Последовательность
6 уроков
1.
Синтетические данные
↗
2.
Что такое последовательность?
↗
3.
Создание последовательности
↗
4.
Работа с последовательностью
↗
5.
Редактирование последовательности
↗
6.
Удаление последовательности
↗
Процедуры
10 уроков
1.
Синтетические данные
↗
2.
Что такое процедуры?
↗
3.
Создание процедуры
↗
4.
Вызов процедуры
↗
5.
Завершение процедуры
↗
6.
Перегрузка процедур
↗
7.
Полиморфизм
↗
8.
Получение информации о процедурах
↗
9.
Изменение процедуры
↗
10.
Удаление процедуры
↗
Функции
11 уроков
1.
Синтетические данные
↗
2.
Что такое функции?
↗
3.
Создание функции
↗
4.
Вызов функции
↗
5.
RETURN NEXT и RETURN QUERY
↗
6.
Возврат значений / Завершение функции
↗
7.
Перегрузка
↗
8.
Полиморфизм
↗
9.
Получение информации о функциях
↗
10.
Изменение функции
↗
11.
Удаление функции
↗
Исключения
6 уроков
1.
Синтетические данные
↗
2.
Что такое исключения?
↗
3.
Виды исключений
↗
4.
Структура данных SQLCA для работы с исключениями
↗
5.
Распространение ошибок
↗
6.
Детальная информации об ошибке (GET STACKED DIAGNOSTICS)
↗
Триггеры
11 уроков
1.
Синтетические данные
↗
2.
Что такое триггеры?
↗
3.
Общий синтаксис
↗
4.
Триггеры DML
↗
5.
Триггеры INSTEAD OF
↗
6.
Триггеры ограничений
↗
7.
Событийные триггеры
↗
8.
Переходные таблицы
↗
9.
Получение информации о триггерах
↗
10.
Управление триггерами
↗
11.
Удаление триггеров
↗
Сообщения и ошибки
4 урока
1.
Синтетические данные
↗
2.
Предисловие
↗
3.
RAISE (вывод сообщений и ошибок)
↗
4.
ASSERT (отладочные проверки)
↗
3. Погружение в базы данных PostgreSQL 5.00
Перед началом работы
4 урока
1.
Обращение к учащимся
↗
2.
Витрина курсов
↗
3.
Расширение курса
↗
4.
Розыгрыши
↗
Узнай свой уровень SQL
4 урока
1.
О модуле
↗
2.
Легкий
↗
3.
Средний
↗
4.
Тяжёлый
↗
Программное обеспечение
5 уроков
1.
Предисловие
↗
2.
PostgreSQL
↗
3.
pgAdmin
↗
4.
DBeaver
↗
5.
Онлайн сервисы
↗
Дело о золотом бивне: SQL-расследование
5 уроков
1.
Введение
↗
2.
Акт I. Шорох в саванне
↗
3.
Акт II. Цифровые тени
↗
4.
Акт III. Крот в банке
↗
5.
Акт IV. Разоблачение
↗
Теоретические аспекты
9 уроков
1.
База данных
↗
2.
Таблица
↗
3.
СУБД
↗
4.
Язык SQL
↗
5.
Объекты базы данных
↗
6.
Схема базы данных
↗
7.
Типы команд в SQL
↗
8.
Порядок выполнения SQL-запроса
↗
9.
Требования ACID
↗
Синтетические данные
2 урока
1.
Что такое синтетические данные?
↗
2.
Загрузка синтетических данных
↗
Основные моменты
5 уроков
1.
Комментарии
↗
2.
Разделитель команд (;)
↗
3.
Отображение структуры таблицы
↗
4.
Зарезервированные слова
↗
5.
Чувствительность к регистру
↗
Типы данных
13 уроков
1.
Предисловие
↗
2.
Числовые типы
↗
3.
Денежные типы
↗
4.
Символьные типы
↗
5.
Двоичные типы данных
↗
6.
Типы даты/времени
↗
7.
Логические типы
↗
8.
Типы, описывающие сетевые адреса
↗
9.
Геометрические типы
↗
10.
Тип UUID
↗
11.
Тип XML
↗
12.
Типы JSON
↗
13.
Массивы
↗
Оператор SELECT
5 уроков
1.
Предисловие
↗
2.
Вывод всех столбцов из таблицы
↗
3.
Вывод одного столбца из таблицы
↗
4.
Вывод нескольких столбцов из таблицы
↗
5.
Вывод уникальных значений (DISTINCT / DISTINCT ON)
↗
Оператор FROM
1 урок
1.
Описание
↗
Псевдонимы (алиасы)
2 урока
1.
Оператор AS
↗
2.
Упражнения на закрепление материала
↗
Списки VALUES
1 урок
1.
VALUES
↗
Конкатенация
1 урок
1.
Оператор ||
↗
Фильтрация данных
1 урок
1.
Оператор WHERE
↗
Ограничение результатов запроса
3 урока
1.
Оператор OFFSET
↗
2.
Оператор LIMIT
↗
3.
Оператор FETCH
↗
Оператор CREATE TABLE
3 урока
1.
Предисловие
↗
2.
Создание таблицы при помощи оператора CREATE TABLE
↗
3.
Создание таблицы при помощи оператора SELECT
↗
Оператор ALTER TABLE
6 уроков
1.
Предисловие
↗
2.
Добавление столбца в таблицу
↗
3.
Изменение типа данных столбца в таблице
↗
4.
Изменение имени столбца в таблице
↗
5.
Удаление столбца в таблице
↗
6.
Изменение имени таблицы
↗
Оператор COMMENT
5 уроков
1.
Предисловие
↗
2.
Добавление комментария для таблицы
↗
3.
Добавление комментария для столбца
↗
4.
Просмотр комментариев к таблицам и столбцам
↗
5.
Удаление комментариев у таблицы и колонок
↗
Математические операторы
15 уроков
1.
Предисловие
↗
2.
Сложение (+)
↗
3.
Вычитание (-)
↗
4.
Умножение (*)
↗
5.
Деление (/)
↗
6.
Остаток от деления (%)
↗
7.
Возведение в степень (^)
↗
8.
Квадратный корень (|/)
↗
9.
Кубический корень (||/ )
↗
10.
Абсолютное значение (@)
↗
11.
Битовое И (&)
↗
12.
Битовое ИЛИ (|)
↗
13.
Битовое исключающее ИЛИ (#)
↗
14.
Битовое НЕ (~)
↗
15.
Битовый сдвиг влево (<<) и вправо (>>)
↗
Операторы сравнения
12 уроков
1.
Предисловие
↗
2.
Оператор =
↗
3.
Оператор <> и !=
↗
4.
Оператор < и <=
↗
5.
Оператор > и >=
↗
6.
Оператор IN
↗
7.
Оператор BETWEEN
↗
8.
Проверка значений NULL
↗
9.
Оператор LIKE
↗
10.
Упражнения на закрепление материала. Часть 1
↗
11.
Упражнения на закрепление материала. Часть 2
↗
12.
Упражнения на закрепление материала. Часть 3
↗
Логические операторы
7 уроков
1.
Предисловие
↗
2.
Оператор AND
↗
3.
Оператор OR
↗
4.
Оператор NOT
↗
5.
Комбинация логических операторов
↗
6.
Упражнения на закрепление материала. Часть 1
↗
7.
Упражнения на закрепление материала. Часть 2
↗
Сортировка записей (ORDER BY)
5 уроков
1.
Предисловие
↗
2.
Сортировка по одному столбцу
↗
3.
Сортировка по нескольким столбцам
↗
4.
Сортировка по номеру столбца
↗
5.
Упражнения на закрепление материала
↗
Подзапросы (SUBQUERIES)
6 уроков
1.
Предисловие
↗
2.
Подзапросы в блоке FROM
↗
3.
Подзапросы в блоке WHERE
↗
4.
Подзапросы в блоке SELECT
↗
5.
Оператор EXISTS и подзапросы
↗
6.
Упражнения на закрепление материала
↗
Оператор INSERT
5 уроков
1.
Предисловие
↗
2.
Добавление одной полной строки
↗
3.
Добавление части строки
↗
4.
Добавление нескольких строк
↗
5.
Добавление результатов запроса (INSERT SELECT)
↗
Оператор UPDATE
3 урока
1.
Предисловие
↗
2.
Обновление определенного столбца в таблице
↗
3.
Обновление нескольких столбцов в таблице
↗
Оператор DELETE
3 урока
1.
Предисловие
↗
2.
Удаление всех строк
↗
3.
Удаление определенных строк
↗
Оператор TRUNCATE TABLE
1 урок
1.
Описание
↗
Оператор DROP
1 урок
1.
Описание
↗
Оператор MERGE
1 урок
1.
Описание
↗
Агрегатные функции
10 уроков
1.
Что такое агрегатные функции?
↗
2.
Функция SUM()
↗
3.
Функция COUNT()
↗
4.
Функция AVG()
↗
5.
Функция MAX()
↗
6.
Функция MIN()
↗
7.
Функция ARRAY_AGG()
↗
8.
Функция JSON_AGG()
↗
9.
Функция JSON_OBJECT_AGG()
↗
10.
Функция STRING_AGG()
↗
Простая группировка данных
2 урока
1.
Оператор GROUP BY
↗
2.
Упражнения на закрепление материала
↗
Сложные группировки данных
5 уроков
1.
Предисловие
↗
2.
Оператор ROLLUP
↗
3.
Оператор CUBE
↗
4.
Оператор GROUPING SETS
↗
5.
Функция GROUPING
↗
Фильтрация групп
2 урока
1.
Оператор HAVING
↗
2.
Упражнения на закрепление материала
↗
Комбинированные запросы
4 урока
1.
Оператор UNION и UNION ALL
↗
2.
Оператор EXCEPT
↗
3.
Оператор INTERSECT
↗
4.
Упражнения на закрепление материала
↗
Предикаты ANY (SOME) / ALL
4 урока
1.
Предисловие
↗
2.
Предикат ANY (SOME)
↗
3.
Предикат ALL
↗
4.
Упражнения на закрепление материала
↗
Объединение таблиц
9 уроков
1.
Предисловие
↗
2.
Классический способ объединения
↗
3.
Внутреннее объединение (JOIN/INNER JOIN)
↗
4.
Левое внешнее соединение (LEFT OUTER JOIN)
↗
5.
Правое внешнее соединение (RIGHT OUTER JOIN)
↗
6.
Полное внешнее соединение (FULL OUTER JOIN)
↗
7.
Перекрёстное соединение (CROSS JOIN)
↗
8.
Самообъединение (SELF JOIN)
↗
9.
Естественное объединение (NATURAL JOIN)
↗
Обобщённое табличное выражение (CTE)
2 урока
1.
Оператор WITH
↗
2.
Рекурсивный WITH (WITH RECURSIVE)
↗
Функции преобразования типов данных
5 уроков
1.
TO_NUMBER
↗
2.
TO_CHAR
↗
3.
TO_DATE
↗
4.
TO_TIMESTAMP
↗
5.
Оператор ::
↗
Математические функции
23 урока
1.
ABS
↗
2.
CEIL / CEILING
↗
3.
FLOOR
↗
4.
MOD
↗
5.
POWER
↗
6.
ROUND
↗
7.
SIGN
↗
8.
SQRT
↗
9.
CBRT
↗
10.
TRUNC
↗
11.
FACTORIAL
↗
12.
PI
↗
13.
RADIANS
↗
14.
DEGREES
↗
15.
EXP
↗
16.
TRIM_SCALE
↗
17.
SCALE
↗
18.
MIN_SCALE
↗
19.
LN
↗
20.
LOG
↗
21.
LOG10
↗
22.
LCM
↗
23.
GCD
↗
Тригонометрические функции
8 уроков
1.
SIN / SIND
↗
2.
COS / COSD
↗
3.
COT / COTD
↗
4.
TAN / TAND
↗
5.
ASIN / ASIND
↗
6.
ACOS / ACOSD
↗
7.
ATAN / ATAND
↗
8.
ATAN2 / ATAN2D
↗
Гиперболические функции
6 уроков
1.
SINH
↗
2.
COSH
↗
3.
TANH
↗
4.
ASINH
↗
5.
ACOSH
↗
6.
ATANH
↗
Генерация случайных чисел
3 урока
1.
RANDOM
↗
2.
RANDOM_NORMAL
↗
3.
SETSEED
↗
Работа с датой и временем
11 уроков
1.
NOW
↗
2.
CURRENT_DATE
↗
3.
CURRENT_TIME
↗
4.
EXTRACT
↗
5.
AGE
↗
6.
MAKE_DATE
↗
7.
MAKE_TIME
↗
8.
MAKE_INTERVAL
↗
9.
LOCALTIME
↗
10.
LOCALTIMESTAMP
↗
11.
CURRENT_TIMESTAMP
↗
Символьные/строчные функции
13 уроков
1.
ASCII
↗
2.
CHR
↗
3.
LENGTH
↗
4.
LOWER / UPPER / INITCAP
↗
5.
TRIM / RTRIM / LTRIM
↗
6.
SUBSTR
↗
7.
REPLACE
↗
8.
MD5
↗
9.
REVERSE
↗
10.
REPEAT
↗
11.
SPLIT_PART
↗
12.
STRPOS / POSITION
↗
13.
RIGHT / LEFT
↗
Функции, возвращающие множества
2 урока
1.
GENERATE_SERIES
↗
2.
GENERATE_SUBSCRIPTS
↗
Функции для работы с UUID
5 уроков
1.
Предисловие
↗
2.
Функция GEN_RANDOM_UUID
↗
3.
Функция UUID_EXTRACT_TIMESTAMP
↗
4.
Функция UUID_EXTRACT_VERSION
↗
5.
Модуль UUID-OSSP
↗
Условные выражения
5 уроков
1.
Оператор CASE
↗
2.
Функция COALESCE
↗
3.
Функция NULLIF
↗
4.
Функция GREATEST
↗
5.
Функция LEAST
↗
Регулярные выражения / В работе
6 уроков
1.
Синтетические данные
↗
2.
Предисловие
↗
3.
Регулярные выражения SIMILAR TO / В работе
↗
4.
Регулярные выражения POSIX / В работе
↗
5.
- / В работе
↗
6.
- / В работе
↗
Оконные функции
7 уроков
1.
Что такое оконные функции?
↗
2.
Синтаксис оконных функций
↗
3.
Виды оконных функций
↗
4.
Агрегатные функции
↗
5.
Ранжирующие функции
↗
6.
Функции смещения
↗
7.
Аналитические функции
↗
Представления
4 урока
1.
Что такое представления?
↗
2.
Создание представления
↗
3.
Обновление представления
↗
4.
Удаление представления
↗
Материализованные представления
5 уроков
1.
Что такое материализованные представления?
↗
2.
Создание материализованного представления
↗
3.
Обновление материализованного представления
↗
4.
Изменение материализованного представления
↗
5.
Удаление материализованного представления
↗
Временные таблицы
4 урока
1.
Что такое временные таблицы?
↗
2.
Создание временной таблицы
↗
3.
Проверка существования временной таблицы
↗
4.
Удаление временной таблицы
↗
Работа с JSON
7 уроков
1.
Синтетические данные
↗
2.
Что такое JSON?
↗
3.
Синтаксис JSON
↗
4.
Обращение к элементам JSON
↗
5.
Функции для создания JSON
↗
6.
Функции для обработки JSON
↗
7.
Индексация JSONB
↗
Работа с XML
11 уроков
1.
Синтетические данные
↗
2.
Что такое XML?
↗
3.
Синтаксис XML
↗
4.
Обращение к элементам XML (XPath)
↗
5.
Функции для обработки XML
↗
6.
Функции для создания XML
↗
7.
Предикаты XML
↗
8.
Функции для агрегации XML
↗
9.
Преобразование XML в таблицу
↗
10.
Преобразование таблицы в XML
↗
11.
Примеры парсинга XML
↗
Работа с массивами
6 уроков
1.
Синтетические данные
↗
2.
Что такое массив?
↗
3.
Создание массива
↗
4.
Обращение к элементам массива
↗
5.
Операторы для работы с массивами
↗
6.
Функции для обработки массива
↗
Секционирование таблиц
5 уроков
1.
Предисловие
↗
2.
Что такое секционирование?
↗
3.
Виды секционирования
↗
4.
Вложенное секционирование
↗
5.
Обслуживание секций
↗
Индексы
9 уроков
1.
Предисловие
↗
2.
Виды индексов
↗
3.
Создание индексов
↗
4.
Реорганизация индексов
↗
5.
Сбор статистики по индексу
↗
6.
Мониторинг использования индекса
↗
7.
Определение размера индекса
↗
8.
Изменение имени индекса
↗
9.
Удаление индексов
↗
План запроса
4 урока
1.
Что такое план запроса?
↗
2.
Просмотр плана запроса
↗
3.
Описание операций плана выполнения
↗
4.
Как читать план запроса?
↗
Управление доступом к данным
6 уроков
1.
Предисловие
↗
2.
Виды привилегий
↗
3.
Получение информации о пользователях, ролях и привилегиях
↗
4.
Оператор GRANT
↗
5.
Оператор REVOKE
↗
6.
Оператор DENY
↗
Проектирование баз данных
2 урока
1.
Нормализация баз данных
↗
2.
ER-диаграммы
↗
Первичные ключи (Primary key)
5 уроков
1.
Что такое первый ключ (Primary key)?
↗
2.
Создание первичного ключа
↗
3.
Проверка существования первичного ключа
↗
4.
Суть работы первичного ключа
↗
5.
Удаление первичного ключа
↗
Внешние ключи (Foreign key)
5 уроков
1.
Что такое внешний ключ (Foreign key)?
↗
2.
Создание внешнего ключа
↗
3.
Проверка существования внешнего ключа
↗
4.
Суть работы внешнего ключа
↗
5.
Удаление внешнего ключа
↗
Ограничения (Сonstraint)
6 уроков
1.
Что такое ограничения?
↗
2.
Ограничения первичного ключа (Primary key)
↗
3.
Ограничения внешнего ключа (Foreign key)
↗
4.
Ограничения уникальности (Unique)
↗
5.
Ограничения NOT NULL
↗
6.
Ограничения проверки значения (Check)
↗
Транзакции
7 уроков
1.
Что такое транзакции?
↗
2.
Уровни изоляции транзакций
↗
3.
Оператор BEGIN
↗
4.
Оператор COMMIT
↗
5.
Оператор ROLLBACK
↗
6.
Оператор SAVEPOINT
↗
7.
Оператор SET TRANSACTION
↗
Интерактивные SQL-задачи (Кинотеатр)
7 уроков
1.
Обзор блока
↗
2.
ER-диаграмма
↗
3.
Задачи (1-16)
↗
4.
Задачи (17-32)
↗
5.
Задачи (33-48)
↗
6.
Задачи (49-64)
↗
7.
Задачи (65-76)
↗
SQL-задачи для СУБД PostgreSQL (Интернет-Магазин)
8 уроков
1.
Обзор блока
↗
2.
Синтетические данные
↗
3.
ER-диаграмма
↗
4.
Задачи (1-16)
↗
5.
Задачи (17-32)
↗
6.
Задачи (33-48)
↗
7.
Задачи (49-64)
↗
8.
Задачи (65-80)
↗