Посібники

Що таке SQL? Мова баз даних простими словами

SQL (Structured Query Language, вимовляється «ес-ку-ел» або «сіквел») — стандартна мова для роботи з реляційними базами даних, які зберігають дані у вигляді таблиць з рядками і стовпцями, наприклад Postgres, MySQL, SQLite і SQL Server. За допомогою SQL ви ставите запитання про свої дані («які клієнти бронювали цього місяця?») і додаєте, змінюєте або видаляєте записи. Вона існує з 1970-х, є міжнародним стандартом і працює в величезній частці застосунків світу.

Чому SQL важливий, коли ви створюєте щось за допомогою ШІ

Коли ви просите конструктор застосунків на основі ШІ «зберегти замовлення» або «показати список майбутніх бронювань», щось має звертатися до бази даних — а в більшості застосунків це SQL, написаний напряму або згенерований через ORM.

Вам не обов'язково самим писати SQL, але трохи розуміння дає користь:

  • Ви можете перевірити власні дані. Короткий запит відповість на «скільки реєстрацій було цього тижня?» швидше, ніж створення нового екрана.
  • Ви можете просити кращі звіти. «Згрупуй виручку за місяцями і послугами» — це ідея SQL. Знання цього робить ваш запит чіткішим.
  • Ви можете помітити небезпечні зміни. DELETE або UPDATE без умови WHERE змінює кожен рядок. Це варто зловити до того, як вона виконається.
  • Ваші дані не заблоковані. SQL — спільний стандарт, тож дані в SQL-базі можна переносити і читати багатьма інструментами.

Аналогія з повсякденного життя

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

Ви не ходите полицями самі. Ви даєте бібліотекарю картку: «Знайди всі книжки цього автора, видані після 2010 року, спершу найновіші». Бібліотекар знає будівлю і повертає саме ті книжки, в такому порядку.

SQL — це мова на цій картці. Ви говорите, що хочете отримати, а не як це знайти — база даних сама визначає найшвидший шлях.

Як працює SQL: таблиці, рядки і стовпці

Реляційна база даних зберігає дані в таблицях. Кожна таблиця містить один вид речей, кожен рядок — один запис, а кожен стовпець — одну частину інформації:

customers (клієнти)

idnameemailcity
1Lena Ortizlena@example.comLisbon
2Sam Patelsam@example.comLeeds

orders (замовлення)

idcustomer_idtotalplaced_at
101142.002026-09-20
102218.502026-09-22
103125.002026-09-27

Стовпець customer_id пов'язує кожне замовлення з клієнтом. Саме цей зв'язок робить базу «реляційною».

Приклад: відповідь на реальні запитання

1. Читання даних — «покажи всіх клієнтів у Лісабоні»:

SELECT name, email
FROM customers
WHERE city = 'Lisbon';

2. Сортування і обмеження — «п'ять найновіших замовлень»:

SELECT id, total, placed_at
FROM orders
ORDER BY placed_at DESC
LIMIT 5;

3. Об'єднання таблиць — «кожне замовлення з іменем клієнта»:

SELECT o.id, c.name, o.total
FROM orders o
JOIN customers c ON c.id = o.customer_id;

4. Підсумки — «загальна сума витрат на кожного клієнта»:

SELECT c.name, SUM(o.total) AS total_spent
FROM customers c
JOIN orders o ON o.customer_id = c.id
GROUP BY c.name
ORDER BY total_spent DESC;

З прикладними даними цей запит поверне Lena Ortiz із сумою 67.00 та Sam Patel з 18.50.

5. Зміна даних:

INSERT INTO customers (name, email, city)
VALUES ('Ana Silva', 'ana@example.com', 'Porto');

UPDATE customers SET city = 'Porto' WHERE id = 1;

DELETE FROM orders WHERE id = 102;

Ці команди відповідають чотирьом базовим діям майже кожного застосунку — створити, прочитати, оновити і видалити, відомим як CRUD.

Попередження: UPDATE customers SET city = 'Porto'; без умови WHERE змінить кожного клієнта. Завжди перевіряйте WHERE перед запуском будь-якої зміни.

Основні частини SQL

КомандаЩо робить
SELECTЧитає дані
INSERTДодає нові рядки
UPDATEЗмінює наявні рядки
DELETEВидаляє рядки
CREATE TABLE / ALTER TABLEСтворює або змінює структуру таблиці
WHEREФільтрує, на які рядки діє команда
JOINОб'єднує пов'язані таблиці
GROUP BYПідсумовує рядки в групи з COUNT, SUM, AVG
ORDER BY / LIMITСортує і обмежує результати

SQL стандартизований, але кожна база додає власні розширення, які називаються діалектом. Postgres, MySQL і SQLite розуміють наведені вище приклади, а деталі, як-от функції для дат, трохи відрізняються.

Ключові терміни

