JavaRush /Java блог /Random UA /Огляд книги “SQL. Збірник рецептів” Ентоні Молінаро

Огляд книги “SQL. Збірник рецептів” Ентоні Молінаро

Стаття з групи Random UA
Всім привіт. Тут зібралися цілеспрямовані люди, які хочуть стати Java-розробниками. І це логічно: JavaRush для цього і створено. Щоб стати повноцінним розробником, вам потрібно знати певний список тем. Повний чекіст знань, необхідних Java розробника, я описав у цій статті . Огляд книги “SQL.  Збірник рецептів” Ентоні Молінаро - 1Ось одна з обов'язкових тем у цьому списку — знання мови SQL і знайомство хоча б з однією реляційною БД. Хороша новина: щоб вивчити SQL на рівні, достатньому для Java-розробника, буде достатньо лише однієї книги! Варіантів книг, придатних для первинного занурення в SQL, безліч, але сьогодні хотів би зупинитися на “SQL. Збірник рецептів” Ентоні Молінаро. Огляд книги “SQL.  Збірник рецептів” Ентоні Молінаро - 2Особливість книги в тому, що крім вивчення SQL на базовому рівні ви познайомитеся з кількома базами даних і побачите, як розрізняються запити для них і в чому полягають особливості тієї чи іншої БД. У цій книзі запити розглядаються для таких баз даних:
  • DB2;
  • Oracle Database;
  • PostgreSQL;
  • SQL Server;
  • MySQL.

Для кого призначено книгу

  • розробник-початківець

У першу чергу дана книга буде корисна розробнику-початківцю, наприклад, на Java. Вам доведеться мати справу на базовому рівні з різними реляційними базами даних, тому книга допоможе отримати необхідні знання SQL.

  • досвідчений розробник

Напевно, ви вже добре знайомі з побудовою SQL-запитів, але ця книга зможе вас приємно здивувати і доповнити ваші знання. Ну або, наприклад, ви переходите на проект з незнайомою вам реляційною базою даних. Тоді за допомогою цієї книги ви зможете провести аналогії із запитами знайомої вам БД до нової.

  • початківець SQL-розробник

Можливо, ви тільки замислюєтеся про шлях розвитку розробника баз даних. Тоді ця книга чудово підійде для вас! Ви зможете вивчити основи SQL, розглянуті для різних баз даних, і вибрати "свою" базу даних, яку в майбутньому вивчатимете докладніше.

Про що книга

У цій книзі розділ за главою розглядаються базові SQL теми, і навіть різні завдання для SQL та його решения. Тому її можна використовувати як довідник: постало завдання — шукаєте відповідні шляхи її розв'язки, потім складаєте своє рішення під поточні умови. На сторінках цієї книги міститься понад 150 рецептів. Так, саме рецептів для побудови SQL-запитів: тому книга і має таку назву. Огляд книги “SQL.  Збірник рецептів” Ентоні Молінаро - 3Що робити під час читання цієї книги?
  1. Не боятися експериментувати, адже лише методом спроб і помилок можна набути такого цінного досвіду, тому практика, практика і ще раз практика!
  2. Тестуйте. Я маю на увазі те, що при проходженні цієї книги краще паралельно випробовувати наведені приклади запитів, які будуть добре відкладатися у вашій пам'яті.
  3. Повторення мати навчання. Тому бажано запровадити конспект, у якому ви зможете виписувати ключові моменти та періодично їх повторювати, щоби написання запитів у майбутньому не викликало у вас жодних проблем.
  4. Потрібно розуміти, що нове не завжди означає найкраще. Якщо ви не використовуєте деякі з найсвіжіших можливостей SQL (наприклад, віконні функції), це не означає, що код неефективний. Адже існує безліч прикладів, коли традиційні рішення SQL анітрохи не гірше, а іноді навіть краще, ніж нове рішення.
  5. Не бійтеся експериментувати. Підходьте до роботи творчо! Адже всі рішення ще не вигадані: можливо, у вашій ситуації креативний підхід стане найкращим.
