Самоучитель. Курс SQL. Базы данных. ORACLE
Реклама. ООО «ЛитРес», ИНН: 7719571260.
Оглавление
Группа авторов. Самоучитель. Курс SQL. Базы данных. ORACLE
Введение
Об авторе
1. Реляционные базы данных
2. Группы команд языка SQL
Контрольные вопросы №1
Ответы на контрольные вопросы №1
3. Структура команды SELECT
4. Написание простых запросов получения данных
4.1. Выборка некоторых или всех столбцов из таблицы
4.2. Использование условий при получении данных. Ключевое слово WHERE
4.3. Сортировка данных. Блок ORDER BY
4.4. Выборка данных по нескольким условиям. Использование AND и OR. Приоритеты операторов
5. Подготовка рабочего места
5.1. Скачивание и установка СУБД ORACLE
5.2. Установка программы SQL Developer и подключение к базе данных
5.3. Создание тестовой базы данных
6. Операторы сравнения IN, LIKE и BETWEEN
7. Преобразование данных
7.1 Функция to_date
7.2. Функция to_char
7.3. Функция to_number
8. Правильное обращение с NULL («пустыми» значениями)
Практические задачи №1
Решение практических задач №1
9. Соединения таблиц с помощью JOIN
9.1. Что такое соединения. Назначение соединений
9.2. LEFT JOIN. Левое внешнее соединение
9.3. INNER JOIN. Внутреннее соединение
9.4. RIGTH JOIN. Правое внешнее соединение
9.5. Применение соединений таблиц на практике
9.6. Правила хорошего тона при соединении таблиц
9.7. Алиасы (псевдонимы) таблиц
9.8. Алиасы (псевдонимы) столбцов
9.9. Осторожная работа с NULL
9.10. Оператор DISTINCT
Практические задачи №2
Решение практических задач №2
10. Использование сложных Соединений таблиц
11. Комментирование кода
12. Агрегатные функции MIN, MAX, COUNT, SUM и AVG
13. Использование Distinct внутри агрегатной функции Count
Практические задачи №3
Решение практических задач №3
14. Группировка данных посредством GROUP BY
15. Фильтрация данных на основе результатов группировки с помощью HAVING
16. Многоуровневая группировка
17. Промежуточные итоги с помощью ROLLUP
18. Самые сложные моменты в понимании группировки
Практические задачи №4
Решение практических задач №4
19. Псевдостолбцы
20. Псевдотаблица Dual
21. Полезные функции для работы с данными
21.1. Обработка и преобразование данных
21.2. Числовые функции FLOOR, CEIL, ROUND и TRUNC
21.3. Текстовые функции LENGTH, INSTR, SUBSTR, REPLACE и конкатенация строк
21.4. Текстовые функции TRIM, LTRIM, RTRIM, LPAD и RPAD
21.5. Текстовые функции LOWER и UPPER
21.6. Работа с датами в ORACLE. Разница в днях. Прибавление и вычитание указанного количества дней к дате
21.7. Функции для работы с датами ADD_MONTHS, MONTHS_BETWEEN, LAST_DAY и TRUNC
21.8. Функция EXTRACT
Практические задачи №5
Решение практических задач №5
22. Подзапросы в блоке WHERE
22.1. Конструкция IN / NOT IN
22.2. Конструкция EXISTS / NOT EXISTS
22.3. IN / NOT IN или EXISTS / NOT EXISTS: что быстрее работает
22.4. Типичные ошибки начинающего специалиста при использовании подзапросов
Практические задачи №6
Решение практических задач №6
23. Подзапросы в блоке SELECT
23.1. Решение стандартных задач
23.2. Нетипичные задачи с использованием подзапросов в блоке SELECT
23.3. Использование нескольких подзапросов в блоке SELECT для формирования одного значения
Практические задачи №7
Решение практических задач №7
24. Подзапросы в блоке FROM. SELECT из подзапроса
25. Функции обработки значений NULL
25.1. Функции NVL (ORACLE) и IFNULL (MS SQL Server, MySQL)
25.2. Функции COALESCE
25.3. Функция NVL2 (ORACLE)
26. Решение сложных задач с использованием подзапросов
27. Присоединение (JOIN) подзапросов
Практические задачи №8
Решение практических задач №8
28. Oператор CASE
28.1. Синтаксис оператора и решение простых задач
28.2. Использование CASE в блоке GROUP BY
28.3. Использование оператора CASE с подзапросами
28.4. Использование оператора CASE в блоке ORDER BY
28.5. Второй синтаксис оператора CASE
29. Функция DECODE (ORACLE)
Практические задачи №9
Решение практических задач №9
30. Объединение наборов данных с помощью UNION и UNION ALL
31. Получение разницы наборов данных с помощью оператора MINUS (ORACLE) и EXCEPT (MS SQL Server)
32. Получение пересечения наборов данных с помощью оператора INTERSECT
Практические задачи №10
Решение практических задач №10
33. Оптимизация запросов
33.1. Основные приемы оптимизации
33.2. Что такое индекс и для чего нужен
33.3. Как пользоваться индексом
33.4. Чтение плана выполнения запроса. Команда EXPLAIN PLAN
33.5. Использование хинтов
34. Аналитические (оконные) функции
34.1. Что такое аналитические (оконные) функции
34.2. Превращение агрегатных функций в аналитические
34.3. Функции ранжирования DENSE_RANK и RANK
34.4. Использование функций ранжирования для вывода Top N
34.5. Аналитические (оконные) функции FIRST_VALUE и LAST_VALUE
34.6. Аналитические (оконные) функции LAG и LEAD
Практические задачи №11
Решение Практических задач №11
35. Вставка данных в таблицу. Команда INSERT
35.1. Вставка одной строки
35.2. Использование подзапросов в команде INSERT
35.3. Решение типичных ошибок импорта данных
35.4. Вставка сразу нескольких строк. INSERT на основе SELECT-а
Практические задачи №12
Решение практических задач №12
36. Изменение данных в таблице. Команда UPDATE
Практические задачи №13
Решение практических задач №13
37. Удаление строк из таблицы. Команда DELETE
Практические задачи №14
Решение Практическиех задач №14
38. Транзакции и блокировки
38.1. Транзакции. Подтверждение и откат транзакций. Команды COMMIT и ROLLBACK
38.2. Блокировки данных
38.3. Минимизация блокировок
Практические задачи №15
Решение Практическиех задач №15
Заключение
Отрывок из книги
В каждой книге принято немного писать об авторе, чтобы было представление о том, кто её написал, об образовании и опыте автора. Поэтому ниже немного напишу о себе.
Меня зовут Илья Хохлов. Я эксперт в области информационных технологий и баз данных, предприниматель. Являюсь ведущим разработчиком программного обеспечения в собственной компании «Прайм Софт». Мы автоматизируем бизнес российских и зарубежных компаний.
.....
В таблице «Автомобили сотрудников» значение графы ID_PERS ссылается на идентификатор конкретного сотрудника. По этому идентификатору всегда можно получить все сведения о сотруднике: Фамилию Имя Отчество, в каком отделе он работает, на какой должности и т.д. В базе данных еще есть много таблиц, и почти каждая из них имеет столбец, который ссылается на другую таблицу. Например, в таблице Сотрудников, помимо прочих, может быть еще и столбец, указывающий на идентификатор филиала, в котором работает сотрудник. По идентификатору филиала в таблице Филиалов можно найти конкретную строчку с названием филиала и другой сопутствующей информацией: адресом, телефоном и т.д.
В примере, который мы разобрали выше с Сотрудниками и Автомобилями сотрудников, у каждого сотрудника может быть несколько автомобилей. Может быть! А может и не одного. Но если база данных построена так, что согласно связи, одной строчке в одной таблице потенциально может относиться несколько строчек другой таблицы, то такая связь называется один–ко–многим. Еще бывают связи один–к–одному и многие–ко–многим. Немного подробнее поговорим об этом попозже.
.....