---
title: Основы SQL
seo:
  title: Основы SQL — Java Developer
  description: Тема «Основы SQL» для собеседования Java Developer. Что такое SQL? Какие существуют операторы SQL?
---

[Все темы Java Developer](/java-developer)

## <strong>Что такое SQL?</strong> [#q-14bee738d69b81898ae4efd3037015ab]

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

#### Основные возможности&#58;

{/* prettier-ignore */}
1. <strong>Создание и модификация структур данных&#58;</strong>

    - <code>CREATE</code>, <code>ALTER</code>, <code>DROP</code>

1. <strong>Манипуляция данными&#58;</strong>

    - <code>INSERT</code>, <code>UPDATE</code>, <code>DELETE</code>

1. <strong>Запрос данных&#58;</strong>

    - <code>SELECT</code>

1. <strong>Управление доступом&#58;</strong>

    - <code>GRANT</code>, <code>REVOKE</code>

#### Пример&#58;

```sql
-- Создание таблицы
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 используется для взаимодействия с базами данных, позволяя выполнять различные операции с данными.

:::note[Ссылки для изучения]

1. [Основы по SQL. Самоучитель](https://www.opennet.ru/docs/RUS/rusql/)
   :::

---

## <strong>Какие существуют операторы SQL?</strong> [#q-14bee738d69b814cb345ec601e6cf915]

<strong>Основные операторы SQL&#58;</strong>

{/* prettier-ignore */}
1. <strong>DDL (</strong><code>Data Definition Language</code><strong>) — Операторы определения данных&#58;</strong>

    - <code>CREATE</code>&#58; Создание таблиц, баз данных, индексов и т.д.

    - <code>ALTER</code>&#58; Изменение структуры таблиц.

    - <code>DROP</code>&#58; Удаление таблиц, баз данных, индексов.

1. <strong>DML (</strong><code>Data Manipulation Language</code><strong>) — Операторы манипуляции данными&#58;</strong>

    - <code>SELECT</code>&#58; Извлечение данных из таблиц.

    - <code>INSERT</code>&#58; Вставка данных в таблицы.

    - <code>UPDATE</code>&#58; Обновление данных в таблицах.

    - <code>DELETE</code>&#58; Удаление данных из таблиц.

1. <strong>DCL (</strong><code>Data Control Language</code><strong>) — Операторы управления доступом&#58;</strong>

    - <code>GRANT</code>&#58; Предоставление привилегий пользователям.

    - <code>REVOKE</code>&#58; Отзыв привилегий у пользователей.

1. <strong>TCL (</strong><code>Transaction Control Language</code><strong>) — Операторы управления транзакциями&#58;</strong>

    - <code>COMMIT</code>&#58; Фиксация изменений в базе данных.

    - <code>ROLLBACK</code>&#58; Отмена изменений в базе данных.

    - <code>SAVEPOINT</code>&#58; Создание точки сохранения в транзакции.

#### Примеры&#58;

```sql
-- 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;
```

:::note[Ссылки для изучения]

1. [Основы по SQL. Самоучитель](https://www.opennet.ru/docs/RUS/rusql/)
   :::

---

## <strong>Что означает</strong> <code>NULL</code> <strong>в SQL?</strong> [#q-14bee738d69b817f980ed18da741d769]

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

#### Основные моменты&#58;

- <strong>Не равно нулю или пустой строке&#58;</strong> <code>NULL</code>
  представляет неизвестное или отсутствующее значение.

- <strong>Сравнения с</strong> <code>NULL</code>
  <strong>&#58;</strong> Используются операторы <code>IS NULL</code> и
  <code>IS NOT NULL</code>.

- <strong>Арифметические операции&#58;</strong> Любая операция с
  <code>NULL</code> возвращает <code>NULL</code>.

#### Примеры&#58;

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

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

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

:::note[Ссылки для изучения]

1. [Основы по SQL. Самоучитель](https://www.opennet.ru/docs/RUS/rusql/)
   :::

---

## <strong>Для чего применяется ключевое слово</strong> <code>UNION</code><strong>?</strong> [#q-14bee738d69b81ec8b35d55fe1433cf2]

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

#### Пример&#58;

```sql
SELECT name FROM users1
UNION
SELECT name FROM users2;
```

#### Основные моменты&#58;

- <strong>Исключает дубликаты&#58;</strong> Объединяет результаты запросов,
  удаляя повторяющиеся строки.

- <strong>UNION ALL&#58;</strong> Включает все дубликаты.

  ```sql
  SELECT name FROM users1
  UNION ALL
  SELECT name FROM users2;
  ```

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

:::note[Ссылки для изучения]

1. [Основы по SQL. Самоучитель](https://www.opennet.ru/docs/RUS/rusql/)
   :::
