×
Мы обрабатываем cookies, чтобы сделать наш сайт удобнее и персонализированнее для вас. Подробнее: политика использования «cookies» и «политики конфиденциальности».

Для самостоятельной настройки ознакомьтесь с инструкцией

Дополнительные настройки cookies в браузерах

Файлы cookie автоматически загружаются в ваш браузер при посещении веб-сайта. У вас есть возможность управлять этими файлами. Если Вы не согласны с использованием файлов cookies, запретите их сохранение на своём устройстве, удалите уже имеющиеся файлы cookies через настройки браузера или прекратите использование сайта.

При отключении обработки cookie наш сайт продолжит функционировать, однако будут использоваться исключительно необходимые технические файлы, без которых работа ресурса невозможна.

Инструкция по отключению cookies
Принять
Настроить
Отклонить

ДОКУМЕНТАЦИЯ

Выберите версию, форк и язык для СУБД Digital Q.DataBase, чтобы прочитать или скачать всю документацию.
Техподдержка
Документация
Диасофт
Авторские права © 2016–2025 ООО "Диасофт Экосистема"
Скачать всю документацию:

6.1.183. VALUES

6.1.183. VALUES

VALUES — вычисление набора строк

Синтаксис

VALUES ( expression [, ...] ) [, ...]
    [ ORDER BY sort_expression [ ASC | DESC | USING оператор ] [, ...] ]
    [ LIMIT { count | ALL } ]
    [ OFFSET start [ ROW | ROWS ] ]
    [ FETCH { FIRST | NEXT } [ count ] { ROW | ROWS } ONLY ]

Описание

VALUES вычисляет значение строки или набор значений строк, заданных выражениями значений. Команда чаще всего используется для формирования «константной таблицы» в составе более крупной команды, но также может использоваться самостоятельно.

Если указано несколько строк, все они должны содержать одинаковое количество элементов. Типы данных столбцов результирующей таблицы определяются путем сопоставления явных или выведенных типов выражений, представленных в данном столбце, по тем же правилам, что и для UNION (см. Раздел 2.7.5).

В составе более крупных команд VALUES синтаксически допускается в любом месте, где SELECT . Поскольку с точки зрения грамматики оно обрабатывается как SELECT синтаксисом, допускается использовать предложения ORDER BY, LIMIT (или равнозначное FETCH FIRST), а также OFFSET с командой VALUES команда.

Параметры

expression

Константа или выражение для вычисления и вставки в указанное место в результирующей таблице (наборе строк). В VALUES списке, указанном на верхнем уровне оператора INSERT, выражение expression может быть заменено ключевым словом DEFAULT , чтобы указать, что должно быть вставлено значение по умолчанию целевого столбца. DEFAULT не может использоваться, когда VALUES используется в других контекстах.

sort_expression

Выражение или целочисленная константа, определяющая порядок сортировки результирующих строк. Это выражение может ссылаться на столбцы VALUES результата как column1, column2, и т. д. Подробнее см. ORDER BY Clause в SELECT документации.

оператор

Оператор сортировки. Подробности см. в ORDER BY Clause в SELECT документации.

count

Максимальное число возвращаемых строк. Подробности см. в LIMIT Clause в SELECT документации.

start

Количество строк, которые необходимо пропустить перед началом возврата строк. Подробности см. в LIMIT Clause в SELECT документации.

Примечания

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

Примеры

Автономная VALUES команда:

VALUES (1, 'one'), (2, 'two'), (3, 'three');

Эта команда возвращает таблицу из двух столбцов и трех строк. Это фактически эквивалентно:

SELECT 1 AS column1, 'one' AS column2
UNION ALL
SELECT 2, 'two'
UNION ALL
SELECT 3, 'three';

Как правило, VALUES используется в составе более крупной команды SQL. Наиболее распространенным вариантом использования является INSERT:

INSERT INTO фильмы (code, title, did, date_prod, kind)
    VALUES ('T_601', 'Yojimbo', 106, '1961-06-16', 'Drama');

В контексте INSERT, элементы списка VALUES список может быть DEFAULT для указания на то, что вместо конкретного значения должно использоваться значение столбца по умолчанию:

INSERT INTO фильмы VALUES
    ('UA502', 'Bananas', 105, DEFAULT, 'Comedy', '82 minutes'),
    ('T_601', 'Yojimbo', 106, DEFAULT, 'Drama', DEFAULT);

VALUES также может применяться в тех местах, где может быть указанSELECT может быть записано, например, в предложении FROM:

SELECT f.*
  FROM фильмы f, (VALUES('MGM', 'Horror'), ('UA', 'Sci-Fi')) AS t (studio, kind)
  WHERE f.studio = t.studio AND f.kind = t.kind;

UPDATE employees SET salary = salary * v.increase
  FROM (VALUES(1, 200000, 1.2), (2, 400000, 1.4)) AS v (depno, target, increase)
  WHERE employees.depno = v.depno AND employees.sales >= v.target;

Обратите внимание, что предложение AS требуется, когда VALUES используется в предложении предложении , так же как это необходимо для SELECT. Не требуется, чтобы предложение AS предложении указывать имена для всех столбцов, однако это считается хорошей практикой. (Имена столбцов по умолчанию для VALUES имеют вид column1, column2и т. д. в Digital Q.DataBase, но эти имена могут отличаться в других системах управления базами данных.)

Когда VALUES используется в INSERT, все значения автоматически приводятся к типу данных соответствующего целевого столбца. При использовании в других контекстах может потребоваться указать правильный тип данных. Если все записи являются литеральными константами в кавычках, приведения первой из них достаточно для определения предполагаемого типа для всех остальных:

SELECT * FROM machines
WHERE ip_address IN (VALUES('192.168.0.1'::inet), ('192.168.0.10'), ('192.168.1.43'));

Подсказка

Для простых IN тестов предпочтительнее использовать список скаляров как форму IN чем писать VALUES запрос, как показано выше. Метод со списком скаляров требует меньшего объёма кода и зачастую более эффективен.

Совместимость

VALUES соответствует стандарту SQL. LIMIT и OFFSET являются Digital Q.DataBase расширениями; см. также в разделе SELECT.

См. также

INSERT, SELECT
Наверх
свяжитесь
с нами
контакты
Для прямой связи с нами вы можете использовать контакты ниже, либо оставить заявку через форму обратной связи, и мы обязательно свяжемся с вами

*поля обязательные к заполнению