ТермінЗначення
Запит (query)Оператор SQL, особливо той, що читає дані.
Таблиця / рядок / стовпецьВид речей / один запис / одна властивість.
Первинний ключСтовпець, що однозначно ідентифікує кожен рядок, зазвичай id.
Зовнішній ключСтовпець, що вказує на рядок в іншій таблиці, наприклад customer_id.
ІндексСтруктура пошуку, що значно прискорює пошук у стовпці.
СхемаСтруктура всіх таблиць і стовпців.
ТранзакціяГрупа змін, які або всі успішні, або всі невдалі.
SQL-ін'єкціяАтака, коли введені користувачем дані вставляються у запит. Запобігається параметризованими запитами.

Поширені хибні уявлення

  • «SQL — це база даних». SQL — це мова; Postgres, MySQL і SQLite — бази даних, які нею розмовляють.
  • «SQL застарів, отже не актуальний». Він зрілий, а не застарілий. Сучасні бази даних та інструменти роботи з даними досі його використовують, а нові часто додають підтримку SQL.
  • «Тільки розробники можуть використовувати SQL». Аналітики, маркетологи і засновники щодня користуються простими запитами.
  • «SQL не справляється з гнучкими даними». Багато SQL-баз також зберігають JSON. Наприклад, у Postgres є тип jsonb. Див. SQL проти NoSQL.
  • «Дозволити ШІ запускати будь-який SQL у продакшені — нормально». Читання низькоризикове; зміни і видалення на живих даних заслуговують на резервну копію і другий погляд. Див. як зробити резервну копію бази даних застосунку.

Що питати у вашого конструктора ШІ

  • «Покажи таблиці моєї бази даних і що означає кожен стовпець.»
  • «Напиши запит лише для читання: скільки нових реєстрацій за день за останні 30 днів?»
  • «Перед запуском будь-якого UPDATE або DELETE покажи мені запит і скільки рядків він зачепить.»
  • «Додай індекси на стовпці, за якими ми найчастіше фільтруємо і сортуємо.»
  • «Переконайся, що кожен запит, який використовує введення користувача, параметризований.»
  • «Обгорни оновлення замовлень і платежів у транзакцію, щоб вони не могли виконатися наполовину.»

SQL у Mythex

Коли вашому застосунку потрібно зберігати дані, Mythex додає до проєкту окрему базу Postgres — просто попросіть у чаті, наприклад «зберігай email-адреси з листа очікування в базі даних», або скористайтеся командою /database (База даних). Агент створює таблиці та пише запити, а в режимі Ask ви можете попросити пояснити будь-який запит простими словами. Більше про саму базу даних — у що таке Postgres.

Запитання

Що таке SQL простими словами?

SQL (Structured Query Language) — стандартна мова для роботи з реляційними базами даних. Її використовують, щоб ставити запитання про ваші дані, наприклад «які замовлення зроблено цього тижня», а також щоб додавати, змінювати або видаляти записи.

Як вимовляти SQL?

Обидва варіанти — «ес-ку-ел» (проговорюючи літери) і «сіквел» — поширені і правильні. Мова спочатку називалася SEQUEL, звідси і друга вимова.

Чи SQL — це мова програмування?

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

Чи складно вивчити SQL?

Основи доступні: SELECT, WHERE, ORDER BY, INSERT, UPDATE і DELETE покривають більшість щоденних потреб і читаються майже як англійська. Об'єднання, групування і налаштування продуктивності вимагають більше часу.

Чи потрібно знати SQL, щоб створити застосунок за допомогою ШІ?

Ні. Конструктор на основі ШІ сам пише SQL або код бази даних. Знання трохи допомагає перевірити ваші дані, замовити звіти і помітити ризиковані зміни до того, як вони відбудуться.

Mythex · Pricing · Створюйте що завгодно з ШІ · Шаблони сайтів і застосунків · Порівняння Mythex · Глосарій створення застосунків за допомогою ШІ · Безкоштовні інструменти для створення застосунків за допомогою ШІ · English

English አማርኛ العربية Български বাংলা Bosanski Català Čeština Dansk Deutsch Ελληνικά Español Español (España) Eesti فارسی Suomi Français Français (Canada) ગુજરાતી हिन्दी Hrvatski Magyar Հայերեն Bahasa Indonesia Íslenska Italiano 日本語 ქართული Қазақ тілі ಕನ್ನಡ 한국어 Lietuvių Latviešu Македонски മലയാളം Монгол मराठी Bahasa Melayu မြန်မာ Norsk bokmål Nederlands ਪੰਜਾਬੀ Polski Português (Brasil) Português (Portugal) Română Русский Slovenčina Slovenščina Soomaali Shqip Srpski Svenska Kiswahili தமிழ் తెలుగు ไทย Tagalog Türkçe اردو Tiếng Việt 简体中文 繁體中文(香港) 繁體中文(台灣)