📣
TiDB Cloud Premium is now in public preview. Unlimited growth, instant elasticity, advanced security for enterprise workloads. Try it out →

Tuple



Overview

TUPLE(T1, T2, …) stores a fixed ordered list of values with declared element types. Each tuple value can hold heterogeneous data (for example, TUPLE(DATETIME, STRING)) and behaves like a compact struct. Because tuples are immutable, insert the entire tuple value whenever you need to change its contents.

Examples

Create and Insert

CREATE TABLE events_tuple ( event_info TUPLE(DATETIME, STRING) ); INSERT INTO events_tuple VALUES (('2023-02-14 08:00:00', 'Valentine''s Day')), (('2023-03-17 19:30:00', 'Game Night')); SELECT event_info FROM events_tuple;

Result:

┌──────────────────────────────────────────────────────┐ │ event_info │ ├──────────────────────────────────────────────────────┤ │ ["2023-02-14T08:00:00","Valentine's Day"] │ │ ["2023-03-17T19:30:00","Game Night"] │ └──────────────────────────────────────────────────────┘

Access Elements

Tuple fields use 1-based ordinal access (tuple_column.1) or aliases when you name the elements.

-- Ordinal access SELECT event_info.1 AS event_time, event_info.2 AS description FROM events_tuple;

Result:

┌──────────────────────────┬──────────────────┐ │ event_time │ description │ ├──────────────────────────┼──────────────────┤ │ 2023-02-14T08:00:00 │ Valentine's Day │ │ 2023-03-17T19:30:00 │ Game Night │ └──────────────────────────┴──────────────────┘

Tuples are handy when you need to pass grouped values through SQL expressions without introducing additional table columns.

Was this page helpful?