Огляд книги “SQL.  Збірник рецептів” Ентоні Молінаро - 4А тепер давайте трохи пройдемося за змістом книги:

1. Вилучення записів

Цей розділ розглядає перші, найпростіші запити. У прикладах ви побачите:
  • як за допомогою оператора WHERE можна вибрати рядки в загальну результуючу множину;
  • як надавати псевдоніми (аліаси) стовпцям результатів;
  • як можна використовувати вкладений запит для звернення до стовпців за псевдонімами;
  • як обмежувати кількість повертаються в результуючі рядки;
  • як можна повертати випадкові рядки та виявляти значення NULL.
Як правило, приклади досить прості, але при цьому і трапляються такі, які зможуть здивувати і зайвих розробників.

2. Сортування результатів запиту

У цьому розділі розглядається сортування результатів запитів. Власне, для цього застосовується оператор ORDER BY . Ви побачите приклади різної складності, які варіюються від простого впорядкування одного стовпця до сортування за підрядками та сортування з використанням різних умовних виразів.

3. Робота з кількома таблицями

Ця частина книги представляє способи поєднання даних декількох таблиць. Я не збрешу, якщо скажу, що об'єднання таблиць - один із основних стовпів SQL, і щоб досягти успіху в роботі з SQL, потрібно придбати ці знання і вміти ними користуватися. Тут ви побачите приклади як внутрішніх, так і зовнішніх об'єднань, декартові твори, базові операції над множинами (віднімання, об'єднання, перетин) і те, як можуть впливати об'єднання на агрегатні функції.

4. Вставка, оновлення, видалення

У цьому пункті ви навчитеся SQL-запитів для вставки, оновлення та видалення даних. Також розглядаються цікавіші приклади — операції типу вставки рядків однієї таблиці в іншу або використання пов'язаних підзапитів під час оновлень. Ви зрозумієте наслідки присутності значень NULL, дізнаєтесь про вставку у кілька таблиць, про команду MERGE і т.д.

5. Запити на одержання метаданих

У цьому розділі розповідається про побудову запитів для отримання доступу до метаданих бази даних, що використовується: корисно знати індекси, обмеження та таблиці схеми. Запропоновані тут прості запити дозволяють отримувати інформацію про саму схему. З іншого боку, у цьому розділі показані приклади «динамічного SQL», т. е. SQL, згенерованого SQL.

6. Робота з рядками

Цей розділ представляє способи роботи з рядками. SQL ніколи не був відомий своїми можливостями синтаксичного розбору рядків, але трохи креативу в поєднанні з широким набором функцій, що надаються різними БД, дозволяє досягти чималих успіхів у цій справі. Власне, з цієї глави і починається найцікавіше. Деякі приклади неабияк здивують. Наприклад:
  • підрахунок екземплярів символу у рядку;
  • перетворення списків з роздільниками та рядків у рядки таблиці;
  • створення списків із роздільниками з рядків таблиці;
  • розділення числових та символьних даних рядка, що складається з буквено-цифрових символів.

7. Робота з числами

Ця частина книги розгляне способи вирішення стандартних завдань з числами. Тут ви зможете знайти приклади, що часто зустрічаються, і дізнаєтеся, як легко віконні функції можуть справлятися із завданнями, пов'язаними з обчисленнями та агрегацією. Ви навчитеся:
  • обчислювати поточну суму;
  • знаходити середнє, медіану та мод;
  • вираховувати процентиль;
  • обробляти значення NULL під час проведення агрегації.

8-9. Арифметика дат

У цих двох розділах ви навчитеся працювати з датами, адже при вирішенні щоденних завдань важливо вміти виконувати найпростіші та найпоширеніші операції з ними. Різноманітні приклади включають визначення кількості робочих днів між двома датами, обчислення різниці між двома датами в різних одиницях часу, повернення всіх днів року, пошук високосних років, пошук першого і останнього днів місяця, створення календаря і т.д. Після цих розділів вас буде дуже складно налякати якимось завданням, зав'язаним на датах (а ось ви налякати зможете).

10. Робота з діапазонами даних*

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

11. Розширений пошук*

Тут знайдете можливості, які є життєво важливими для повсякденної роботи з базами даних, але іноді викликають труднощі. До прикладів цього розділу увійшли пошук значень з використанням «ходу конем», розбиття результуючої множини на сторінки, пропуск рядків таблиці, пошук взаємно зворотних значень тощо.

12. Складання звітів та управління сховищами даних**

Часто нам можуть знадобитися спеціальні запити на формування звітів. Цей розділ і допоможе нам у цьому: тут ви розглянете приклади перетворення рядків у стовпці і навпаки (звіти з перехресними посиланнями), створення груп даних, створення гістограм, обчислення простих і повних підсум, агрегацію вікна рядків і групування рядків за заданим інтервалом часу.

13. Ієрархічні запити**

Цей розділ розповість нам про можливості роботи з ієрархічними даними. Незалежно від моделі даних, одного разу виникає необхідність відформатувати їх у вигляді дерева ієрархії або стосунків батько ->нащадок. Тому в цьому розділі ви розберете завдання під це та рішення. За допомогою традиційного SQL створювати структуровані у вигляді дерева результуючі множини складно, тому тут показано, як працювати з надзвичайно корисними спеціальними функціями. У прикладах ви докладно розберете відносини батько-нащадок, обхід ієрархії від кореневого вузла до кінцевих вузлів і накопичення ієрархії.

14. Будь-яка всячина

Ну і насамкінець ви побачите всі можливості, які не вписалися в жодну з попередніх розділів, але при цьому вони не менш цікаві і корисні. Також цей розділ відрізняється від інших тим, що пропонує рішення лише для конкретних СУБД. Це єдиний розділ у книзі, де в кожному рецепті обговорюється лише одна база даних. Зроблено це, щоб показати можливості, особливості конкретних СУБД (щоб ви краще відчули різницю між ними). Плюси книги:
  1. Багато прикладів.
  2. Відмінно підходить для "первинного" занурення.
  3. Розглядаються приклади щодо різних СУБД.
  4. Є добрий переклад.
Мінус: Не розглядаються складніші, специфічніші, рідкісні завдання/проблеми.

Аналоги книги

  1. "Вивчаємо SQL" - Алан Бьюлі: теж книга для первинного занурення в SQL з розглядом різних СУБД, але особливий акцент у ній робиться на MySQL. Мінус книги - недостатнє "розжовування" нової інформації.
  2. ”SQL: Посібник з вивчення мови” — Кріс Фіайлі: книга, яка також розглядає основи для різних баз даних. Відмінно підійде новачкам, але якщо ви вже знайомі з SQL і вам потрібно вивчити більш тонкі та серйозні моменти, то варто пошукати щось інше.
  3. "Head First - Вивчаємо SQL" - Лінн Бейлі: книга з дуже низьким порогом входження, доступно і докладно донесе багато основних моментів (можливо, іноді навіть занадто просто). Ця книга в прикладах розглядає кілька баз даних, як аналоги вище, а одну — MySQL.

Підсумок

Якщо ви вирішабо стати Java-розробником, без вивчення SQL вам ніяк. Але на щастя, нам не потрібно його знати на такому рівні, як у БД розробників, і кількість необхідних знань у принципі можна покрити лише однією книгою SQL. Розглянута сьогодні книга - SQL. Збірник рецептів”, або один із представлених аналогів, може вам чудово дійти. Ну а вибір, що конкретно читати (або не читати) залишається за вами)) PS Щоб набити руку на практиці написання SQL для вирішення різних завдань, можна використовувати цей сайт . PSS А ось тут можна ознайомитися з поширеними питаннями з баз даних, бажано вже після прочитання книги.
Коментарі
ЩОБ ПОДИВИТИСЯ ВСІ КОМЕНТАРІ АБО ЗАЛИШИТИ КОМЕНТАР,
ПЕРЕЙДІТЬ В ПОВНУ ВЕРСІЮ