Oracle SQL. 100 шагов от новичка до профессионала. 20 дней новых знаний и практики
Қосымшада ыңғайлырақҚосымшаны жүктеуге арналған QRRuStore · Samsung Galaxy Store
Huawei AppGallery · Xiaomi GetApps

автордың кітабын онлайн тегін оқу  Oracle SQL. 100 шагов от новичка до профессионала. 20 дней новых знаний и практики

Максим Михайлович Чалышев

Oracle SQL. 100 шагов от новичка до профессионала

20 дней новых знаний и практики





Более 500 практических заданий.

Более 1000 разобранных примеров.


0+

Оглавление

  1. Oracle SQL. 100 шагов от новичка до профессионала
  2. Введение
  3. День первый
  4. Шаг 1. Что такое SQL, назначение языка
    1. Что такое базы данных, назначение баз данных
    2. Веб-технологии
    3. Мобильные устройства
    4. Игры
    5. Крупные корпорации
    6. Назначение языка SQL, необходимость изучения этого языка
    7. Вопросы учеников
  5. Шаг 2. Теория и практика. Учебная схема данных. Организация работы
    1. Общая схема процесса обучения, или Как читать данную книгу
    2. Несколько терминов
    3. Учебная схема
    4. Вопросы учеников
  6. Шаг 3. Подготовка к работе. Процесс обучения. Описание интерфейса ORACLE APEX
    1. Подготовка к работе
    2. Процесс обучения
    3. Составьте карточки
    4. Составляйте свой список вопросов
    5. Создайте свое задание
    6. Интерфейс ORACLE APEX
    7. Просмотр структуры таблиц
    8. Просмотр кода процедур
    9. Вопросы учеников
    10. Контрольные вопросы и задания для самостоятельного выполнения
  7. Шаг 4. Таблицы в базе данных
    1. Теория
    2. Таблицы нашей учебной схемы
    3. Вопросы учеников
    4. Контрольные вопросы и задания для самостоятельного выполнения
  8. Шаг 5. Типы данных
    1. Теория и практика
    2. Важные замечания
    3. Вопросы учеников
    4. Контрольные вопросы и задания для самостоятельного выполнения
  9. День второй
  10. Шаг 6. Создание таблиц
    1. Важные замечания
    2. Теория и практика
    3. Вопросы учеников
    4. Примеры
    5. Примеры
    6. Контрольные вопросы и задания для самостоятельного выполнения
  11. Шаг 7. Структура таблицы
    1. Введение
    2. Теория и практика
    3. Удаление колонки
    4. Важные замечания
    5. Вопросы учеников
    6. Контрольные вопросы и задания для самостоятельного выполнения
  12. Шаг 8. Первичные ключи. Вторичные ключи
    1. Введение
    2. Теория и практика
    3. Важные замечания
    4. Вопросы учеников
    5. Контрольные вопросы и задания для самостоятельного выполнения
  13. Шаг 9. Ограничения
    1. Введение
    2. Теория и практика
    3. 1. Ограничения на вставку пустых значений NOT NULL
    4. Ограничения на уникальность
    5. Ограничения на вторичный ключ
    6. Важные замечания
    7. Вопросы учеников
    8. Контрольные вопросы и задания для самостоятельного выполнения
  14. Шаг 10. Индексы
    1. Введение
    2. Теория и практика
    3. Важные замечания
    4. Вопросы учеников
    5. Контрольные вопросы и задания для самостоятельного выполнения
  15. День третий
  16. Шаг 11. Простые запросы
    1. Введение
    2. Теория и практика
    3. Важные замечания
    4. Вопросы учеников
    5. Контрольные вопросы и задания для самостоятельного выполнения
  17. Шаг 12. Более сложные условия. Знакомимся с логикой выбора строк
    1. Введение
    2. Теория и практика
    3. Важные замечания
    4. Вопросы учеников
    5. Контрольные вопросы и задания для самостоятельного выполнения
  18. Шаг 13. Сортировка результатов запросов
    1. Введение
    2. Теория и практика
    3. Важные замечания
    4. Вопросы учеников
    5. Контрольные вопросы и задания для самостоятельного выполнения
  19. Шаг 14. Ограничение на количество выбранных строк ROWNUM, TOP (n)
    1. Введение
    2. Теория и практика
    3. Синтаксис
    4. Важные замечания
    5. Вопросы учеников
    6. Контрольные вопросы и задания для самостоятельного выполнения
  20. Шаг 15. Вставка данных в таблицу — INSERT
    1. Введение
    2. Теория и практика
    3. Важные замечания
    4. Вопросы учеников
    5. Контрольные вопросы и задания для самостоятельного выполнения
  21. День четвертый
  22. Шаг 16. Обновление данных — UPDATE
    1. Введение
    2. Теория и практика
    3. Синтаксис команды
    4. Важные замечания
    5. Вопросы учеников
    6. Контрольные вопросы и задания для самостоятельного выполнения
  23. Шаг 17. Удаление данных — DELETE
    1. Введение
    2. Теория и практика
    3. Синтаксис
    4. Важные замечания
    5. Вопросы учеников
    6. Контрольные вопросы и задания для самостоятельного выполнения
  24. Шаг 18. Псевдонимы
    1. Введение
    2. Теория и практика
    3. Важные замечания
    4. Вопросы учеников
    5. Контрольные вопросы и задания для самостоятельного выполнения
  25. Шаг 19. BETWEEN
    1. Введение
    2. Теория и практика
    3. Важные замечания
    4. Вопросы учеников
    5. Контрольные вопросы и задания для самостоятельного выполнения
  26. Шаг 20. DISTINCT, дубликаты значений
    1. Введение
    2. Теория и практика
    3. Важные замечания
    4. Вопросы учеников
    5. Контрольные вопросы и задания для самостоятельного выполнения
  27. День пятый
  28. Шаг 21. Математика в запросах
    1. Введение
    2. Теория и практика
    3. Важные замечания
    4. Вопросы учеников
    5. Контрольные вопросы и задания для самостоятельного выполнения
  29. Шаг 22. Запрос к результату выражения и специальная таблица DUAL
    1. Введение
    2. Теория и практика
    3. Важные замечания
    4. Вопросы учеников
    5. Контрольные вопросы и задания для самостоятельного выполнения
  30. Шаг 23. Пустые значения в базе. NULL, NOT NULL, NVL
    1. Введение
    2. Теория и практика
    3. Важные замечания
    4. Вопросы учеников
    5. Контрольные вопросы и задания для самостоятельного выполнения
  31. Шаг 24. Оператор LIKE
    1. Введение
    2. Теория и практика
    3. Важные замечания
    4. Вопросы учеников
    5. Контрольные вопросы и задания для самостоятельного выполнения
  32. Шаг 25. Работаем с датами
    1. Введение
    2. Теория и практика
    3. Важные замечания
    4. Вопросы учеников
    5. Контрольные вопросы и задания для самостоятельного выполнения
  33. День шестой
  34. Шаг 26. Функции и операторы для работы со строками и текстом
    1. Введение
    2. Теория и практика
    3. Важные замечания
    4. Вопросы учеников
    5. Контрольные вопросы и задания для самостоятельного выполнения
  35. Шаг 27. Математика и пустые значения в запросах. Случайность — RANDOM
    1. Введение
    2. Теория и практика
    3. Математика и пустые значения NULL
    4. Генерация случайных чисел
    5. Важные замечания
    6. Вопросы учеников
    7. Контрольные вопросы и задания для самостоятельного выполнения
  36. Шаг 28. Оператор IN
    1. Введение
    2. Теория и практика
    3. Важные замечания
    4. Вопросы учеников
    5. Контрольные вопросы и задания для самостоятельного выполнения
  37. Шаг 29. Объединение нескольких таблиц в запросе
    1. Введение
    2. Теория и практика
    3. Важные замечания
    4. Вопросы учеников
    5. Контрольные вопросы и задания для самостоятельного выполнения
  38. Шаг 30. Правое и левое объединение таблиц
    1. Введение
    2. Теория и практика
    3. Важные замечания
    4. Вопросы учеников
    5. Контрольные вопросы и задания для самостоятельного выполнения
  39. День седьмой
  40. Шаг 31. Объединение нескольких таблиц, дополнительные условия и сортировка результатов
    1. Введение
    2. Теория и практика
    3. Важные замечания
    4. Вопросы учеников
    5. Контрольные вопросы и задания для самостоятельного выполнения
  41. Шаг 32. Группировка данных и агрегатные функции
    1. Введение
    2. Теория и практика
    3. Важные замечания
    4. Вопросы учеников
    5. Контрольные вопросы и задания для самостоятельного выполнения
  42. Шаг 33. Сложные группировки с объединениями, сортировка результатов
    1. Введение
    2. Теория и практика
    3. Важные замечания
    4. Вопросы учеников
    5. Контрольные вопросы и задания для самостоятельного выполнения
  43. Шаг 34. HAVING как фильтр для групп и сложные группировки данных. ROWID — уникальный идентификатор строки. Дубликаты строк
    1. Введение
    2. Теория и практика
    3. Дубли строк
    4. Важные замечания
    5. Вопросы учеников
    6. Контрольные вопросы и задания для самостоятельного выполнения
  44. Шаг 35. Подзапрос для множеств WHERE IN SELECT
    1. Введение
    2. Теория и практика
    3. Важные замечания
    4. Вопросы учеников
    5. Контрольные вопросы и задания для самостоятельного выполнения
  45. День седьмой
  46. Шаг 36. Подзапросы EXISTS
    1. Введение
    2. Теория и практика
    3. Важные замечания
    4. Вопросы учеников
    5. Контрольные вопросы и задания для самостоятельного выполнения
  47. Шаг 37. Подзапрос как новая колонка запроса
    1. Введение
    2. Теория и практика
    3. Важные замечания
    4. Вопросы учеников
    5. Контрольные вопросы и задания для самостоятельного выполнения
  48. Шаг 38. Подзапрос как источник данных после FROM
    1. Введение
    2. Теория и практика
    3. Важные замечания
    4. Вопросы учеников
    5. Контрольные вопросы и задания для самостоятельного выполнения
  49. Шаг 39. Повторение темы подзапросов. Подзапросы в запросах с группировкой данных
    1. Введение
    2. Теория и практика
    3. Важные замечания
    4. Вопросы учеников
    5. Контрольные вопросы и задания для самостоятельного выполнения
  50. Шаг 40. Сочетание разных типов подзапросов
    1. Введение
    2. Теория и практика
    3. Важные замечания
    4. Вопросы учеников
    5. Контрольные вопросы и задания для самостоятельного выполнения
  51. День девятый
  52. Шаг 41. Предикаты ANY, SOME и ALL
    1. Введение
    2. Теория и практика
    3. Важные замечания
    4. Вопросы учеников
    5. Контрольные вопросы и задания для самостоятельного выполнения
  53. Шаг 42. Преобразование типов данных
    1. Введение
    2. Теория и практика
    3. Важные замечания
    4. Вопросы учеников
    5. Контрольные вопросы и задания для самостоятельного выполнения
  54. Шаг 43. Объединение таблицы с самой же собой
    1. Введение
    2. Теория и практика
    3. Важные замечания
    4. Вопросы учеников
    5. Контрольные вопросы и задания для самостоятельного выполнения
  55. Шаг 44. Операторы для работы с множествами — UNION, UNION ALL
    1. Введение
    2. Теория и практика
    3. Вопросы учеников
    4. Контрольные вопросы и задания для самостоятельного выполнения
  56. Шаг 45. Операторы MINUS, INTERSECT
    1. Введение
    2. Теория и практика
    3. Важные замечания
    4. Вопросы учеников
    5. Контрольные вопросы и задания для самостоятельного выполнения
  57. День десятый
  58. Шаг 46. Повторение материала. Сочетание операторов множеств и предикатов
    1. Введение
    2. Теория и практика
    3. Важные замечания
    4. Вопросы учеников
    5. Контрольные вопросы и задания для самостоятельного выполнения
  59. Шаг 47. Обновление данных и удаление данных с использованием подзапросов
    1. Введение
    2. Теория и практика
    3. Важные замечания
    4. Вопросы учеников
    5. Контрольные вопросы и задания для самостоятельного выполнения
  60. Шаг 48. Нормализация. Проектирование базы данных. Основы
    1. Введение
    2. Теория и практика
    3. Первая нормальная форма
    4. Вторая нормальная форма
    5. Третья нормальная форма
    6. Важные замечания
    7. Вопросы учеников
    8. Контрольные вопросы и задания для самостоятельного выполнения
  61. Шаг 49. Сложные задачи с собеседований в крупные компании с решениями
    1. Введение
    2. Задачи
  62. Шаг 50. Сложные задачи и вопросы для самостоятельного выполнения
    1. Введение
  63. День одиннадцатый
  64. Шаг 51. SQL — расширенные знания. Чем дальше, тем… интереснее
    1. Введение
    2. Контрольные вопросы для закрепления материала
    3. Теория и практика
    4. Важные замечания
    5. Установка
    6. Соединение с базой данных под учетной записью администратора
    7. Вопросы учеников
  65. Шаг 52. Вставка данных из запроса
    1. Введение
    2. Теория и практика
    3. Важные замечания
    4. Вопросы учеников
    5. Контрольные вопросы и задания для самостоятельного выполнения
  66. Шаг 53. Создание таблиц на основе запроса
    1. Введение
    2. Теория и практика
    3. Важные замечания
    4. Вопросы учеников
    5. Контрольные вопросы и задания для самостоятельного выполнения
  67. Шаг 54. PIVOT — переворачиваем запрос с группировкой
    1. Введение
    2. Теория и практика
    3. Важные замечания
    4. Вопросы учеников
    5. Контрольные вопросы и задания для самостоятельного выполнения
  68. Шаг 55. Использование итераторов
    1. Введение
    2. Теория и практика
    3. Важные замечания
    4. Вопросы учеников
    5. Контрольные вопросы и задания для самостоятельного выполнения
  69. День двенадцатый
  70. Шаг 56. Иерархические запросы CONNECT BY
    1. Введение
    2. Теория и практика
    3. Важные замечания
    4. Вопросы учеников
    5. Контрольные вопросы и задания для самостоятельного выполнения
  71. Шаг 57. Условные выражения в SQL-запросе. DECODE/CASE
    1. Введение
    2. Теория и практика
    3. Важные замечания
    4. Вопросы учеников
    5. Контрольные вопросы и задания для самостоятельного выполнения
  72. Шаг 58. Временные таблицы. Когда лучше применять
    1. Введение
    2. Теория и практика
    3. Отличие ОN COMMIT PRESERVE ROWS от ОN COMMIT DELETE ROWS
    4. Важные замечания
    5. Вопросы учеников
    6. Контрольные вопросы и задания для самостоятельного выполнения
  73. Шаг 59. Регулярные выражения в SQL
    1. Введение
    2. Теория и практика
    3. Важные замечания
    4. Вопросы учеников
    5. Контрольные вопросы и задания для самостоятельного выполнения
  74. Шаг 60. Аналитический SQL. Запросы рейтингов. Накопительный итог
    1. Введение
    2. Теория и практика
    3. Важные замечания
    4. Вопросы учеников
    5. Контрольные вопросы и задания для самостоятельного выполнения
  75. День тринадцатый
  76. Шаг 61. Аналитический SQL. Конструкции окна. Первая и последняя строки
    1. Введение
    2. Теория и практика
    3. Важные замечания
    4. Вопросы учеников
    5. Контрольные вопросы и задания для самостоятельного выполнения
  77. Шаг 62. Конструкция KEEP FIRST/LAST
    1. Введение
    2. Теория и практика
    3. Важные замечания
    4. Вопросы учеников
    5. Контрольные вопросы и задания для самостоятельного выполнения
  78. Шаг 63. Конструкция WITH
    1. Введение
    2. Теория и практика
    3. Важные замечания
    4. Вопросы учеников
    5. Контрольные вопросы и задания для самостоятельного выполнения
  79. Шаг 64. Конструкция With и функции
    1. Введение
    2. Теория и практика
    3. Важные замечания
    4. Вопросы учеников
    5. Контрольные вопросы и задания для самостоятельного выполнения
  80. Шаг 65. Группировки с DECODE и CASE
    1. Введение
    2. Теория и практика
    3. Важные замечания
    4. Вопросы учеников
    5. Контрольные вопросы и задания для самостоятельного выполнения
  81. День четырнадцатый
  82. Шаг 66. Преобразуем запрос в строчку LISTAGG
    1. Введение
    2. Теория и практика
    3. Важные замечания
    4. Вопросы учеников
    5. Контрольные вопросы и задания для самостоятельного выполнения
  83. Шаг 67. Работаем с JSON
    1. Введение
    2. Теория и практика
    3. Важные замечания
    4. Вопросы учеников
    5. Контрольные вопросы и задания для самостоятельного выполнения
  84. Шаг 68. Высший пилотаж SQL. MODEL
    1. Введение
    2. Теория и практика
    3. Важные замечания
    4. Вопросы учеников
    5. Контрольные вопросы и задания для самостоятельного выполнения
  85. Шаг 69. MODEL-аналитика, сложные последовательности и массивы
    1. Введение
    2. Теория и практика
    3. Важные замечания
    4. Вопросы учеников
    5. Контрольные вопросы и задания для самостоятельного выполнения
  86. Шаг 70. TIMESTAMP и DATE
    1. Введение
    2. Теория и практика
    3. Важные замечания
    4. Вопросы учеников
    5. Контрольные вопросы и задания для самостоятельного выполнения
  87. День пятнадцатый
  88. Шаг 71. Фрагментация таблиц, секционирование
    1. Введение
    2. Теория и практика
    3. Фрагментация таблиц
    4. Фрагментация по диапазону значений
    5. Фрагментация по списку значений
    6. Фрагментация с использованием хэш-функции
    7. Совмещенный тип фрагментации
    8. Специфика использования оператора SELECT для выбора данных из фрагментированных таблиц
    9. Управление данными во фрагментах таблицы
    10. Контрольные вопросы и задания для самостоятельного выполнения
  89. Шаг 72. Работаем с XML в SQL
    1. Введение
    2. Теория и практика
    3. Важные замечания
    4. Вопросы учеников
    5. Контрольные вопросы и задания для самостоятельного выполнения
  90. Шаг 73. Сложные группировки SET GROUP CUBE
    1. Введение
    2. Теория и практика
    3. Важные замечания
    4. Вопросы учеников
    5. Контрольные вопросы и задания для самостоятельного выполнения
  91. Шаг 74. Представления
    1. Введение
    2. Теория и практика
    3. Важные замечания
    4. Вопросы учеников
    5. Контрольные вопросы и задания для самостоятельного выполнения
  92. Шаг 75. Синонимы
    1. Введение
    2. Теория и практика
    3. Важные замечания
    4. Вопросы учеников
    5. Контрольные вопросы и задания для самостоятельного выполнения
  93. День шестнадцатый
  94. Шаг 76. Ретроспективные запросы
    1. Введение
    2. Теория и практика
    3. Важные замечания
    4. Вопросы учеников
    5. Контрольные вопросы и задания для самостоятельного выполнения
  95. Шаг 77. ORACLE DATABASE LINK и соединение с другой базой данных
    1. Введение
    2. Теория и практика
    3. Важные замечания
    4. Вопросы учеников
    5. Контрольные вопросы и задания для самостоятельного выполнения
  96. Шаг 78. Индексы сложные, индексы по функции
    1. Введение
    2. Теория и практика
    3. Важные замечания
    4. Вопросы учеников
    5. Контрольные вопросы и задания для самостоятельного выполнения
  97. Шаг 79. Корзина в ORACLE
    1. Введение
    2. Теория и практика
    3. Важные замечания
    4. Вопросы учеников
    5. Контрольные вопросы и задания для самостоятельного выполнения
  98. Шаг 80. Массовая операция вставки данных
    1. Введение
    2. Теория и практика
    3. Важные замечания
    4. Вопросы учеников
    5. Контрольные вопросы и задания для самостоятельного выполнения
  99. День семнадцатый
  100. Шаг 81. Массовое обновление данных
    1. Введение
    2. Теория и практика
    3. Важные замечания
    4. Вопросы учеников
    5. Контрольные вопросы и задания для самостоятельного выполнения
  101. Шаг 82. Команда MERGE
    1. Введение
    2. Теория и практика
    3. Важные замечания
    4. Вопросы учеников
    5. Контрольные вопросы и задания для самостоятельного выполнения
  102. Шаг 83. Транзакции и блокировки
    1. Введение
    2. Теория и практика
    3. Важные замечания
    4. Вопросы учеников
    5. Контрольные вопросы и задания для самостоятельного выполнения
  103. Шаг 84. Режим SERIALIZABLE
    1. Введение
    2. Теория и практика
    3. Важные замечания
    4. Вопросы учеников
    5. Контрольные вопросы и задания для самостоятельного выполнения
  104. Шаг 85. Материализованные представления
    1. Введение
    2. Теория и практика
    3. Важные замечания
    4. Вопросы учеников
    5. Контрольные вопросы и задания для самостоятельного выполнения
  105. День восемнадцатый
  106. Шаг 86. Контекст сеанса
    1. Введение
    2. Теория и практика
    3. Важные замечания
    4. Вопросы учеников
    5. Контрольные вопросы и задания для самостоятельного выполнения
  107. Шаг 87. Планировщик JOB-заданий. Управление
    1. Введение
    2. Теория и практика
    3. Важные замечания
    4. Вопросы учеников
    5. Контрольные вопросы и задания для самостоятельного выполнения
  108. Шаг 88. Таблицы в ORACLE SQL. Дополнительные сведения
    1. Введение
    2. Теория и практика
    3. Таблица, организованная по индексу — INDEX ORGANIZED TABLE, IOT
    4. Таблицы в общем кластере
    5. Сжатие таблиц в ORACLE
    6. Оценка физического размера таблиц, объема дискового пространства
    7. Важные замечания
    8. Вопросы учеников
    9. Контрольные вопросы и задания для самостоятельного выполнения
  109. Шаг 89. Быстрая очистка таблиц и EXECUTE IMMEDIATE
    1. Введение
    2. Теория и практика
    3. Важные замечания
    4. Вопросы учеников
    5. Контрольные вопросы и задания для самостоятельного выполнения
  110. Шаг 90. Объекты базы данных
    1. Введение
    2. Теория и практика
    3. Таблицы
    4. Индексы
    5. Ограничения
    6. Представления
    7. Триггеры
    8. Функции
    9. Процедуры
    10. Пакеты
    11. Синонимы
    12. DATABASE LINK
    13. Материализованные представления
    14. Важные замечания
    15. Вопросы учеников
    16. Контрольные вопросы и задания для самостоятельного выполнения
  111. День девятнадцатый
  112. Шаг 91. Последовательности и формирование первичного ключа
    1. Введение
    2. Теория и практика
    3. Важные замечания
    4. Вопросы учеников
    5. Контрольные вопросы и задания для самостоятельного выполнения
  113. Шаг 92. Пользователь и схема. Разграничение прав, роли
    1. Введение
    2. Теория и практика
    3. Системные административные пользователи (SYS SYSTEM)
    4. Система прав и ролей
    5. Таблицы с информацией о ролях пользователей
    6. Объектные привилегии
    7. Системные привилегии
    8. Роли
    9. Вопросы учеников
    10. Контрольные вопросы и задания для самостоятельного выполнения
  114. Шаг 93. Системные представления. Сведения об объектах схемы
    1. Введение
    2. Теория и практика
    3. Важные замечания
    4. Вопросы учеников
    5. Контрольные вопросы и задания для самостоятельного выполнения
  115. Шаг 94. Системные представления. Сведения об объектах базы данных
    1. Введение
    2. Теория и практика
    3. Важные замечания
    4. Вопросы учеников
    5. Контрольные вопросы и задания для самостоятельного выполнения
  116. Шаг 95. Внешние таблицы EXTERNAL TABLE
    1. Введение
    2. Теория и практика
    3. Важные замечания
    4. Вопросы учеников
    5. Контрольные вопросы и задания для самостоятельного выполнения
  117. День двадцатый
  118. Шаг 96. Оптимизатор запросов, чтение плана запроса
    1. Введение
    2. Теория и практика
    3. Доступ к данным
    4. Операции
    5. Важные замечания
    6. Вопросы учеников
    7. Контрольные вопросы и задания для самостоятельного выполнения
  119. Шаг 97. Подсказки оптимизатору
    1. Введение
    2. Теория и практика
    3. Важные замечания
    4. Вопросы учеников
    5. Контрольные вопросы и задания для самостоятельного выполнения
  120. Шаг 98. Задачи с собеседований в крупные компании и фирмы
    1. Практика
  121. Шаг 99. Задачи для самостоятельного выполнения
    1. Практика
  122. Шаг 100. Подводим итоги. Задачи. Что изучать и читать дальше?
    1. Дополнительные материалы
    2. Литература к прочтению

