PostgreSQL. Разработка
PGSQL_develop 2
На курсе слушатели обучатся языку запросов SQL и процедурному языку программирования PL/pgSQL. Во время обучения слушатели освоят создание запросов, команд изменения данных, создание блоков PL/pgSQL, применение курсоров, триггеров, создание функций и других программных объектов в PL/pgSQL и SQL.
Аудитория
Курс предназначен для разработчкиов БД, администраторов БД, проектировщиков БД.
Предварительный уровень подготовки
Для обучения на курсе слушатели должны быть знакомы с реляционными базами данных (СУБД MS SQL, Oracle, СУБД PostgreSQL).
Результат обучения
По окончании обучения слушатели изучат:
- Типы данных
- Написание запросов на языке SQL
- PL/pgSQL - процедурный язык SQL
- Триггеры в PL/pgSQL
- Дополнительные возможности разработки
Программа курса
Введение в PostgreSQL
Модуль 1: Типы данных
- Система типов PostgreSQL
- Целочисленные типы
- Числа с плавающей запятой
- Числа с плавающей запятой заданной точности
- Монетарный тип
- Символьные типы
- Бинарный тип
- Типы даты/времени
- Булевский тип
- Тип строки битов
- Тип UUID
- Перечисления
- Составной тип (структура)
- Массивы
- Другие типы
- Приведение типов
- Последовательности
Модуль 2: Написание запросов на языке SQL
- Структура языка
- Таблицы, иерархии таблиц, схемы
- Локализация
- Установка клиентских настроек локализации
- Команда SELECT
- Табличные выражения
- Предложения SELECT
- Предложение FROM
- Соединённые таблицы
- Перекрёстное соединение
- Внутреннее соединение
- Внешнее соединение
- Предложения USING и NATURAL
- Псевдонимы для таблиц и столбцов
- Подзапросы в предложении FROM
- Табличные функции
- Табличные функции и подзапросы с предложением LATERAL
- Предложение WHERE
- Предложения GROUP BY и HAVING
- Сортировка строк
- Предложения LIMIT и OFFSET
- Предложение VALUES
- Объединение запросов
- Оператор CASE
- Работа со значением NULL
- Выражения подзапросов
- Использование представлений
- Управление транзакциями
- Уровни изолированности транзакций
- Блок управления транзакциями
- Построчные блокировки
- Добавление данных
- Изменение данных
- Удаление данных
- Команда TRUNCATE
- Общие табличные выражения
- Курсоры в SQL
- Создание курсоров
- Применение курсоров
- Закрытие курсоров
- Встроенные функции
- Вызов оконных функций
- Пользовательские функции в SQL
- Параметры в функциях SQL
- Функции SQL на базовых типах
- Функции SQL на составных типах
- Функции SQL с выходными параметрами
- Функции SQL с переменным количеством параметров
- Функции SQL со значением параметров по умолчанию
- Функции SQL в качестве табличных данных
- Функции SQL, возвращающие набор строк
- Табличные функции SQL
- Полиморфные функции SQL
- Перегрузка функций
- Волатильность функций
Модуль 3: PL/pgSQL – процедурный язык SQL
- О языке программирования PL/pgSQL
- Структура блока PL/pgSQL
- Выражения
- Оператор присваивания
- Объявление переменных
- Секция объявлений
- Команда ALIAS
- Атрибут %TYPE
- Атрибут %ROWTYPE
- Тип переменной RECORD (запись)
- Локали переменных
- Выполнение команд SQL
- Выполнение запросов, не возвращающих результат
- Выполнение запросов, возвращающих одну строку
- Динамически формируемые команды в PL/pgSQL
- Получение статуса выполнения команды
- Управляющие структуры
- Условный оператор IF
- Условный оператор CASE
- EXIT и CONTINUE в циклах
- Цикл LOOP
- Цикл WHILE
- Цикл FOR (целочисленный)
- Цикл FOR (по строкам запроса)
- Цикл FOREACH (по элементам массива)
- Курсоры в PL/pgSQL
- Курсорные переменные
- Открытие курсоров
- Использование курсоров
- Закрытие курсоров
- Цикл FOR (по строкам курсора)
- Обработка исключений
- Обработка ошибок
- Получение информации об ошибках
- Генерация ошибок и вывод сообщений
- Функции в PL/pgSQL
- Определение функций
- Объявления параметров функции
- Перегрузка функций
- Удаление функций
Модуль 4: Триггеры в PL/pgSQL
- Создание триггеров на изменение данных
- Удаление триггеров на изменение данных
- Триггерные функции на изменение данных
- Создание триггеров на события и команды DDL
- Удаление триггеров на события и команды DDL
- Триггерные функции на события и команды DDL
Модуль 5: Дополнительные возможности разработки
- Пользовательские агрегаты
- Создание агрегатных функций
- Удаление агрегатных функций
- Пользовательские операторы
- Создание операторов
- Удаление операторов
- Пользовательское привидение типов
- Создание преобразователя
- Удаление преобразователя
- Домены
- Создание домена
- Удаление домена
- Создание правила
- Удаление правила