Всім привіт. Тут зібралися цілеспрямовані люди, які хочуть стати Java-розробниками. І це логічно: JavaRush для цього і створено. Щоб стати повноцінним розробником, вам потрібно знати певний список тем. Повний чекіст знань, необхідних Java розробника, я описав у цій статті . Ось одна з обов'язкових тем у цьому списку — знання мови SQL і знайомство хоча б з однією реляційною БД. Хороша новина: щоб вивчити SQL на рівні, достатньому для Java-розробника, буде достатньо лише однієї книги! Варіантів книг, придатних для первинного занурення в SQL, безліч, але сьогодні хотів би зупинитися на “SQL. Збірник рецептів” Ентоні Молінаро. Особливість книги в тому, що крім вивчення SQL на базовому рівні ви познайомитеся з кількома базами даних і побачите, як розрізняються запити для них і в чому полягають особливості тієї чи іншої БД. У цій книзі запити розглядаються для таких баз даних:
У першу чергу дана книга буде корисна розробнику-початківцю, наприклад, на Java. Вам доведеться мати справу на базовому рівні з різними реляційними базами даних, тому книга допоможе отримати необхідні знання SQL.
Напевно, ви вже добре знайомі з побудовою SQL-запитів, але ця книга зможе вас приємно здивувати і доповнити ваші знання. Ну або, наприклад, ви переходите на проект з незнайомою вам реляційною базою даних. Тоді за допомогою цієї книги ви зможете провести аналогії із запитами знайомої вам БД до нової.
Можливо, ви тільки замислюєтеся про шлях розвитку розробника баз даних. Тоді ця книга чудово підійде для вас! Ви зможете вивчити основи SQL, розглянуті для різних баз даних, і вибрати "свою" базу даних, яку в майбутньому вивчатимете докладніше.
- DB2;
- Oracle Database;
- PostgreSQL;
- SQL Server;
- MySQL.
Для кого призначено книгу
- розробник-початківець
У першу чергу дана книга буде корисна розробнику-початківцю, наприклад, на Java. Вам доведеться мати справу на базовому рівні з різними реляційними базами даних, тому книга допоможе отримати необхідні знання SQL.
- досвідчений розробник
Напевно, ви вже добре знайомі з побудовою SQL-запитів, але ця книга зможе вас приємно здивувати і доповнити ваші знання. Ну або, наприклад, ви переходите на проект з незнайомою вам реляційною базою даних. Тоді за допомогою цієї книги ви зможете провести аналогії із запитами знайомої вам БД до нової.
- початківець SQL-розробник
Можливо, ви тільки замислюєтеся про шлях розвитку розробника баз даних. Тоді ця книга чудово підійде для вас! Ви зможете вивчити основи SQL, розглянуті для різних баз даних, і вибрати "свою" базу даних, яку в майбутньому вивчатимете докладніше.
Про що книга
У цій книзі розділ за главою розглядаються базові SQL теми, і навіть різні завдання для SQL та його решения. Тому її можна використовувати як довідник: постало завдання — шукаєте відповідні шляхи її розв'язки, потім складаєте своє рішення під поточні умови. На сторінках цієї книги міститься понад 150 рецептів. Так, саме рецептів для побудови SQL-запитів: тому книга і має таку назву. Що робити під час читання цієї книги?- Не боятися експериментувати, адже лише методом спроб і помилок можна набути такого цінного досвіду, тому практика, практика і ще раз практика!
- Тестуйте. Я маю на увазі те, що при проходженні цієї книги краще паралельно випробовувати наведені приклади запитів, які будуть добре відкладатися у вашій пам'яті.
- Повторення мати навчання. Тому бажано запровадити конспект, у якому ви зможете виписувати ключові моменти та періодично їх повторювати, щоби написання запитів у майбутньому не викликало у вас жодних проблем.
- Потрібно розуміти, що нове не завжди означає найкраще. Якщо ви не використовуєте деякі з найсвіжіших можливостей SQL (наприклад, віконні функції), це не означає, що код неефективний. Адже існує безліч прикладів, коли традиційні рішення SQL анітрохи не гірше, а іноді навіть краще, ніж нове рішення.
- Не бійтеся експериментувати. Підходьте до роботи творчо! Адже всі рішення ще не вигадані: можливо, у вашій ситуації креативний підхід стане найкращим.
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. Будь-яка всячина
Ну і насамкінець ви побачите всі можливості, які не вписалися в жодну з попередніх розділів, але при цьому вони не менш цікаві і корисні. Також цей розділ відрізняється від інших тим, що пропонує рішення лише для конкретних СУБД. Це єдиний розділ у книзі, де в кожному рецепті обговорюється лише одна база даних. Зроблено це, щоб показати можливості, особливості конкретних СУБД (щоб ви краще відчули різницю між ними). Плюси книги:- Багато прикладів.
- Відмінно підходить для "первинного" занурення.
- Розглядаються приклади щодо різних СУБД.
- Є добрий переклад.
Аналоги книги
- "Вивчаємо SQL" - Алан Бьюлі: теж книга для первинного занурення в SQL з розглядом різних СУБД, але особливий акцент у ній робиться на MySQL. Мінус книги - недостатнє "розжовування" нової інформації.
- ”SQL: Посібник з вивчення мови” — Кріс Фіайлі: книга, яка також розглядає основи для різних баз даних. Відмінно підійде новачкам, але якщо ви вже знайомі з SQL і вам потрібно вивчити більш тонкі та серйозні моменти, то варто пошукати щось інше.
- "Head First - Вивчаємо SQL" - Лінн Бейлі: книга з дуже низьким порогом входження, доступно і докладно донесе багато основних моментів (можливо, іноді навіть занадто просто). Ця книга в прикладах розглядає кілька баз даних, як аналоги вище, а одну — MySQL.
ПЕРЕЙДІТЬ В ПОВНУ ВЕРСІЮ