SQL.100 шагов от новичка до профессионала

20 дней новых знаний и практики.

Более 300 ответов на вопросы.

Более 500 практических заданий.

Более 1000 разобранных примеров.


Данную книгу я посвящаю своим друзьям:

Кузнецову Алексею — профессионалу управления в сфере ИТ,

Коршакову Артему — будущему высококлассному IT-специалисту.


Чалышев Максим

Введение

Приветствую. Сначала как автор этой книги расскажу немного о своем профессиональном опыте. На данный момент я работаю в сфере информационных технологий уже почти 20 лет.

Основной моей специализацией в ИТ были и остаются базы данных и, прежде всего, СУБД ORACLE.


В первый раз я познакомился с данной СУБД в институте, один из моих преподавателей проходил стажировку в США. Он рассказывал студентам о базе данных ORACLE, о применении на производстве, в финансовых организациях, в крупных государственных учреждениях.


Во время изучения я был очарован четкой и понятной организацией структур информации в СУБД ORACLE, обширностью средств работы с данными, ее мощностью и вместе с тем неповторимой гибкостью, а также уникальными возможностями данной СУБД.


Далее, после института и защиты диплома, в течение нескольких лет я работал на крупном производственном предприятии, информационная система которого была построена преимущественно на использовании СУБД ORACLE.


