CREATE TABLE example_all_field_types (
    id INT AUTO_INCREMENT PRIMARY KEY,
    a_tinyint TINYINT,
    a_smallint SMALLINT,
    a_mediumint MEDIUMINT,
    a_int INT,
    a_bigint BIGINT,
    a_decimal DECIMAL(10,2),
    a_float FLOAT,
    a_double DOUBLE,
    a_date DATE,
    a_datetime DATETIME,
    a_timestamp TIMESTAMP,
    a_time TIME,
    a_year YEAR,
    a_char CHAR(10),
    a_varchar VARCHAR(100),
    a_tinytext TINYTEXT,
    a_text TEXT,
    a_mediumtext MEDIUMTEXT,
    a_longtext LONGTEXT,
    a_binary BINARY(10),
    a_varbinary VARBINARY(100),
    a_tinyblob TINYBLOB,
    a_blob BLOB,
    a_mediumblob MEDIUMBLOB,
    a_longblob LONGBLOB,
    a_enum ENUM('Value1', 'Value2', 'Value3'),
    a_set SET('Set1', 'Set2', 'Set3'),
    a_json JSON,
    a_point POINT,
    a_linestring LINESTRING,
    a_polygon POLYGON
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

INSERT INTO example_all_field_types (
    a_tinyint,
    a_smallint,
    a_mediumint,
    a_int,
    a_bigint,
    a_decimal,
    a_float,
    a_double,
    a_date,
    a_datetime,
    a_timestamp,
    a_time,
    a_year,
    a_char,
    a_varchar,
    a_tinytext,
    a_text,
    a_mediumtext,
    a_longtext,
    a_binary,
    a_varbinary,
    a_tinyblob,
    a_blob,
    a_mediumblob,
    a_longblob,
    a_enum,
    a_set,
    a_json,
    a_point,
    a_linestring,
    a_polygon
) VALUES (
    127,
    32767,
    8388607,
    2147483647,
    9223372036854775807,
    99999.99,
    12345.678,
    12345678.1234567,
    '2023-01-01',
    '2023-01-01 12:00:00',
    CURRENT_TIMESTAMP,
    '12:00:00',
    2023,
    'Char Data',
    'Varchar Data',
    'Tinytext Data',
    'Text Data',
    'Mediumtext Data',
    'Longtext Data',
    BINARY('Binary'),
    UNHEX('56617262696E617279'),
    'Tinyblob Data',
    'Blob Data',
    'Mediumblob Data',
    'Longblob Data',
    'Value1',
    'Set1,Set2',
    JSON_OBJECT('key1', 'value1', 'key2', 'value2'),
    ST_PointFromText('POINT(0 0)'),
    ST_LineStringFromText('LINESTRING(0 0, 1 1, 2 2)'),
    ST_PolygonFromText('POLYGON((0 0, 4 0, 4 4, 0 4, 0 0))')
);