Этот урок посвящён различным тонкостям и особенностям использования различных конструкций внутри оператора select. Рассмотрены такие вещи, как вложенные запросы, порядок интерпретации запроса, common table expressions, рекурсивные запросы и многое другое.
Многие из освещённых здесь вопросов хорошо известны опытным программистам на Firebird SQL. Поэтому я на всякий случай напоминаю читателям, что эти материалы были разработаны для конкретной аудитории: программистов нашего отдела. Если они будут интересны кому-то ещё, я буду рад.
Основой для материалов послужили личный опыт автора и официальное руководство по языку Firebird SQL.
Краткое содержание (оно не совсем соответствует структуре документа, но полнее отражает содержание):
- Cast the spell, или О приведении типов
- Округление чисел при помощи cast
- Приведение типов строковых констант: char и varchar
- Приведение типов целочисленных констант
- Деление целых чисел нацело и с приведением к вещественному
- Указание типа параметра при помощи cast
- Замечание о пробелах на конце строк
- На первый, второй — рассчитайсь! Выбор определённого количества записей
- Постановка задачи: пагинаторы на веб-страницах
- Ключевые слова first и skip
- Ключевое слово rows
- Возможные проблемы при использовании first и skip
- Подзапросы (вложенные запросы)
- Определения и общие моменты, вложенность подзапросов
- Подзапрос-значение (singleton select)
- Подзапросы в условиях any (some), all, in, exists: что это за условия и как ими пользоваться
- Ошибка «Too many contexts of relation / procedure / views. Maximum allowed is 255»
- Правила имён. Имена, псевдонимы и их области видимости
- Псевдонимы (алиасы), их объявление и использование
- Порядок чтения запроса
- Псевдонимы в подзапросах, области видимости псевдонимов
- Common table expression, или Подзапросы с ключевым словом with
- Что такое CTE и зачем они нужны
- Рекурсивные запросы, работа с генеалогическим древом
- Разные полезные функции (lpad, maxvalue и др.) на примере сложного рекурсивного запроса.
Я долго думал перед тем, как выложить этот урок. Во-первых, он очень большой. Лекция заняла больше часа времени, а с учётом общения с аудиторией получилось и все полтора. Во-вторых, в отличие от урока, посвящённого понятию null, здесь нет такой универсальной презентации, которую можно читать как книгу. Презентация есть, и не маленькая: почти 60 кадров. Но это именно классическая презентация, с картинками и примерами скриптов, но без текста. Отдельно есть конспект лекции на 25 с лишним страниц, с разметкой: когда показывать тот или иной слайд. Эти две вещи не имеют смысла по отдельности.
Была даже мысль записать видео, в котором будет разворачиваться презентация, а за кадром будет звучать голос, который читает текст. Но я сам не люблю такой способ подачи материала. В конце концов я решил выложить и презентацию, и конспект в виде текста.
Была даже мысль записать видео, в котором будет разворачиваться презентация, а за кадром будет звучать голос, который читает текст. Но я сам не люблю такой способ подачи материала. В конце концов я решил выложить и презентацию, и конспект в виде текста.
Комментариев нет:
Отправить комментарий
Пожалуйста, не используйте в сообщениях ненормативную лексику и нарушающие закон темы