Потоки данных представлялись грандиозными для того времени, каждый день сервер ORACLE рассчитывал сотни тысяч производственных компонентов, технологических маршрутов, спецификаций изделий.


Стоит понимать, что на дворе был конец XX века и объемы, которые тогда казались нам огромными, сейчас вызывают улыбку, технологические мощности ушли далеко вперед, и сейчас даже средний ноутбук сопоставим по быстродействию с многопроцессорными серверами тех лет.


Поле этого я перешел в сектор телекоммуникаций, и именно здесь в своей работе я столкнулся с быстрыми транзакциями, а также обработкой огромных объемов данных в сотни и сотни миллионов записей.


Далее была длительная работа в процессинге крупного банка, где также использовалась СУБД ORACLE, интернет-сатрапе средней компании-разработчика ПО, на этом этапе я познакомился с СУБД других производителей, таких как MS SQL PostgreSQL, MySQL; также я работал на большом DWH-проекте, где объемы в миллиарды записей передавались за считаные минуты.


И каждый раз, сталкиваясь с новой для себя сферой, я открывал дополнительные возможности и новые уникальные приемы разработки, которыми и хотел бы поделиться в этой книге.


Именно после многих лет работы начинаешь осознавать, что практика и теория отличаются. Те примеры, которые описаны в документации, могут работать по-разному в разных условиях, а также иметь множество нюансов использования в конкретной ситуации в конкретной сфере.


