С мая 2016 года мною было организовано обучение программистов нашего отдела используемым в работе технологиям и языкам программирования. Необходимость этого была вызвана тем, что даваемых в вузе знаний совершенно недостаточно для работы. Одна часть этих семинаров посвящена нашим внутренним технологиям (например, работе с нашим менеджером обновления приложений), другая же относится к различным практическим моментам, которые используются в работе ежедневно и которым отчего-то не учат на занятиях в вузе.
Мне кажется, что некоторые материалы могли бы быть интересны не только сотрудникам нашего отдела, но и другим людям (например, студентам, изучающим работу с СУБД), поэтому выкладываю презентацию, подготовленную к одному из наших семинаров, посвящённому понятию null в Firebird. На первый взгляд, простая тема, но сколько в ней «подводных камней»!
Основой для материалов послужили официальное руководство Firebird Null Guide и личный опыт автора.
Краткое содержание:
- Что такое null?
- Как null может оказаться в поле таблицы с признаком not null?
- Значения по умолчанию.
- Арифметические операции с null, конкатенация строк с null, сравнения с null.
- «Null-безопасное» сравнение: оператор is [not] distinct from.
- Логические выражения, в которых присутствует null.
- Null в условиях: секция запроса where, операторы if, iif, decode.
- Null в операторе in.
- Null в секции запроса order by.
- Null в агрегатных функциях (sum, min, max, avg, list, count).
- Специальные функции для работы с null: coalesce и nullif с примерами.
- Отступление: «правильная» проверка значений на null в программах на Delphi.
Это не совсем классическая презентация, то есть набор картинок, которые должны сопровождать выступление лектора и лишены всякого смысла вне конкретного контекста. Я сам не люблю воспринимать информацию на слух, поэтому и презентация была сделана с таким расчётом, чтобы можно было её просто читать с экрана, это своего рода краткий «конспект лекции». Поэтому её можно использовать как самостоятельный источник информации.
В планах на будущее: системные функции Firebird iif, case, decode и т. п., регулярные выражения, запросы к другим базам данных (в Firebird можно, подключившись к одной БД, написать запрос к другой и использовать полученные данные как если бы это был обычный запрос). Если этот материал кого-нибудь заинтересует, то буду выкладывать их тоже.
Комментариев нет:
Отправить комментарий
Пожалуйста, не используйте в сообщениях ненормативную лексику и нарушающие закон темы