Админ

понедельник, 26 сентября 2016 г.

Уроки Firebird 2.5: что такое null и как с ним бороться

|
С мая 2016 года мною было организовано обучение программистов нашего отдела используемым в работе технологиям и языкам программирования. Необходимость этого была вызвана тем, что даваемых в вузе знаний совершенно недостаточно для работы. Одна часть этих семинаров посвящена нашим внутренним технологиям (например, работе с нашим менеджером обновления приложений), другая же относится к различным практическим моментам, которые используются в работе ежедневно и которым отчего-то не учат на занятиях в вузе.

Мне кажется, что некоторые материалы могли бы быть интересны не только сотрудникам нашего отдела, но и другим людям (например, студентам, изучающим работу с СУБД), поэтому выкладываю презентацию, подготовленную к одному из наших семинаров, посвящённому понятию null в Firebird. На первый взгляд, простая тема, но сколько в ней «подводных камней»!

Основой для материалов послужили официальное руководство Firebird Null Guide и личный опыт автора.



Краткое содержание:
  1. Что такое null?
  2. Как null может оказаться в поле таблицы с признаком not null?
  3. Значения по умолчанию.
  4. Арифметические операции с null, конкатенация строк с null, сравнения с null.
  5. «Null-безопасное» сравнение: оператор is [not] distinct from.
  6. Логические выражения, в которых присутствует null.
  7. Null  в условиях: секция запроса where, операторы if, iif, decode.
  8. Null в операторе in.
  9. Null в секции запроса order by.
  10. Null в агрегатных функциях (sum, min, max, avg, list, count).
  11. Специальные функции для работы с null: coalesce и nullif с примерами.
  12. Отступление: «правильная» проверка значений на null в программах на Delphi.
Это не совсем классическая презентация, то есть набор картинок, которые должны сопровождать выступление лектора и лишены всякого смысла вне конкретного контекста. Я сам не люблю воспринимать информацию на слух, поэтому и презентация была сделана с таким расчётом, чтобы можно было её просто читать с экрана, это своего рода краткий «конспект лекции». Поэтому её можно использовать как самостоятельный источник информации.

В планах на будущее: системные функции Firebird iif, case, decode и т. п., регулярные выражения, запросы к другим базам данных (в Firebird можно, подключившись к одной БД, написать запрос к другой и использовать полученные данные как если бы это был обычный запрос). Если этот материал кого-нибудь заинтересует, то буду выкладывать их тоже.

Комментариев нет:

Отправить комментарий

Пожалуйста, не используйте в сообщениях ненормативную лексику и нарушающие закон темы

К началу