Основой моей работы была именно СУБД ORACLE, хотя я также неизбежно сталкивался вплотную и с другими технологиями, такими как Java, SAS, Python, веб-разработка JavaScript, Node JS.


Важно осознавать, что ORACLE сейчас представляет собой целый конгломерат производственных решений, куда входит, например, ORACLE Siebel CRM, JаVA, ORACLE Service Bus, но все же основным продуктом данной корпорации была и остается именно СУБД ORACLE.


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

Адрес курсов www.sqladv.ru

Вопросы учеников, часть практических примеров взяты непосредственно с этих курсов.

День первый

Шаг 1. Что такое SQL, назначение языка

Приветствую вас, уважаемый читатель. Позволю написать несколько слов о себе.


На текущий момент вот уже более 20 лет я работаю IT-специалистом. Я занимал должности архитектора, администратора баз данных, разработчика баз данных.

У меня также есть своя IT-школа sqladv.ru, где один из курсов, который я веду сам, посвящен разработке баз данных и языку SQL.


Эта книга представляет собой также своеобразный курс обучения: с помощью данной книги, упорно занимаясь, вы освоите язык SQL от начального уровня до уровня ведущего разработчика.


В данной книге рассмотрен диалект языка ORACLE SQL как один из наиболее распространенных на сегодняшний день. Также специалисты ORACLE обычно имеют более высокую зарплату по сравнению с другими разработчиками.


