Sobes.tech
Middle

Ar dirbote su duomenų bazėmis? Ar galite pateikti pavyzdį užklausos su JOIN? Kam reikalingas HAVING? Kam reikalingas DISTINCT ir kur jis rašomas? Kokias filtravimo operacijas žinote? Kaip veikia LIKE? Kokius duomenų bazių tipus žinote? Kam reikalingas pirminis ir išorinis raktas?

sobes.tech AI

Atsakymas iš 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) — поле, ссылающееся на первичный ключ другой таблицы, обеспечивает целостность данных и связь между таблицами.