Tuesday, 18 August 2026

Keywords Are Not Reserved in ClickHouse: How to Use SQL Keywords as Column and Table Names

      Many SQL databases reserve keywords like SELECT, GROUP, or ORDER, preventing their use as column or table names without quoting. ClickHouse takes a more relaxed approach: keywords are not reserved in ClickHouse. This offers flexibility in naming but comes with considerations for readability and potential ambiguity.

 

For example, you can create a table like below.

CREATE TABLE keyword_demo (
    select UInt32,
    group String,
    order Date
) ENGINE = MergeTree()
ORDER BY select;

This table has three columns: select, group, and order, all of which are SQL keywords.

 

krishna :) CREATE TABLE keyword_demo (
    select UInt32,
    group String,
    order Date
) ENGINE = MergeTree()
ORDER BY select;

CREATE TABLE keyword_demo
(
    `select` UInt32,
    `group` String,
    `order` Date
)
ENGINE = MergeTree
ORDER BY select

Query id: 39c674ab-09d2-43fa-8bc2-c9d9caa94cf3

Connecting to database demo_db at localhost:9000 as user default.
Connected to ClickHouse server version 25.5.1.

Ok.

0 rows in set. Elapsed: 0.010 sec.

Querying the Table

SELECT select, group, order FROM keyword_demo;

   

This works perfectly in ClickHouse and does not raise syntax errors.

 

krishna :) SELECT select, group, order FROM keyword_demo;

SELECT
    select,
    group,
    order
FROM keyword_demo

Query id: fcb40cef-abd7-46d8-bfbc-50a76c7fd506

Ok.

0 rows in set. Elapsed: 0.002 sec.

   

If your schema grows or you hit parsing ambiguity (especially with complex expressions or joins), consider backticks (`) or double quotes ("").

 

SELECT `select`, `group`, `order` FROM keyword_demo;
        (OR)
SELECT "select", "group", "order" FROM keyword_demo;

krishna :) SELECT `select`, `group`, `order` FROM keyword_demo;

SELECT
    select,
    group,
    order
FROM keyword_demo

Query id: d7d962c8-1709-4e38-8f2a-57d6012f7a04

Ok.

0 rows in set. Elapsed: 0.002 sec. 

krishna :) 
krishna :) 
krishna :) SELECT "select", "group", "order" FROM keyword_demo;

SELECT
    select,
    group,
    order
FROM keyword_demo

Query id: c250da7f-bbea-4b89-b47f-8b4801ec178c

Ok.

0 rows in set. Elapsed: 0.002 sec. 

krishna :)

  ClickHouse does not reserve keywords strictly, they can be reused as identifiers. But I would suggest avoiding these to prevent any confusion.

 

Previous                                                    Next                                                    Home

No comments:

Post a Comment