Когда я преподавал в своей IT-школе sqladv.ru, то убедился, что программирование — это, прежде всего, практика, поэтому в каждой главе данной книги разбираются актуальные примеры и всегда присутствует несколько практических заданий, обязательных для выполнения.


В каждой главе книги вы сможете найти наиболее интересные и актуальные вопросы моих учеников, разумеется, с моими ответами.


Итак, перейдем непосредственно к теоретической части.

Что такое базы данных, назначение баз данных

Трудно себе представить, что раньше вся информация размещалась на бумажных носителях и архивы документов занимали подчас целые здания.


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


Огромное количество таких систем работает под управлением баз данных. Спектр применения систем управления базами данных на сегодняшний день практически необъятен — базы данных используются в интернете, в производстве, в промышленности, в маркетинге, в мобильных устройствах, в финансовой и банковской сферах, на телевидении, в телекоммуникациях и рекламе.


Какова применимость баз данных, то есть где используются базы данных?

Вот лишь некоторые области, где базы данных нашли применение.

Веб-технологии

Веб-технологии проникли в нашу жизнь, и без них уже сложно представить современный мир. Социальные сети, почта, поисковые системы, онлайн-сервисы погоды и навигации — всем этим большинство из нас пользуется ежедневно.


Почти все онлайн-ресурсы работают с базами данных. Практически каждый сайт, поисковая система, социальная сеть построены на основе баз данных и используют язык SQL.


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

