---
title: Работа с таблицами
seo:
  title: Работа с таблицами — Java Developer
  description: Тема «Работа с таблицами» для собеседования Java Developer. Что такое «временная таблица»? Для чего она используется? Как создать индекс?
---

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

## <strong>Что такое «временная таблица»? Для чего она используется?</strong> [#q-14bee738d69b81eeb0c1fce75d676f48]

Временная таблица хранит промежуточные данные. Область видимости и срок жизни зависят от СУБД. Ниже смешаны два синтаксиса&#58; CREATE TEMPORARY TABLE применяется, например, в PostgreSQL, а #temp и ##temp относятся к SQL Server.

#### Основные виды&#58;

{/* prettier-ignore */}
1. <strong>Локальные временные таблицы&#58;</strong>

    - Создаются с помощью <code>CREATE TEMPORARY TABLE</code> или <code>CREATE TABLE &#35;temp</code>.

    - Видны только в пределах текущей сессии.

    - Удаляются автоматически после завершения сессии или транзакции.

1. <strong>Глобальные временные таблицы&#58;</strong>

    - Создаются с помощью <code>CREATE TABLE &#35;&#35;temp</code>.

    - Видны для всех сессий.

    - Удаляются только после завершения всех сессий, которые используют таблицу.

#### Использование&#58;

{/* prettier-ignore */}
1. <strong>Хранение промежуточных результатов&#58;</strong>

    - Используются для хранения промежуточных данных во время сложных запросов или манипуляций с данными.

1. <strong>Ускорение сложных операций&#58;</strong>

    - Ускоряют выполнение сложных операций, разбивая их на более простые шаги.

1. <strong>Обработка данных&#58;</strong>

    - Помогают в сортировке, фильтрации и агрегировании данных перед окончательной вставкой в основные таблицы.

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

```sql
-- Создание локальной временной таблицы
CREATE TEMPORARY TABLE temp_users (
    id INT,
    name VARCHAR(100)
);

-- Вставка данных во временную таблицу
INSERT INTO temp_users (id, name) VALUES (1, 'Alice');

-- Использование временной таблицы
SELECT * FROM temp_users;

-- Локальная временная таблица будет автоматически удалена по завершении сессии
```

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

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

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

---

## <strong>Как создать индекс?</strong> [#q-14bee738d69b8153a4d8d176bdf1e3ec]

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

#### Основные команды&#58;

1. <strong>Создание обычного индекса&#58;</strong>

   ```sql
   CREATE INDEX index_name ON table_name(column_name);
   ```

1. <strong>Создание уникального индекса&#58;</strong>

   ```java
   CREATE UNIQUE INDEX index_name ON table_name(column_name);
   ```

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

1. <strong>Обычный индекс&#58;</strong>

   ```sql
   CREATE INDEX idx_user_name ON users(name);
   ```

1. <strong>Уникальный индекс&#58;</strong>

   ```java
   CREATE UNIQUE INDEX idx_user_email ON users(email);
   ```

Индексы помогают повысить производительность запросов, ускоряя операции поиска и сортировки.

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

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