SQL. Сборник рецептов

ИздательствоСимвол
Год издания2016
Страниц672
ПереплетМягкая обложка
Формат70х100/16 (170х240 мм, увеличенный)
ISBN978-5-93286-125-7
ИзготовительООО "Издательство "Символ-плюс". 193144, РФ, г. Санкт-Петербург, ул. 5-я Советская, 44/59
ИмпортерООО «НТЦ АПИ», г. Минск, ул. Уманская, 54, пом. 1, каб. 34

Книга Энтони Молинаро «SQL. Сборник рецептов» предназначена тем, кто уже знаком с основами языка запросов SQL и хочет повысить свой профессиональный уровень. Она будет полезна и экспертам SQL, поскольку автор предлагает варианты решения задач для разных СУБД: DB2, Oracle, PostgreSQL, MySQL и SQL Server.

Книга Энтони Молинаро «SQL. Сборник рецептов» предназначена тем, кто уже знаком с основами языка запросов SQL и хочет повысить свой профессиональный уровень. Она будет полезна и экспертам SQL, поскольку автор предлагает варианты решения задач для разных СУБД: DB2, Oracle, PostgreSQL, MySQL и SQL Server. Если вы постоянно работаете с SQL на одной платформе, то, возможно, найдете в рецептах более эффективное решение на другой. Вы научитесь использовать SQL для решения более широкого спектра задач - от операций внутри баз данных до передачи данных по сети в приложения. Для этого достаточно открыть книгу на странице с интересующим вас рецептом.

Вы узнаете, как применять оконные функции и специальные операторы, а также расширенные методы работы с хранилищами данных: создание гистограмм, резюмирование данных в блоки, выполнение агрегации скользящего диапазона значений, формирование текущих сумм и подсумм. Вы сможете разворачивать строки в столбцы и наоборот, упрощать вычисления внутри строки и выполнять двойное разворачивание результирующего множества, выполнять обход строки, что позволяет использовать SQL для синтаксического разбора строки на символы, слова или элементы строки с разделителями. Приемы, предлагаемые автором, позволят оптимизировать код ваших приложений и откроют перед вами новые возможности языка SQL.