Мобильные устройства

Большинство мобильных приложений, приложений для планшетов также использует базы данных в своей работе. Система управления базами данных для мобильных устройств называется SQLite. SQLite имеет ряд особенностей, связанных с характеристиками мобильных устройств, но в целом использует такой же синтаксис SQL, как и другие базы данных.

Игры

Современные компьютерные игры также невозможны без использования баз данных. Игры — это множество объектов, игроков, карт, вооружений, стратегий, юнитов… С этой информацией надо активно работать. Без систем управления базами данных тут не обойтись. И если вы планируете связать свою жизнь с интереснейшей профессией игрового дизайнера или программиста компьютерных игр, знание баз данных будет для вас очень и очень желательным.

Крупные корпорации

Во всех без исключения крупных компаниях используются базы данных. Системы управления базами данных управляют банкоматами и пунктами выдачи наличных, на них реализованы бухгалтерия, учет и управление кадрами. Системы управления базами данных считают телефонные звонки по тарифам, вычисляют стоимость интернет-подключений и трафика.


Если вы работаете в крупной компании или собираетесь связать свою карьеру с работой на корпорацию, вам необходимо понимать, что такое база данных, принципы ее устройства, знать и понимать язык для работы с базами — SQL.

Назначение языка SQL, необходимость изучения этого языка

Structured Query Language (SQL) — язык структурированных запросов.


Язык запросов SQL — универсальный язык для работы с данными базы. Язык запросов SQL используется для управления массивами данных в БД, множествами.


Язык SQL предоставляет возможность для вывода структурированной заданной информации из базы. SQL также применяется для изменения данных, добавления данных из базы.


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


Следует отметить, что системы управления базами данных — СУБД — имеют различные реализации, такие как ORACLE, MS SQL, MY SQL.


Язык SQL в разных СУБД имеет небольшие отличия, например в детальном синтаксисе описания операторов.

Такие отличия присутствуют в специальных функциях, относящихся к той или иной СУБД, но все же в основном язык — это общий синтаксис, практически идентичный для любой СУБД.

В данном курсе мы будем рассматривать общепринятый синтаксис SQL ORACLE.


Данная книга, как я ранее писал, обучает диалекту ORACLE SQL как наиболее востребованному и сложному, но на страницах книги вы также сможете найти некоторые примеры на других диалектах.

Вопросы учеников

Я программирую на PHP, пригодятся ли мне знания из данной книги?

Да, язык PHP используется для доступа к данным команды SQL, поэтому если вы намерены повышать свой профессиональный уровень, вам необходимо изучить материалы этой книги.

Какой уровень знаний у меня будет после прочтения данной книги и выполнения всех практических заданий?

Вы будете знать SQL на профессиональном уровне, вполне достаточном для разработки сложных баз данных.

В данный момент получили широкое распространение NoSQL базы данных, какой язык используется для работы с такими СУБД?

Для каждой NoSQL СУБД используется свой язык программирования, отличный от SQL, разумеется.

С каким уровнем знаний можно приступить к чтению этой книги?

С начальным уровнем знаний. Вполне достаточно небольшого уровня компьютерной грамотности.

Шаг 2. Теория и практика. Учебная схема данных. Организация работы

Научиться языку SQL на профессиональном уровне по данной книге вполне реально, более того — я не вижу причин, по которым это может не получиться. Разумеется, многое зависит от вашего личного упорства, методичности обучения, системности выполнения практических заданий. Выделите каждый день по три–четыре часа вашего времени, и уже через три недели вы сможете писать SQL-запросы любой сложности.


Книга называется «100 шагов», и это соответствует действительности: это 100 шагов, которые вам необходимо пройти, для того чтобы овладеть SQL и базами данных на профессиональном уровне. Каждый шаг представляет собой отдельную главу книги. Глава книги — обзор определенного вопроса или темы по предмету: базы данных или язык SQL.


Каждая глава поделена, в свою очередь, на следующие разделы:


