Rechercher dans le manuel MySQL
13.2.14 VALUES Statement
VALUES
is a DML statement
introduced in MySQL 8.0.19 which returns a set of one or more rows
as a table. In other words, it is a table value constructor which
also functions as a standalone SQL statement.
row_constructor_list: ROW(value_list)[, ROW(value_list)][, ...] value_list: column_designator: column_index
The VALUES
statement consists of
the VALUES
keyword followed by a list of one or
more row constructors, separated by commas. A row constructor
consists of the ROW()
row constructor function
with a value list of one or more scalar values as its argument. A
value can be a literal of any MySQL data type or an expression
that resolves to a scalar value.
ROW()
cannot be empty (but can be
NULL
). Each ROW()
in the
same VALUES
statement must have the
same number of values in its value list.
The DEFAULT
keyword is not supported by
VALUES
and causes a syntax error, except when
it is used to supply values in an
INSERT
statement.
The output of VALUES
is a table:
+----------+----------+----------+ | column_0 | column_1 | column_2 | +----------+----------+----------+ | 1 | -2 | 3 | | 5 | 7 | 9 | | 4 | 6 | 8 | +----------+----------+----------+
The columns of the table output from
VALUES
have the implicitly named
columns column_0
, column_1
,
column_2
, and so on, always beginning with
0
. This fact can be used to order the rows by
column using an optional ORDER BY
clause in the
same way that this clause works with a
SELECT
statement, as shown here:
+----------+----------+----------+ | column_0 | column_1 | column_2 | +----------+----------+----------+ | 1 | -2 | 3 | | 4 | 6 | 8 | | 5 | 7 | 9 | +----------+----------+----------+
The VALUES
statement also supports
a LIMIT
clause for limiting the number of rows
in the output.
The VALUES
statement is permissive regarding
data types of column values; you can mix types within the same
column, as shown here:
-> ROW(23, "abc", 98.6), -> ROW(27.0002, "Mary Smith", '{"a": 10, "b": 25}'); +----------+------------+--------------------+ | column_0 | column_1 | column_2 | +----------+------------+--------------------+ | q | 42 | 2019-12-18 | | 23 | abc | 98.6 | | 27.0002 | Mary Smith | {"a": 10, "b": 25} | +----------+------------+--------------------+
VALUES
with one or more instances of
ROW()
acts as a table value constructor;
although it can be used to supply values in an
INSERT
or
REPLACE
statement, do not confuse
it with the VALUES
keyword that is also used
for this purpose. You should also not confuse it with the
VALUES()
function that refers to
column values in
INSERT ...
ON DUPLICATE KEY UPDATE
.
In addition, do not confuse VALUES ROW()
with
the ROW()
form of the row constructor (see
Section 13.2.11.5, “Row Subqueries”).
VALUES
can be used in many cases
where you could employ SELECT
,
including those listed here:
With
UNION
, as shown here:- +----+----+
- | 1 | 2 |
- +----+----+
- | 1 | 2 |
- | 10 | 15 |
- +----+----+
- +----------+----------+
- | column_0 | column_1 |
- +----------+----------+
- | 1 | 2 |
- | 10 | 15 |
- +----------+----------+
It is also possible in this fashion to union together constructed tables having more than one row, like this:
- +----------+----------+
- | column_0 | column_1 |
- +----------+----------+
- | 1 | 2 |
- | 3 | 4 |
- | 5 | 6 |
- | 10 | 15 |
- | 20 | 25 |
- +----------+----------+
VALUES
can also be used in unions withSELECT
statements,TABLE
statements, or both.The constructed tables in the
UNION
must contain the same number of columns, just as if you were usingSELECT
. See Section 13.2.10.3, “UNION Clause”, for further examples.In joins. See Section 13.2.10.2, “JOIN Clause”, for more information and examples.
In place of
VALUES()
in anINSERT
orREPLACE
statement, in which case its semantics differ slightly from what is described here. See Section 13.2.6, “INSERT Statement”, for details.In place of the source table in
CREATE TABLE ... SELECT
andCREATE VIEW ... SELECT
. See the descriptions of these statements for more information and examples.
Deutsche Übersetzung
Sie haben gebeten, diese Seite auf Deutsch zu besuchen. Momentan ist nur die Oberfläche übersetzt, aber noch nicht der gesamte Inhalt.Wenn Sie mir bei Übersetzungen helfen wollen, ist Ihr Beitrag willkommen. Alles, was Sie tun müssen, ist, sich auf der Website zu registrieren und mir eine Nachricht zu schicken, in der Sie gebeten werden, Sie der Gruppe der Übersetzer hinzuzufügen, die Ihnen die Möglichkeit gibt, die gewünschten Seiten zu übersetzen. Ein Link am Ende jeder übersetzten Seite zeigt an, dass Sie der Übersetzer sind und einen Link zu Ihrem Profil haben.
Vielen Dank im Voraus.
Dokument erstellt 26/06/2006, zuletzt geändert 26/10/2018
Quelle des gedruckten Dokuments:https://www.gaudry.be/de/mysql-rf-values.html
Die Infobro ist eine persönliche Seite, deren Inhalt in meiner alleinigen Verantwortung liegt. Der Text ist unter der CreativeCommons-Lizenz (BY-NC-SA) verfügbar. Weitere Informationen auf die Nutzungsbedingungen und dem Autor.
Referenzen
Diese Verweise und Links verweisen auf Dokumente, die während des Schreibens dieser Seite konsultiert wurden, oder die zusätzliche Informationen liefern können, aber die Autoren dieser Quellen können nicht für den Inhalt dieser Seite verantwortlich gemacht werden.
Der Autor Diese Website ist allein dafür verantwortlich, wie die verschiedenen Konzepte und Freiheiten, die mit den Nachschlagewerken gemacht werden, hier dargestellt werden. Denken Sie daran, dass Sie mehrere Quellinformationen austauschen müssen, um das Risiko von Fehlern zu reduzieren.