Джефф Януччи | Изучаем SQL за месяц, занимаясь один час в день (2026) [PDF]
Автор: Джефф Януччи
Перевод: С. Гусев
Издательство: Питер
Серия: Библиотека программиста
ISBN: 978-5-4461-4494-5
Жанр: Нон-фикшн. Прикладная литература. Учебная литература
Формат: PDF
Качество: Изначально электронное (ebook)
Иллюстрации: Черно-белые
Описание:SQL, «структурированный язык запросов» (Structured Query Language) — это универсальное средство создания, управления и составления запросов к реляционным базам данных, таким как SQL Server, PostgreSQL и Oracle. Для аналитиков данных SQL — супер инструмент, позволяющий выйти за пределы обычных табличных редакторов и систем бизнес-аналитики. При этом язык SQL интуитивен и на удивление прост: немного практики во время чтения книги — и вы уже с легкостью извлекаете данные, перестраиваете таблицы и создаете яркие, наглядные отчеты и презентации!
Книга предназначена для аналитиков данных и начинающих специалистов в сфере информационных технологий, включая тех, кто не имеет ни малейшего опыта работы с реляционными базами данных. В ней вас ждут 24 компактных урока, посвященных ключевым аспектам владения языком SQL, таким как извлечение, фильтрация и обработка данных. Каждый урок завершается практической работой, рассчитанной примерно на 15 минут. Вы и не заметите, как научитесь составлять эффективные запросы, возвращающие именно те данные, что вам нужны. Постепенно у вас сформируется ценное интуитивное понимание того, как базы данных функционируют в реальных бизнес-сценариях.
Содержание
От издательства
О научном редакторе книги
Предисловие
Благодарности
Об этой книге
Для кого эта книга
Структура книги
О программном коде
Форум liveBook
Об авторе
Джефф Януччи (Jeff Iannucci)
старший консультант компании Straight Path Solutions, специализирующийся на администрировании реляционных баз данных и программировании на языке SQL. Более 20 лет он применяет SQL для решения головоломных задач, связанных с проектированием и оптимизацией баз данных. Джефф активно делится своим профессиональным опытом в качестве докладчика на отраслевых конференциях и мероприятиях пользовательских групп, публикуется на различных специализированных интернет-ресурсах и выступает в роли автора образовательного контента на платформе Pluralsight.
Глава 1. Прежде чем начать
1.1. Актуальность SQL
1.2. Подходит ли вам эта книга?
1.2.1. Спектр применения SQL
1.2.2. Диалекты SQL
1.2.3. ИИ и SQL
1.3. Как построена книга
1.3.1. Основные главы
1.3.2. Практические занятия
1.3.3. Дальнейшее изучение
1.4. Подготовка рабочего места
1.4.1. Установка MySQL и MySQL Workbench
1.4.2. Выполнение практических работ
1.5. Полезные онлайн-ресурсы
1.6. SQL в действии — с первого же дня
Глава 2. Ваш первый SQL-запрос
2.1. Кто работал с Excel — уже знаком с таблицами БД
2.2. Изучение SQL похоже на урок английского
2.3. Ваш первый SQL-запрос
2.4. Ключевые слова и термины
2.5. Практическое занятие
2.6. Ответы
Глава 3. Извлечение данных
3.1. Правила работы с инструкцией SELECT
3.1.1. Требования к SELECT
3.1.2. Ключевые и зарезервированные слова
3.1.3. Нечувствительность к регистру
3.1.4. Форматирование и пробельные символы
3.2. Извлечение данных из таблицы
3.2.1. Извлечение отдельного столбца
3.2.2. Извлечение нескольких столбцов
3.2.3. Переименование столбцов в выборке при помощи псевдонимов
3.2.4. Извлечение всех столбцов
3.3. Практическое занятие
3.4. Ответы
Глава 4. Сортировка, выборочное исключение и комментирование данных
4.1. Сортировка данных
4.1.1. Сортировка по одному столбцу
4.1.2. Сортировка по нескольким столбцам
4.1.3. Указание направления сортировки
4.1.4. Сортировка по скрытым столбцам
4.1.5. Сортировка по позиции
4.2. Ограничение выборки
4.2.1. Ограничение выборки при помощи LIMIT
4.2.2. Применение OFFSET к ограниченной выборке данных
4.2.3. Ограничение выборки в других СУБД
4.3. Комментарии к данным
4.4. Практическое занятие
4.5. Ответы
Глава 5. Выборка по заданным условиям
5.1. Фильтрация по одному условию
5.1.1. Фильтрация по числовым значениям
5.1.2. Фильтрация по строковым значениям
5.1.3. Фильтрация по значениям даты и времени
5.2. Фильтрация по нескольким условиям
5.2.1. Фильтрация с соблюдением всех условий
5.2.2. Фильтрация с соблюдением одного из многих условий
5.2.3. Управление порядком применения нескольких фильтров
5.2.4. Фильтрация в сочетании с сортировкой
5.3. Практическое занятие
5.4. Ответы
Глава 6. Фильтрация с учетом нескольких значений, диапазонов и исключений
6.1. Фильтрация по конкретным значениям
6.2. Фильтрация по диапазону значений
6.2.1. Фильтрация по открытому диапазону
6.2.2. Фильтрация по закрытому диапазону
6.3. Исключение из выборки
6.3.1. Исключение конкретного значения
6.3.2. Исключение всего условия фильтрации
6.4. Сочетание различных типов условий фильтрации
6.5. Сводный обзор операторов сравнения
6.6. Практическое занятие
6.7. Ответы
Глава 7. Выборка по подстановочным знакам и NULL-значениям
7.1. Фильтрация при помощи подстановочных знаков
7.1.1. Фильтрация при помощи знака процента
7.1.2. Фильтрация с помощью символа подчеркивания
7.2. Фильтрация по значениям null
7.2.1. Как не следует выполнять поиск NULL-значений
7.2.2. Как правильно выполнять поиск NULL-значений
7.2.3. Как выполнять поиск значений, отличных от NULL
7.3. Практическое занятие
7.4. Ответы
Глава 8. Запросы к нескольким таблицам
8.1. Принципы построения связей между данными
8.1.1. Данные без реляционных связей
8.1.2. Данные с реляционными связями
8.2. Как соединять данные
8.2.1. Соединение двух таблиц
8.2.2. Соединение нескольких таблиц
8.3. Псевдонимы таблиц
8.4. Альтернативный способ присоединения данных
8.5. Практическое занятие
8.6. Ответы
Глава 9. Применение различных видов соединений
9.1. Внутренние соединения
9.2. Внешние соединения
9.2.1. Левые внешние соединения
9.2.2. Правые внешние соединения
9.2.3. Используем внешние соединения для поиска строк без совпадений
9.2.4. Смена левых и правых соединений
9.2.5. Ключевое слово USING
9.2.6. Естественные соединения
9.3. Перекрестные (декартовы) соединения
9.4. Практическое занятие
9.5. Ответы
Глава 10. Объединение запросов с помощью операций над множествами
10.1. Применение операторов над множествами
10.2. Оператор UNION
10.3. Оператор UNION ALL
10.4. Эмуляция операции FULL OUTER JOIN в MySQL
10.5. Оператор INTERSECT
10.6. Оператор EXCEPT
10.7. Практическое занятие
10.8. Ответы
Глава 11. Применение подзапросов и логических операторов
11.1. Простой подзапрос
11.2. Логические операторы и подзапросы
11.2.1. Операторы ANY и IN
11.2.2. Операторы ALL и NOT IN
11.2.3. Операторы EXISTS и NOT EXISTS
11.3. Подзапросы в других частях запроса
11.3.1. Подзапросы в предложении FROM
11.3.2. Подзапросы в предложении SELECT
11.4. Практическое занятие
11.5. Ответы
Глава 12. Группировка данных
12.1. Агрегатные функции
12.1.1. Функция SUM
12.1.2. Функция COUNT
12.1.3. Функция MIN
12.1.4. Функция MAX
12.1.5. Функция AVG
12.1.6. Сочетание фильтрации и агрегации
12.2. Агрегирование данных посредством GROUP BY
12.2.1. Сочетание фильтрации и агрегации
12.2.2. Предложение GROUP BY и NULL-значения
12.3. Фильтрация при помощи HAVING
12.4. Логический порядок обработки SQL-запроса
12.5. Ключевое слово DISTINCT
12.6. Практическое занятие
12.7. Ответы
Глава 13. Работа с переменными
13.1. Пользовательские переменные
13.1.1. Объявляем нашу первую пользовательскую переменную
13.1.2. Правила работы с пользовательскими переменными
13.1.3. Задействуем нашу первую пользовательскую переменную
13.2. Фильтрация с помощью переменных в предложениях FROM и HAVING
13.3. Присвоение переменной неизвестного значения
13.3.1. Разберем, как работает запрос
13.3.2. Присвоение неизвестного значения переменной посредством SELECT
13.3.3. Производительность при работе с переменными
13.3.4. Диагностика и отладка при работе с переменными
13.4. Еще несколько слов о переменных
13.4.1. Присвоение литерального значения с помощью SELECT
13.4.2. Присвоение переменной значения NULL
13.4.3. Изменение типа данных переменной
13.5. Практическое занятие
13.6. Ответы
Глава 14. Работа с функциями в запросах
14.1. Минусы применения функций
14.1.1. Набор команд функций варьируется в каждой СУБД
14.1.2. Применение функций может быть неэффективным
14.2. Строковые функции
14.2.1. Функции для работы с регистром
14.2.2. Функции удаления пробельных символов (TRIM-функции)
14.2.3. Прочие строковые функции
14.3. Функции для работы с датой и временем
14.3.1. Функции даты, возвращающие числовые значения
14.3.2. Функции даты, возвращающие строковые значения
14.3.3. Прочие функции для работы с датой и временем
14.4. Информационные функции
14.4.1. Сведения о дате и времени
14.4.2. Сведения о подключении
14.5. Практическое занятие
14.6. Ответы
Глава 15. Объединение и вычисление значений при помощи функций
15.1. Объединение строковых значений
15.1.1. Функция CONCAT
15.1.2. Функция CONCAT_WS
15.1.3. Функция COALESCE
15.2. Преобразование значений
15.2.1. Функция REPLACE
15.2.2. Функции CONVERT и CAST
15.3. Функции для математических вычислений
15.4. Практическое занятие
15.5. Ответы
Глава 16. Вставка данных
16.1. Вставка конкретных значений
16.1.1. Вставка новой строки
16.1.2. Вставка нескольких строк
16.1.3. Вставка неполной строки
16.1.4. Предостережение относительно пропуска столбцов
16.2. Вставка строки посредством подзапроса
16.3. Вставка строки при помощи переменных
16.4. Практическое занятие
16.5. Ответы
Глава 17. Обновление и удаление данных
17.1. Обновление значений
17.1.1. Выполняем операции с данными в реальном времени
17.1.2. Обязательные компоненты операции обновления
17.1.3. Обновляем значения в одном или нескольких столбцах
17.1.4. Обновляем значения при помощи многотабличного запроса
17.2. Удаление строк
17.2.1. Удаляем одну или несколько строк
17.2.2. Удаляем строки при помощи многотабличного запроса
17.2.3. Удаляем все строки таблицы
17.3. Один важный совет по манипулированию данными
17.4. Практическое занятие
17.5. Ответы
Глава 18. Организация и хранение данных в таблицах
18.1. Создание таблицы
18.1.1. Что следует учесть
18.1.2. Создаем пустую таблицу
18.1.3. Вносим значения в пустую таблицу
18.2. Модификация таблицы
18.2.1. Добавляем столбец в таблицу
18.2.2. Что следует учесть при добавлении нового столбца
18.3. Первичные ключи
18.3.1. Что важно знать о первичных ключах
18.3.2. Добавляем первичный ключ (PRIMARY KEY)
18.4. Внешние ключи и ограничения 18.4.1. Диаграммы данных
18.4.2. Добавляем ограничение внешнего ключа (FOREIGN KEY)
18.5. Удаление таблицы, столбца или ограничения
18.5.1. Удаляем ограничение
18.5.2. Удаляем столбец
18.5.3. Удаляем таблицу
18.6. Практическое занятие
18.7. Ответы
Глава 19. Создание ограничений и индексов
19.1. Ограничения
19.1.1. Ограничения NOT NULL
19.1.2. Ограничения DEFAULT
19.1.3. Ограничения UNIQUE
19.1.4. Ограничения CHECK
19.2. Автоматическое приращение значений в столбце
19.3. Индексы
19.3.1. Кластеризованные индексы
19.3.2. Некластеризованные индексы
19.4. Практическое занятие
19.5. Ответы
Глава 20. Повторное использование запросов: представления и хранимые процедуры
20.1. Представления
20.1.1. Создание представлений
20.1.2. Фильтрация представлений
20.1.3. Соединение представлений
20.1.4. Что важно знать о представлениях 20.2. Хранимые процедуры
20.2.1. Создание хранимых процедур
20.2.2. Применение переменных в хранимых процедурах
20.2.3. Что важно знать о хранимых процедурах
20.3. Различия между представлениями и хранимыми процедурами
20.4. Практическое занятие
20.5. Ответы
Глава 21. Средства принятия решений в запросах
21.1. Условные функции и выражения
21.1.1. Функция COALESCE
21.1.2. Функция IFNULL
21.1.3. Выражение CASE
21.2. Управляющие конструкции
21.2.1. IF и THEN
21.2.2. ELSE
21.2.3. Набор условий
21.3. Практическое занятие
21.4. Ответы
Глава 22. Работа с курсорами
22.1. Подробнее о переменных и параметрах
22.1.1. Переменные в теле хранимых процедур
22.1.2. Выходные параметры
22.2. Курсоры
22.2.1. Устройство курсора
22.2.2. Создание курсора
22.3. Альтернативы курсорам
22.3.1. Цикл WHILE
22.3.2. Временные таблицы
22.4. Что важно учитывать при работе с курсорами
22.4.1. Мышление в терминах множеств
22.4.2. Стоит ли вообще использовать курсоры?
22.5. Практическое занятие
22.6. Ответы
Глава 23. Работа со сторонними сценариями
23.1. Сценарий стороннего разработчика: создание таблицы
23.1.1. Запрос CREATE TABLE
23.1.2. Обзор сценария CREATE TABLE
23.1.3. Доработка запроса CREATE TABLE
23.2. Сценарий стороннего разработчика: вставка данных
23.2.1. Хранимая процедура INSERT
23.2.2. Обзор хранимой процедуры INSERT
23.2.3. Доработка хранимой процедуры INSERT
23.2.4. Дальнейшая доработка хранимой процедуры INSERT
Глава 24. Все только начинается
24.1. Больше SQL
24.2. Прочие SQL-ресурсы
24.3. Счастливого пути!
Скриншоты:
Время раздачи: по мере возможности (минимум до появления первых 3-5 скачавших)