1. Введение — в этом разделе рассказывается, собственно, о предмете или теме, которой посвящается данная глава книги.

2. Теория и практика — читателю даются теоретические обоснования темы, разбирается синтаксис рассматриваемых в главе операторов. Приводятся понятные и доступные примеры.

3. Важные замечания — в любой теме есть свои особенности, свои нюансы, эти нюансы и обозреваются в разделе.

4. Вопросы учеников — здесь я отвечаю на наиболее популярные и интересные вопросы, которые задавали мне слушатели моих курсов.

5. Контрольные вопросы и задания для самостоятельного выполнения — вопросы по уроку, вопросы и задания, которые вам необходимо решить самим.

Общая схема процесса обучения, или Как читать данную книгу

Книгу следует рассматривать как учебное пособие, и я не стану скрывать, что в книге используются материалы моих курсов по обучению базам данных и языку SQL школы sqladv.ru.

Внимательно изучите теорию, запомните, проанализируйте синтаксис команд.


Все примеры необходимо прорешивать, самостоятельно писать запросы, создавать схемы, размышлять над теоретическим обоснованием примера, то есть стараться понять, почему получается так, а не иначе.

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


Особое внимание следует уделить вопросам, рассматриваемым в разделах «Важные замечания» и «Вопросы учеников». Именно в этих разделах, как правило, содержится наиболее важная и полезная информация.

Несколько терминов

Иногда в тексте книги могут встретиться некоторые сокращения и специальные термины; расшифруем их значение.

СУБД — система управления базами данных — совокупность программных средств, обеспечивающих управление созданием и использованием баз данных. Наиболее распространенные: ORACLE, MS SQL, mySQL, PostgreeSQL.

БД — база данных — совокупность данных, хранимых в соответствии со схемой данных, манипулирование которыми выполняют в соответствии с правилами средств моделирования данных.

Учебная схема

Для занятий нам понадобится учебная схема данных.

И есть хорошая новость.

Многие примеры начального курса могут быть выполнены онлайн, для этого вам потребуется просто перейти по заданной ссылке и заполнить некоторые поля.

Итак, большинство примеров и практических заданий вы сможете выполнить на онлайн-сервисах.


Первый сервис предоставляет компания ORACLE для разработки, я уже зарегистрировал там аккаунт, и сейчас там уже есть все таблицы, которые нам потребуются в учебе.

Также там есть все необходимые заполненные данные для выполнения учебных задач и запросов.

Вам достаточно пройти по ссылке


https://apex.oracle.com/pls/apex/


и ЗАПОЛНИТЬ регистрационную информацию.

Рисунок 1. Форма авторизации в APPEX

Первое поле сверху мы заполняем SQLADV, во второе поле мы вносим имя пользователя student1 и заполняем пароль — также student1.


Также будут работать учетные записи: student2/, student2, student3/, student3… student11/, student11).


Перед вами откроется среда разработки.

Выберите пункт меню SQL Workshop, а дальше SQL ComMANd.


Пред вами откроется среда выполнения SQL-запросов.


Напишите следующий учебный запрос:

SELECT * FROM AUTO;

Нажмите кнопку RUN SQL, и далее в нижней части экрана должен появиться результат выполнения запроса.


Это и будет тот сервис, которым вы в основном сможете пользоваться для выполнения практических заданий.

Данный ресурс предоставлен компанией ORACLE в рекламных маркетинговых целях.


Если не устраивает данный сервис или почему-то этот сервис у вас не работает, тогда существует второй способ.

Вы можете воспользоваться сервисом SQL-Фидель.


Учебная схема, по которой необходимо заниматься, состоит из нескольких таблиц, которые заполнены соответствующими данными.


Введите в поле браузера ссылку

http://sqlfIDdle.com/.

Выберите тип базы данных ORACLE 11 g r2.


Далее вам потребуется загрузить учебную схему, по которой мы будем заниматься. Скрипт учебной схемы находится по следующей ссылке в текстовом документе:

http://sqladv.ru/dev/sql.txt.


Скопируйте содержимое скрипта в поле в левой части экрана и нажмите кнопку BuildSchema.


После чего уже в правой части экрана SQLFIDlle вы сможете писать необходимые запросы и выполнять учебные задания.


Учебные запросы в SQLFIDdle пишутся в текстовом поле в правой части экрана.

После создания схемы напишите следующий учебный запрос:

SELECT * FROM MAN

Нажмите RUN SQL, в нижней части экрана должен появиться результат выполнения запроса.

Рисунок 2. Пробный запрос SQLFIDlle

Если все получилось, то вы можете приступать к учебе.

Вопросы учеников

Так все-таки в каком из сервисов лучше выполнять практические задания?

В любом, лично мне больше нравится сервис APEX.

Я пытаюсь залогиниться в сервис APEX, но появляется сообщение об ошибке. В чем может быть дело?

Проверьте правильность ввода имени пользователя и пароля. Самое верхнее поле должно содержать значение SQLADV.

Во время работы с сервисом SQLFIDlle при создании схемы возникает ошибка.

Проверьте, пожалуйста, правильно ли установлен переключатель СУБД — значение выпадающего списка должно быть ORACLE 11g. Также проверьте, скопирован ли скрипт при создании схемы.

Шаг 3. Подготовка к работе. Процесс обучения. Описание интерфейса ORACLE APEX

Подготовка к работе

До шага 51 все занятия и практические упражнения можно выполнить с использованием онлайн-сервисов, в шаге 51 подробно описано, какое программное обеспечение следует установить дополнительно и как это сделать.

Процесс обучения

Как я уже говорил, самое важное в процессе обучения языку SQL — это именно практика, при этом не важно, как много вы знаете. Главное — научиться использовать свои знания в работе.

Тысяча практических задач из данной книги, прорешенных вами, даст гораздо больший эффект, чем изучение одной лишь теории.