Содержание

  • Предисловие
  • Часть 1. Извлечение записей
    • Извлечение всех строк и столбцов из таблицы
    • Извлечение подмножества строк из таблицы
    • Выбор строк по нескольким условиям
    • Извлечение подмножества столбцов из таблицы
    • Как задать столбцам значимые имена
    • Обращение к столбцу в предикате WHERE по псевдониму
    • Конкатенация значений столбцов
    • Использование условной логики в выражении SELECT
    • Ограничение числа возвращаемых строк
    • Возвращение n случайных записей таблицы
    • Поиск значений NULL
    • Преобразование значений NULL в не-NULL значения
    • Поиск по шаблону
  • Часть 2. Сортировка результатов запроса
    • Возвращение результатов запроса в заданном порядке
    • Сортировка по нескольким полям
    • Сортировка по подстрокам
    • Сортировка смешанных буквенно-цифровых данных
    • Обработка значений NULL при сортировке
    • Сортировка по зависящему от данных ключу
  • Часть 3. Работа с несколькими таблицами
    • Размещение одного набора строк под другим
    • Объединение взаимосвязанных строк
    • Поиск одинаковых строк в двух таблицах
    • Извлечение из одной таблицы значений, которых нет в другой таблице
    • Извлечение из таблицы строк, для которых нет соответствия в другой таблице
    • Независимое добавление объединений в запрос
    • Выявление одинаковых данных в двух таблицах
    • Идентификация и устранение некорректного использования декартова произведения
    • Осуществление объединений при использовании агрегатных функций
    • Внешнее объединение при использовании агрегатных функций
    • Возвращение отсутствующих данных из нескольких таблиц
    • Значения NULL в операциях и сравнениях
  • Часть 4. Вставка, обновление, удаление
    • Вставка новой записи
    • Вставка значений по умолчанию
    • Переопределение значения по умолчанию значением NULL
    • Копирование строк из одной таблицы в другую
    • Копирование описания таблицы
    • Вставка в несколько таблиц одновременно
    • Блокировка вставки в определенные столбцы
    • Изменение записей в таблице
    • Обновление в случае существования соответствующих строк в другой таблице
    • Обновление значениями из другой таблицы
    • Слияние записей
    • Удаление всех записей из таблицы
    • Удаление определенных записей
    • Удаление одной записи
    • Удаление записей, которые нарушают ссылочную целостность
    • Уничтожение дублирующихся записей
    • Удаление записей, на которые есть ссылки в другой таблице
  • Часть 5. Запросы на получение метаданных
    • Как получить список таблиц схемы
    • Как получить список столбцов таблицы
    • Как получить список индексированных столбцов таблицы
    • Как получить список ограничений, наложенных на таблицу
    • Как получить список внешних ключей без соответствующих индексов
    • Использование SQL для генерирования SQL
    • Описание представлений словаря данных в базе данных Oracle
  • Часть 6. Работа со строками
    • Проход строки
    • Как вставить кавычки в строковые литералы
    • Как подсчитать, сколько раз символ встречается в строке
    • Удаление из строки ненужных символов
    • Разделение числовых и символьных данных
    • Как определить, содержит ли строка только буквенно-цифровые данные
    • Извлечение инициалов из имени
    • Упорядочивание по частям строки
    • Упорядочивание по числу в строке
    • Создание списка с разделителями из строк таблицы
    • Преобразование данных с разделителями в список оператора IN со множеством значений
    • Упорядочение строки в алфавитном порядке
    • Выявление строк, которые могут быть интерпретированы как числа
    • Извлечение n-ной подстроки с разделителями
    • Синтаксический разбор IP-адреса
  • Часть 7. Работа с числами
    • Вычисление среднего
    • Поиск минимального/максимального значения столбца
    • Вычисление суммы значений столбца
    • Подсчет строк в таблице
    • Подсчет значений в столбце
    • Вычисление текущей суммы
    • Вычисление текущего произведения
    • Вычисление текущей разности
    • Вычисление моды
    • Вычисление медианы
    • Вычисление доли от целого в процентном выражении
    • Агрегация столбцов, которые могут содержать NULL-значения
    • Вычисление среднего без учета наибольшего и наименьшего значений
    • Преобразование буквенно-цифровых строк в числа
    • Изменение значений в текущей сумме
  • Часть 8. Арифметика дат
    • Добавление и вычитание дней, месяцев и лет
    • Определение количества дней между двумя датами
    • Определение количества рабочих дней между двумя датами
    • Определение количества месяцев или лет между двумя датами
    • Определение количества секунд, минут или часов между двумя датами
    • Как подсчитать, сколько раз в году повторяется каждый день недели
    • Определение интервала времени в днях между текущей и следующей записями
  • Часть 9. Работа с датами
    • Как определить, является ли год високосным
    • Как определить количество дней в году
    • Извлечение единиц времени из даты
    • Определение первого и последнего дней месяца
    • Выбор всех дат года, выпадающих на определенный день недели
    • Определение дат первого и последнего появления заданного дня недели
    • Создание календаря
    • Получение дат начала и конца кварталов года
    • Определение дат начала и окончания заданного квартала
    • Дополнение отсутствующих дат
    • Поиск по заданным единицам времени
    • Сравнение строк по определенной части даты
    • Выявление наложений диапазонов дат
  • Часть 10. Работа с диапазонами данных
    • Поиск диапазона последовательных значений
    • Вычисление разности между значениями строк одной группы или сегмента
    • Определение начала и конца диапазона последовательных значений
    • Вставка пропущенных значений диапазона
    • Формирование последовательности числовых значений
  • Часть 11. Расширенный поиск
    • Разбиение результирующего множества на страницы
    • Как пропустить n строк таблицы
    • Использование логики OR во внешних объединениях
    • Выявление строк со взаимообратными значениями
    • Как выбрать записи с n-ым количеством наивысших значений
    • Как найти записи с наибольшим и наименьшим значениями
    • Сбор информации из последующих строк
    • Смещение значений строк
    • Ранжирование результатов
    • Исключение дубликатов
    • Ход конем
    • Формирование простых прогнозов
  • Часть 12. Составление отчетов и управление хранилищами данных
    • Разворачивание результирующего множества в одну строку
    • Разворачивание результирующего множества в несколько строк
    • Обратное разворачивание результирующего множества
    • Обратное разворачивание результирующего множества в один столбец
    • Исключение повторяющихся значений из результирующего множества
    • Разворачивание результирующего множества для упрощения вычислений
    • Создание блоков данных фиксированного размера
    • Создание заданного количества блоков
    • Создание горизонтальных гистограмм
    • Создание вертикальных гистограмм
    • Как возвратить столбцы, не перечисленные в операторе GROUP BY
    • Вычисление простых подсумм
    • Вычисление подсумм для всех возможных сочетаний
    • Как выявить строки, в которых представлены не подсуммы
    • Использование выражений CASE для маркировки строк
    • Создание разреженной матрицы
    • Группировка строк по интервалам времени
    • Агрегация разных групп/сегментов одновременно
    • Агрегация скользящего множества значений
    • Разворачивание результирующего множества, содержащего подсуммы
  • Часть 13. Иерархические запросы
    • Представление отношений родитель-потомок
    • Представление отношений потомок-родитель-прародитель
    • Создание иерархического представления таблицы
    • Выбор всех дочерних строк для заданной строки
    • Определение узлов: ветвления, концевого, корневого
  • Часть 14. Всякая всячина
    • Создание отчетов с перекрестными ссылками с помощью оператора SQL Server PIVOT
    • Обратное разворачивание отчета с помощью оператора SQL Server UNPIVOT
    • Транспонирование результирующего множества с помощью оператора Oracle MODEL
    • Извлечение элементов строки, положение которых в строке неизвестно
    • Как определить количество дней в году (альтернативное решение для Oracle)
    • Поиск смешанных буквенно-цифровых строк
    • Преобразование целых чисел в их двоичное представление с использованием Oracle
    • Разворачивание ранжированного результирующего множества
    • Как добавить заголовок столбца в дважды развернутое результирующeе множество
    • Преобразование скалярного подзапроса в составной подзапрос (Oracle)
    • Синтаксический разбор сериализованных данных в строки таблицы
    • Определение доли от целого в процентном выражении
    • Создание списка разделенных запятыми значений в Oracle
    • Выбор текста, не соответствующего шаблону (Oracle)
    • Преобразование данных с помощью вложенного запроса
    • Проверка существования значения в группе
  • Приложение A.
    • Оконные функции, краткий обзор
  • Приложение B.
    • Вспоминаем Розенштейна
  • Алфавитный указатель

Кадры Все 10

Похожие лоты

Вход

В течение нескольких секунд вам придёт SMS с одноразовым кодом для входа. Если ничего не пришло — отправьте код ещё раз.
Это бесплатно, безопасно и займёт всего несколько секунд
Войдите с помощью своего профиля

Регистрация

Введите номер вашего мобильного телефона:
Войдите с помощью электронной почты или номера телефона
Войдите с помощью своего профиля

Восстановление пароля

Укажите адрес электронной почты, который вы использовали при регистрации
Нужна помощь? Напишите нам

Восстановление пароля

Инструкции по восстановлению пароля высланы на 
Нужна помощь? Напишите нам