The SQL 2003 standard defines a way to do it - not all DBMS implement it, though:
<table value constructor> ::= VALUES <row value expression list>
<row value expression list> ::= <table row value expression>
[ { <comma> <table row value expression> }... ]
<row value expression> ::=
<row value special case>
| <explicit row value constructor>
<table row value expression> ::=
<row value special case>
| <row value constructor>
And, after wading through much other BNF, you can find:
<explicit row value constructor> ::=
<left paren> <row value constructor element> <comma>
<row value constructor element list> <right paren>
| ROW <left paren> <row value constructor element list> <right paren>
| <row subquery>
<row value constructor element list> ::=
<row value constructor element>
[ { <comma> <row value constructor element> }... ]
<row value constructor element> ::= <value expression>
Which, when translated, means that in some contexts, you can use:
VALUES (v1a, v1b, v1c), (v2a, v2b, v2c)
to create a table value with two rows and three columns in each row. The INSERT statement is one place you can use the construct. Another is in the FROM clause of a SELECT statement, though showing enough BNF to connect the dots would take more space than SO encourages for an answer.