Данная книга ориентирована исключительно на практическую работу. Теория здесь поясняется практическими примерами.


Изучив теорию и синтаксис выражения, сразу приступайте к практике, чтобы понять, как работает данный синтаксис, данное выражение.

Практические задания находятся сразу после пояснения теоретических положений. Примерный текст практического задания выглядит следующим образом:

Выберите из таблицы автомобилей (AUTO) машины синего и зеленого цветов.

Попробуйте сначала самостоятельно написать запрос.

Сравните свое решение с решением, приведенным в книге.

Если сразу не получается, тогда внимательно изучите решение, приведенное в книге, и постарайтесь понять сам принцип, как решается данная задача, что является главным в решении.


После решения каждого из заданий переходите к заданиям для самостоятельного выполнения.

В данной книге рассматривается более тысячи практических примеров и упражнений по SQL.


Кроме того, в книге есть не только практические задачи — после примеров в некоторых шагах встречаются контрольные вопросы по теоретическим материалам.

Такие вопросы необходимы для более четкого понимания изучаемой темы.

Внимательно изучите вопрос и постарайтесь дать на каждый вопрос развернутый и подробный ответ.

Некоторые названия таблиц заменены их смысловыми обозначениями. Вам следует самостоятельно понять, исходя из смысла слова, в какой таблице находятся соответствующие данные.


На самом деле основных таблиц всего три, так что это будет несложно. Например, если речь идет об авто, тогда это таблица AUTO, если речь идет о людях, покупателях, тогда имеется в виду таблица MAN, если о городах — CITY.

Вот несколько практических советов, как улучшить процесс обучения SQL.

Составьте карточки

Наиболее сложные, трудно запоминаемые теоретические вопросы и ответы лучше записывать на карточки, чтобы в конце занятий повторять сложные темы.

Также рекомендуется повторять эти карточки через каждые 10 глав книги.

Данная карточка может выглядеть следующим образом. С одной стороны пишется ключевой вопрос: «Какой оператор в SQL-запросах отвечает за группировку данных?»

С другой стороны ответ: «Оператор GROUP BY».

И далее несколько примеров запросов с использованием данного оператора.

Составляйте свой список вопросов

Для себя составьте дополнительные вопросы и ответьте на них.

Например, мы изучили агрегатные функции SUM, MAX, MIN, а как работает агрегатная функция COUNT? Не бойтесь задавать себе сложные вопросы и изучать новую информацию.

Создайте свое задание

Придумайте свои практические задания и порешайте их.

В дополнение к практическим заданиям из книги продумайте свои собственные и попробуйте их решить.

Например, у вас есть практическое задание: выбрать из таблицы AUTO все автомобили марки BMW синего цвета.

Выбрать из таблицы AUTO все автомобили марки BMW синего и зеленого цветов.

Интерфейс ORACLE APEX

Онлайн-сервис ORACLE APEX обладает рядом дополнительных возможностей, которые будут нам помогать в процессе обучения. Поэтому, если вы используете для выполнения практических задач APEX, рекомендую ознакомиться с данным материалом.

К дополнительным возможностям сервиса APEX относится просмотр объектов схемы данных.

После входа в сервис APEX следует воспользоваться пунктом меню SQL Workshop, выберите подпункт меню OBJECT BROWSER.

В левой части экрана располагается список объектов, где через выпадающий список указывается, объекты какого типа отражаются в списке.

Рисунок 4. Список объектов

Выбор соответствующего типа объекта покажет список объектов заданного типа. Щелчок по заданному объекту позволяет отобразить структуру и свойства заданного объекта.

Просмотр структуры таблиц

Выберите в выпадающем списке в левой верхней части формы TABLEs. Список отразит все таблицы, которые вам доступны.

Выберите любую из таблиц.

В правой части страницы отразится структура выбранной таблицы.

Также доступны следующие вкладки, которые показывают сведения о таблице:

• TABLE — структура избранной таблицы;

• Data — данные избранной таблицы;

• INdexes — сведения об индексах заданной таблицы;

• ConstraINts — ограничения заданной таблицы;

• Grants — права базы данных по заданной таблице;

• SQL — SQL-код таблицы. Если вам необходимо посмотреть  SQL-код таблицы, тогда следует обратиться к этой вкладке.

Просмотр кода процедур

В некоторых шагах мы обращаемся к исходному коду процедур и функций.

Выберите в выпадающем списке одно из следующих наименований: SEQUENCEs, Function, Procedures, Packages.

Рисунок 5. Исходный код функции Fn_CITY_NAME

В правой части веб-страницы будет отображен исходный код выбранного объекта.

Вопросы учеников

Сколько времени следует уделять занятиям?

Рекомендую уделять занятиям не менее четырех часов в день, тогда за 20 дней вы успеете пройти все шаги.

Если я все же не могу найти ответ на вопрос или не могу решить задание, что мне делать?

На сайте sqladv.ru есть ссылка на нашу группу в «Фейсбуке», там вы наверняка найдете ответ и решение задачи, с которой испытываете трудности.

В SQLFIDele есть такие же возможности по просмотру и редактированию таблиц, как в ORACLE APEX?

Нет, SQLFIDele — это менее сложный инструмент, тем не менее его возможностей достаточно, чтобы выполнить большинство практических заданий из этой книги.

Сколько примерно времени в пропорции уделять теории, а сколько посвятить практике?

Лучше всего из четырех часов рабочего времени следует один час уделить теории, а три часа — практике. Таким образом, примерно 80 процентов вашего учебного времени должно занимать выполнение практических задач.

Контрольные вопросы и задания для самостоятельного выполнения

1. Сколько рекомендуется тратить времени на занятия?

2. Как сделать карточки с наиболее сложными для понимания вопросами?

3. Как в APEX посмотреть все таблицы схемы?

4. Как в APEX посмотреть структуру заданной таблицы?