Yandex.Cloud
  • Сервисы
  • Почему Yandex.Cloud
  • Сообщество
  • Решения
  • Тарифы
  • Документация
  • Связаться с нами
Подключиться
Yandex Database
  • Начало работы
    • Обзор
    • Создание базы данных
    • YQL
      • Работа с данными
      • Работа с YDB CLI
      • Работа с YDB SDK
    • Document API
      • Работа с данными
      • Работа с инструментами AWS
        • Настройка окружения
  • Пошаговые инструкции
    • Работа с YDB CLI
      • Структура и описание команд YDB CLI
      • Получение информации об объекте схемы
      • Потоковое чтение таблицы
      • Работа со вторичными индексами
    • Использование плана запроса и AST
    • Управление базами данных
    • Подключение к базе данных
    • Управление таблицами
    • Чтение и запись данных
    • Работа со вторичными индексами
  • Работа с SDK
  • Концепции
    • Обзор
    • Модель данных и схема
    • Режимы работы Serverless и Dedicated
    • Типы данных
    • Транзакции
    • Вторичные индексы
    • Time to Live (TTL)
    • Термины и определения
    • Квоты и лимиты
  • Управление доступом
  • Правила тарификации
    • Обзор
    • Бессерверный режим
    • Режим с выделенными инстансами
  • Рекомендации
    • Проектирование схемы
    • Партицирование таблиц
    • Вторичные индексы
    • Постраничный вывод
    • Загрузка больших объемов данных
    • Использование таймаутов
  • YDB API и справочник
    • Ограничения базы данных
    • Обработка ошибок в API
  • HTTP API, совместимый с Amazon DynamoDB
    • Справочник API
      • Все методы
      • Actions
        • BatchGetItem
        • BatchWriteItem
        • CreateTable
        • DeleteItem
        • DeleteTable
        • DescribeTable
        • GetItem
        • ListTables
        • PutItem
        • Query
        • Scan
        • TransactGetItems
        • TransactWriteItems
        • UpdateItem
      • Общие ошибки
  • Справочник YQL
    • Обзор
    • Типы данных
      • Простые
      • Опциональные
      • Контейнеры
      • Специальные
    • Синтаксис
      • Неподдерживаемые конструкции
      • Работа с текстовым представлением типов данных
      • Выражения
      • CREATE TABLE
      • DROP TABLE
      • INSERT INTO
      • UPSERT INTO
      • REPLACE INTO
      • UPDATE
      • DELETE
      • SELECT
      • GROUP BY
      • JOIN
      • FLATTEN
      • ACTION
      • DISCARD
      • PRAGMA
      • DECLARE
      • OVER, PARTITION BY и WINDOW
    • Встроенные функции
      • Базовые
      • Агрегатные
      • Оконные
      • Для работы со списками
      • Для работы со словарями
      • Для работы с JSON
      • Для работы со структурами
      • Для работы с типами
    • Предустановленные пользовательские функции
      • HyperScan
      • Pcre
      • Pire
      • Re2
      • String
      • Unicode
      • Datetime
      • Url
      • Ip
      • Digest
      • Math
      • Histogram
    • Работа с текстовым представлением типов данных
  • Туториал YQL
    • Обзор
    • Создание таблицы
    • Добавление данных в таблицу
    • Выборка данных из всех колонок
    • Выборка данных из определенных колонок
    • Сортировка и фильтрация
    • Агрегирование данных
    • Дополнительные условия выборки
    • Объединение таблиц с помощью JOIN
    • Вставка и модификация данных с помощью REPLACE
    • Вставка и модификация данных с помощью UPSERT
    • Вставка данных с помощью INSERT
    • Обновление данных с помощью UPDATE
    • Удаление данных
    • Добавление и удаление колонок
    • Удаление таблицы
  • Обслуживание
    • Резервное копирование
  • Диагностика
    • Системные таблицы
  • Вопросы и ответы
    • Общие вопросы
    • Ошибки
    • YQL
    • Все вопросы на одной странице
  • Публичные материалы
  1. Справочник YQL
  2. Синтаксис
  3. SELECT

SELECT

  • FROM
  • WHERE
  • ORDER BY
  • LIMIT и OFFSET
  • DISTINCT
  • UNION ALL
  • WITHOUT
  • FROM ... SELECT ...
  • SELECT по вторичному индексу
  • FROM AS_TABLE

Возвращает набор данных из YDB.

Примеры

SELECT "Hello, world!";
SELECT 2 + 2;

