Ця стаття — не довідник із SQL. Ми постаралися ввести новачків у світ баз даних, показати приклади і сфери використання. А також, чому потрібно знати хоча б базові поняття SQL, щоб бути хорошим програмістом.
Що таке бази даних і як ними керувати
Щоб ми краще розуміли одне одного, почнемо зі вступу. Будь-який інтернет-магазин, аптека чи соціальна мережа сповнена інформації: контакти профілів, тексти постів, картинки, результати соцопитувань. Це все потрібно десь зберігати, щоб у потрібний момент отримати доступ: вийняти частину інформації або всю. Для цього використовують бази даних.
База даних схожа на медові соти. У неї є комірки, а в кожній комірці — таблиця з конкретними даними. Таблиця внизу — найпростіший приклад комірки бази даних. Взяли зі статті про правильний вибір навчальної програми.
У коді бази даних обов'язково структуровані. З хаосом ми б нічого не змогли зробити: внести інформацію чи забрати.
Наразі в нашому розумінні існує дві площини: перша — наш сайт, програма чи мобільний додаток; друга — база даних. Поки що вони з'єднані умовно: дані з програми потрапляють у таблицю. Але з ними нічого не можна зробити.
👉 Щоб керувати таблицями, придумали СУБД — систему управління базами даних. Забігаючи наперед: MySQL — одна з найпопулярніших систем.
Технічно MySQL можна уявити як кілька з'єднаних таблиць. У кожній — своя інформація. Візьмемо приклад з онлайн-магазином: покупці, товари і покупки - три пов'язані таблиці. Якщо клієнт замовив товар, дані про нього і його замовлення розділяються за комірками.
З MySQL можна створювати нові таблиці та пов'язувати їх. Наприклад, до онлайн-магазину додати комірку з гендерами клієнтів, віком, уподобаннями (якщо ми захотіли провести опитування на сайті).
Для управління таблицями СУБД не вистачить. Це така сама система, що умовно працює, як і зв'язок сервера і програми. Щоб система могла спілкуватися з базою даних, потрібен спеціальний алфавіт, набір команд. Ця мова — SQL.
Що таке SQL
SQL — це не мова програмування. Правильніше сказати, що це мова запитів до баз даних. Структура запиту сформована в базі, а нам потрібно задати правила — як правильно до неї звернутися.
На SQL можна писати програми, але дуже складно. Тому найчастіше мовою запитів отримують дані, а обробляють гнучкими мовами — наприклад Python або JavaScript.
Що дає SQL:
-
можна знайти конкретну людину у величезній таблиці з даними;
-
сортувати вибрані дані;
-
видаляти непотрібну інформацію;
-
додати в клітинку рядки і стовпці, розширивши таблицю;
-
комбінувати таблиці, створювати зв'язки. Наприклад, якщо клієнт вказав контактні дані під час купівлі товару - інформацію передасть на кілька таблиць: товар, клієнт, купівля.
-
можна записати нову таблицю.
Мова SQL проста в освоєнні та використанні. Щоб зрозуміти базу — вистачить і дня. На роботу з першими операторами достатньо тижня. А гуру тестувальникам або Back-end-розробникам потрібно вчитися постійно.
Перша й основна команда в SQL
Що має вміти будь-який програміст — вибирати інформацію з таблиці. Для цього придумали оператор SELECT.
Застосуємо на практиці. Щоб не створювати базу даних, зайдемо в онлайн-компілятор mycompiler.io.
Ліворуч знаходиться база даних — Students. Сайт її створив самостійно, як приклад. Праворуч — кнопка RUN, щоб відтворити запит; і Output, який покаже результати запиту.
У базі даних два студенти: Ryan (чоловік - значок M) і Joanna (жінка - значок F). Спробуємо вибрати студента жіночої статі з бази даних.
Вводимо оператор SELECT. Обираємо таблицю, де візьмемо дані. У нас це Students. Використовуємо слово FROM (звідки беремо) і назву:
Щоб вибрати конкретну інформацію, застосуємо слово WHERE. Вибираємо стать студента — додамо до оператора gender і значення Female (F). Як це виглядає в коді:
Тиснемо RUN і дивимося на Output:
За результатами запиту знайшли студента жіночої статі — Joanna. Тепер ви знаєте основний оператор у SQL — SELECT. Також просто вчаться й інші значення.
Список найважливіших команд SQL
SELECT — витягує дані з таблиці.
UPDATE — оновлює дані.
DELETE — видалення даних.
INSERT INTO — вставити нові дані в базу.
CREATE DATABASE — створити нову базу даних.
CREATE TABLE — створити одну таблицю.
DROP TABLE — видалити одну таблицю.
CREATE INDEX — створити маркер для пошуку всередині бази даних.
DROP INDEX — видалити маркер.
Знання MySQL і мови запитів відкриває великі можливості в програмуванні. Будь-який додаток або сайт з особистим кабінетом, формами з інформацією вимагає бази даних. Просто створити сайт не вийде — потрібно розбиратися в тому, як код сайту зберігається в Інтернеті.
Для чого служить SQL у різних галузях
Мова запитів використовується програмістами, аналітиками і навіть маркетологами — усіма, хто працює з даними. Ось кілька прикладів.
Фінанси. Уявімо, що в банку щодня відбувається мільйон грошових переказів: між користувачами, містами і країнами. Усе зберігається у великій базі даних. SQL можна використовувати для простого пошуку окремих екземплярів даних або даних, які відповідають певним вимогам, наприклад, зняття коштів на суму понад $5 000 за останній місяць.
Ще приклад — пошук інформації для статистичних графіків. Наприклад, можна відстежити вартість борщового набору за кілька років.
Маркетинг. Наприклад, людині сподобався сайт про риболовлю. Сайт використовує cookies — збирає первинну інформацію про користувача: час перебування на сайті, відвідані сторінки, кліки за посиланнями. Усе надсилається в базу даних.
Далі маркетолог захоче проаналізувати контент і створити рекламу в соціальних мережах — тільки для любителів риболовлі.
SQL допоможе вивантажити cookies про користувача, якому сподобався сайт. Пізніше маркетолог знайде людину в соціальних мережах і додасть її в таргет-лист — орієнтир для прицільної реклами.
SQL дає змогу маркетинговим командам ухвалювати обґрунтовані, ґрунтовані на даних рішення, а не покладатися тільки на здогадки.
Data Science. Фахівці з аналізу даних збирають і аналізують дані для графіків, звітів, діаграм. Наприклад, з SQL у медицині збирають статистичні карти поширення конкретного захворювання. Як приклад — це допоможе медикам побачити складні ділянки і перекинути більше ресурсів, знизивши темп зараження.
Де потрібно знати SQL у програмуванні
Куди б не пішов програміст, тестувальник або аналітик — SQL стане перевагою перед іншими.
Для Back-end-програмування — обов'язково. Програми, сайти підключаються до величезних баз даних на сервері. За серверну частину відповідає бекенд-розробник. Він із SQL на рівних: має розуміти, як підключати бази даних, витягувати інформацію на сайт або для інших фахівців. Якщо потрібно — створити нову базу даних.
У SQL-розробці. Існує окрема категорія програмістів на SQL. Це фахівці техпідтримки, помічники служби аналітики, Data-Science і будь-яких інших професій у світі даних. Якщо співробітникам потрібно часто і багато вивантажувати дані, а інформація в таблицях щодня зростає — наймають SQL-програміста.
Професія зустрічається рідко. Частіше беруть адмінів серверів зі знаннями мови запитів.
Front-end. Розробник прямо не пов'язаний із SQL і базами даних. Але йому потрібно знати мову на рівні простих операторів: розуміти, як працюють бази, що можна вивантажувати і як створювати нові таблиці. Часто на співбесідах запитують про SQL, навіть якщо його не було в картці вакансії. Такий собі, обов'язковий інструмент.
Тестування. Для ручного тестування потрібно вивантажувати дані. Якщо програма невелика — можна зайти в базу і знайти комірки з потрібними параметрами. Але так довго і в простих програмах.
Тому тестувальнику потрібен SQL на рівні базових операторів. З ним простіше працювати і вкластися в терміни, тому що на одній програмі не засидишся — ще багато роботи.
Резюме
Головне зі статті:
-
Усі дані зберігаються в базах даних. Це таблиці: зі стовпчиками і комірками.
-
Системи управління базами даних дають змогу спілкуватися з таблицями. Мова спілкування (запитів) — SQL.
-
Оператори та загальне розуміння мови запитів вчаться за кілька тижнів. Це не так важко, як почати верстку з нуля. Або зануритися в Back-end.
-
SQL потрібен скрізь — від веб-розробки до маркетингу.
Якщо ви починаєте кар'єру розробника — заздалегідь подумайте, що потрібно вивчити принципи роботи баз даних, оператори SQL і роботу MySQL.
Вчити це окремо — нудно, тому що явної переваги мова не дає. Приклад із Front-end-розробкою: SQL можна вивчити, але на рівень сайту це мало вплине в конкретному завданні. Тому ми вчимо все разом, як на курсі «Розробка програмного забезпечення». Приходьте, якщо цікаво.