Sobes.tech
Middle

Hai lavorato con i database? Puoi fare un esempio di una query con JOIN? A cosa serve HAVING? A cosa serve DISTINCT e dove si scrive? Quali operazioni di filtraggio conosci? Come funziona LIKE? Quali tipi di database conosci? A cosa servono la chiave primaria e quella esterna?

sobes.tech AI

Risposta dell'AI

Да, я работал с базами данных и могу привести примеры и объяснения по вашим вопросам.

Пример запроса с JOIN:

SELECT users.name, orders.amount
FROM users
JOIN orders ON users.id = orders.user_id;

Этот запрос объединяет таблицы users и orders по полю user_id.


HAVING используется для фильтрации групп после агрегирования, например:

SELECT user_id, COUNT(*) as orders_count
FROM orders
GROUP BY user_id
HAVING COUNT(*) > 5;

Здесь выбираются пользователи с количеством заказов больше 5.


DISTINCT нужен для выбора уникальных значений и прописывается после SELECT:

SELECT DISTINCT country FROM users;

Это вернёт список уникальных стран.


Операции фильтрации:

  • WHERE — фильтрация строк перед группировкой
  • HAVING — фильтрация групп после агрегирования
  • LIKE — поиск по шаблону
  • IN — проверка вхождения в набор значений
  • BETWEEN — диапазон значений

LIKE используется для поиска по шаблону с подстановочными символами:

  • % — любое количество любых символов
  • _ — один любой символ

Пример:

SELECT * FROM users WHERE name LIKE 'A%';

Найдёт имена, начинающиеся на 'A'.


Виды баз данных:

  • Реляционные (PostgreSQL, MySQL, Oracle)
  • Документоориентированные (MongoDB)
  • Ключ-значение (Redis)
  • Колонковые (ClickHouse)
  • Графовые (Neo4j)

Первичный ключ (PRIMARY KEY) — уникальный идентификатор строки в таблице, гарантирует уникальность и индексируется.

Внешний ключ (FOREIGN KEY) — поле, ссылающееся на первичный ключ другой таблицы, обеспечивает целостность данных и связь между таблицами.