FROM

Источник данных для SELECT. В качестве аргумента может принимать имя таблицы, результат другого SELECT или именованное выражение. Между SELECT и FROM через запятую указываются имена столбцов из источника или * для выбора всех столбцов.

Примеры

SELECT key FROM my_table;
SELECT * FROM
  (SELECT value FROM my_table);
$table_name = "my_table";
SELECT * FROM $table_name;

WHERE

Фильтрация строк в результате SELECT по условию.

Пример

SELECT key FROM my_table
WHERE value > 0;

ORDER BY

Сортировка результата SELECT:

  • ASC — по возрастанию. Применяется по умолчанию.
  • DESC — по убыванию.

Несколько критериев сортировки будут применены слева направо.

Примечание

Без ORDER BY запрос SELECT FROM возвращает несортированные данные и не сохраняет порядок из исходной таблицы. В подзапросах использование ORDER BY допускается только вместе с LIMIT.

Пример

SELECT key, string_column
FROM my_table
ORDER BY key DESC, LENGTH(string_column) ASC;

Также ORDER BY может использоваться для сортировки в механизме оконных функций.

LIMIT и OFFSET

LIMIT ограничивает вывод указанным количеством строк. По умолчанию вывод не ограничен.

OFFSET указывает отступ от начала (в строках). По умолчанию — ноль.

Примеры

SELECT key FROM my_table
LIMIT 7;
SELECT key FROM my_table
LIMIT 7 OFFSET 3;
SELECT key FROM my_table
LIMIT 3, 7; -- эквивалентно предыдущему примеру

DISTINCT

Выбор уникальных строк.

Примечание

Применение DISTINCT к вычислимым значениям на данный момент не реализовано. С этой целью можно использовать подзапрос или выражение GROUP BY ... AS ....

Пример

SELECT DISTINCT value -- только уникальные значения из таблицы
FROM my_table;

Также DISTINCT может использоваться для применения агрегатных функций только к уникальным значениям. Подробнее читайте в разделе GROUP BY.

UNION ALL

Конкатенация результатов нескольких SELECT.

Пример

SELECT 1 AS x
UNION ALL
SELECT 2 AS y
UNION ALL
SELECT 3 AS z;

WITHOUT

Исключение столбцов из результата SELECT *.

Примеры

SELECT * WITHOUT foo, bar FROM my_table;
PRAGMA simplecolumns;
SELECT * WITHOUT t.foo FROM my_table AS t
CROSS JOIN (SELECT 1 AS foo) AS v;

FROM ... SELECT ...

Перевернутая форма записи, в которой сначала указывается источник данных, а затем — операция.

Примеры

FROM my_table SELECT key, value;
FROM a_table AS a
JOIN b_table AS b
USING (key)
SELECT *;

SELECT по вторичному индексу

Чтобы сделать запрос SELECT по вторичному индексу, используйте конструкцию:

SELECT *
    FROM TableName VIEW IndexName
    WHERE …

Примеры

  • Выбрать все поля из таблицы series по индексу views_index с условием views >= someValue:

    SELECT series_id, title, info, release_date, views, uploaded_user_id
        FROM series VIEW views_index
        WHERE views >= someValue
    
  • Сделать JOIN таблиц series и users c заданным полем userName по индексам users_index и name_index соответственно:

    SELECT t1.series_id, t1.title
        FROM series VIEW users_index AS t1
        INNER JOIN users VIEW name_index AS t2
        ON t1.uploaded_user_id == t2.user_id
        WHERE t2.name == userName;
    

FROM AS_TABLE

Обращение к именованным выражениям как к таблицам с помощью функции AS_TABLE.

AS_TABLE($variable) позволяет использовать значение $variable в качестве источника данных для запроса. При этом переменная $variable должна иметь тип List<Struct<...>>.

Пример

$data = AsList(
    AsStruct(1u AS Key, "v1" AS Value),
    AsStruct(2u AS Key, "v2" AS Value),
    AsStruct(3u AS Key, "v3" AS Value));

SELECT Key, Value FROM AS_TABLE($data);
В этой статье:
  • FROM
  • WHERE
  • ORDER BY
  • LIMIT и OFFSET
  • DISTINCT
  • UNION ALL
  • WITHOUT
  • FROM ... SELECT ...
  • SELECT по вторичному индексу
  • FROM AS_TABLE
Language
Вакансии
Политика конфиденциальности
Условия использования
© 2021 ООО «Яндекс.Облако»