Перейти к содержимому
На этой странице

Основы SQL

Все темы Java Developer

Что такое SQL?

SQL (Structured Query Language) — это язык программирования, предназначенный для управления и манипуляции данными в реляционных базах данных.

Основные возможности:

  1. Создание и модификация структур данных:
    • CREATE, ALTER, DROP
  2. Манипуляция данными:
    • INSERT, UPDATE, DELETE
  3. Запрос данных:
    • SELECT
  4. Управление доступом:
    • GRANT, REVOKE

Пример:

-- Создание таблицы
CREATE TABLE users (
    id INT PRIMARY KEY,
    name VARCHAR(100),
    email VARCHAR(100)
);

-- Вставка данных
INSERT INTO users (id, name, email) VALUES (1, 'Alice', 'alice@example.com');

-- Запрос данных
SELECT * FROM users;

-- Обновление данных
UPDATE users SET email = 'alice@newdomain.com' WHERE id = 1;

-- Удаление данных
DELETE FROM users WHERE id = 1;

SQL используется для взаимодействия с базами данных, позволяя выполнять различные операции с данными.


Какие существуют операторы SQL?

Основные операторы SQL:
  1. DDL ( Data Definition Language ) — Операторы определения данных:
    • CREATE: Создание таблиц, баз данных, индексов и т.д.

    • ALTER: Изменение структуры таблиц.

    • DROP: Удаление таблиц, баз данных, индексов.

  2. DML ( Data Manipulation Language ) — Операторы манипуляции данными:
    • SELECT: Извлечение данных из таблиц.

    • INSERT: Вставка данных в таблицы.

    • UPDATE: Обновление данных в таблицах.

    • DELETE: Удаление данных из таблиц.

  3. DCL ( Data Control Language ) — Операторы управления доступом:
    • GRANT: Предоставление привилегий пользователям.

    • REVOKE: Отзыв привилегий у пользователей.

  4. TCL ( Transaction Control Language ) — Операторы управления транзакциями:
    • COMMIT: Фиксация изменений в базе данных.

    • ROLLBACK: Отмена изменений в базе данных.

    • SAVEPOINT: Создание точки сохранения в транзакции.

Примеры:

-- DDL
CREATE TABLE users (id INT PRIMARY KEY, name VARCHAR(100));
ALTER TABLE users ADD email VARCHAR(100);
DROP TABLE users;

-- DML
SELECT * FROM users;
INSERT INTO users (id, name, email) VALUES (1, 'Alice', 'alice@example.com');
UPDATE users SET email = 'alice@newdomain.com' WHERE id = 1;
DELETE FROM users WHERE id = 1;

-- DCL
GRANT SELECT ON users TO someuser;
REVOKE SELECT ON users FROM someuser;

-- TCL
BEGIN;
UPDATE users SET email = 'alice@anotherdomain.com' WHERE id = 1;
SAVEPOINT sp1;
DELETE FROM users WHERE id = 1;
ROLLBACK TO sp1;
COMMIT;

Что означает NULL в SQL?

NULL в SQL означает отсутствие значения или неопределённое значение в поле.

Основные моменты:

  • Не равно нулю или пустой строке: NULL представляет неизвестное или отсутствующее значение.

  • Сравнения с NULL : Используются операторы IS NULL и IS NOT NULL.

  • Арифметические операции: Любая операция с NULL возвращает NULL.

Примеры:

-- Проверка на NULL
SELECT * FROM users WHERE email IS NULL;

-- Установка значения NULL
UPDATE users SET email = NULL WHERE id = 1;

NULL используется для указания, что значение в поле неизвестно или отсутствует.


Для чего применяется ключевое слово UNION?

Ключевое слово UNION используется для объединения результатов двух или более SELECT запросов в один результат, исключая дубликаты.

Пример:

SELECT name FROM users1
UNION
SELECT name FROM users2;

Основные моменты:

  • Исключает дубликаты: Объединяет результаты запросов, удаляя повторяющиеся строки.

  • UNION ALL: Включает все дубликаты.

    SELECT name FROM users1
    UNION ALL
    SELECT name FROM users2;

UNION полезен для объединения данных из нескольких таблиц или запросов в один результат.

Собеседования: Java

Смотри записи интервью, узнай, какие вопросы задают и как отвечают кандидаты.

Вопросы и ответы

Не нашли ответ? Напишите мне в чат. Я делаю Шпаргалку и сам отвечаю на сообщения. Расскажите, что не работает или чего вам не хватает. Может, смогу сразу взять это в работу.

Откуда взяты вопросы?

Из реальных собеседований. Основой подборки стал опыт Вадима Новосёлова: он проходил интервью и записывал вопросы. Подробнее о материалах.

Насколько эти вопросы актуальны?

Эти вопросы встречались нам на реальных собеседованиях в 2025 году. Мы регулярно проходим собеседования и пополняем подборку новыми вопросами. Основы профессии и ключевые технологии остаются востребованными годами, а детали конкретных инструментов и версий стоит сверять с текущей документацией.

На какой уровень рассчитана подборка?

Мы проходили собеседования на вакансии уровня Middle+, а иногда и на Senior-позиции. Вопросы из этих интервью вошли в подборку. Направления работы: Java-разработчик, Backend-разработчик на Java. Глубина обсуждения зависит от вакансии: будь готов объяснить основную идею, привести практический пример и разобрать ограничения и альтернативы решения.

Этот вопрос точно будет на моём собеседовании?

Гарантии нет: набор вопросов зависит от компании, задач команды, уровня вакансии и самого интервьюера. Эти вопросы уже встречались на реальных собеседованиях, но на твоём интервью ту же тему могут проверить другой формулировкой, практической задачей или обсуждением твоего опыта. Используй подборку, чтобы разобраться в теме: объясняй идею своими словами, приводи примеры и готовься обсудить ограничения и альтернативы решения. Так будет проще ответить и на знакомый вопрос, и на неожиданные уточнения.