10bet网址
MySQL 8.0参考手册
相关的文档10bet官方网站 下载本手册
PDF(美国高级主任)- 41.5 mb
PDF (A4)- 41.6 mb
手册页(TGZ)- 262.1 kb
手册页(Zip)- 372.2 kb
信息(Gzip)- 4.0 mb
信息(邮政编码)- 4.0 mb
本手册节选

13.2.14 VALUES语句

是MySQL 8.0.19中引入的DML语句,它返回一组一行或多行作为表。换句话说,它是一个表值构造函数,也可以作为一个独立的SQL语句运行。

row_constructor_list(订单column_designator][限制数量row_constructor_list:行(value_list)、行(value_list)][……]value_list价值(,价值][……]column_designator: column_指数

语句由关键字,后跟一个或多个行构造函数的列表,以逗号分隔。行的构造函数由行()行构造函数子句,其括号中包含一个或多个标量值的值列表。值可以是任何MySQL数据类型的文字,也可以是解析为标量值的表达式。

行()不能为空(但提供的每个标量值都可以为空).每一个行()同样的语句的值列表中必须有相同数量的值。

默认的关键字不支持类中提供值时除外,否则将导致语法错误插入声明。

的输出是一个表:

mysql >值行(1、2、3)、行(5、7、9),行(4 6 8);+----------+----------+----------+ | column_0 | column_1 | column_2  | +----------+----------+----------+ | 1 | 2 | 3 | | 5 | 7 9 | | | 4 | 6 | 8  | +----------+----------+----------+ 3行集(0.00秒)

表的列从是否有隐式命名的列column_0column_1column_2,等等,总是以0.此事实可用于使用可选参数按列对行进行排序命令子句的用法与此子句的用法相同选择语句,如下所示:

mysql> VALUES ROW(1,2,3), ROW(5,7,9), ROW(4,6,8) ORDER BY column_1;+----------+----------+----------+ | column_0 | column_1 | column_2  | +----------+----------+----------+ | 1 | 2 | 3 | 4 | | 6 | 8 | | 5 | 7 | 9  | +----------+----------+----------+ 3行集(0.00秒)

语句还支持限制子句,用于限制输出中的行数。

语句对于列值的数据类型是允许的;你可以在同一列中混合类型,如下所示:

mysql >值行(“q”,42岁,' 2019-12-18 '),- - - - - - >行(23岁,“abc”,98.6),- - - - - - >行(27.0002,“玛丽·史密斯”,“{“b”:“一”:10日25}”);+----------+------------+--------------------+ | column_0 | column_1 | column_2  | +----------+------------+--------------------+ | 问42 | | 2019-12-18 | | 23 abc | | 98.6 | 27.0002 | |玛丽·史密斯|{“a”:10“b”:25 } | +----------+------------+--------------------+ 3行集(0.00秒)
重要的

的一个或多个实例行()充当表值构造函数;虽然它可以用于在插入取代表述,不要把它和同样用于此目的的关键字。你也不应该把它和值()中的列值的函数插入……关于重复密钥更新

你也应该记住行()是行值构造函数(参见第13.2.11.5节,“行子查询”,而值行()是表值构造函数;这两者不能互换使用。

可以用在很多情况下,你可以使用选择,包括以下列出的:

  • 联盟,如图所示:

    mysql> SELECT 1,2 UNION SELECT 10,15;+----+----+ | 1 | 2  | +----+----+ | 1 | 2 | | 10 | 15  | +----+----+ 2行(0.00秒)mysql >值行(1、2)联盟值行(10、15);+----------+----------+ | column_0 | column_1  | +----------+----------+ | 1 | 2 | | 10 | 15  | +----------+----------+ 2行集(0.00秒)

    也可以用这种方式将有多行构造的表联合在一起,像这样:

    mysql> VALUES ROW(1,2), ROW(3,4), ROW(5,6) > UNION VALUES ROW(10,15),ROW(20,25);+----------+----------+ | column_0 | column_1  | +----------+----------+ | 1 | 2 | 3 | 4 | | | 5 | 6 | | 10 | 15 | | 20 | 25  | +----------+----------+ 5行集(0.00秒)

    你也可以省略(通常最好省略)联盟在这种情况下,使用一个声明,像这样:

    mysql >值行(1、2)、行(3、4),(5、6)行,行(10、15)、行(20、25);+----------+----------+ | column_0 | column_1  | +----------+----------+ | 1 | 2 | 3 | 4 | | | 5 | 6 | | 10 | 15 | | 20 | 25  | +----------+----------+

    也可以用在与选择语句,表格表述,或者两者都有。

    中构造的表联盟必须包含相同数量的列,就像使用选择.看到第13.2.10.3节“联合条款”,以了解更多例子。

  • 在连接。看到第13.2.10.2节“JOIN子句”,以了解更多资料及例子。

  • 代替值()在一个插入取代语句,在这种情况下,它的语义与这里描述的略有不同。看到第13.2.6节,“INSERT语句”查阅详情。

  • 代替源表中的创建表…选择而且创建视图…选择.有关更多信息和示例,请参阅这些语句的描述。