SQL IDENTIFIERS
SQL identifiers is the name of the database objects.
Such as table, view, database these objects are examples of SQL identifiers:
Requirement
Unquoted object identifiers:
- Begin with a Unicode letter (A-Z, a-z) or an underscore (_). Subsequent characters can only be letters, underscores, digits (0-9), or dollar signs ($). 
- In default, Are stored and resolved as lowercase characters (e.g. ID is stored and resolved as id). 
Double-quoted object Identifiers:
- The identifier can contain and can even start with any ASCII character from the blank character (32) to the tilde (126). 
- In default, The case of the identifier is preserved when storing and resolving the identifier (e.g. "Id" is stored and resolved as Id). 
Examples:
databend :) create table " with""TestQuote""" (id int);
databend :) desc ` with""TestQuote""`;
+-------+------+------+---------+-------+
| Field | Type | Null | Default | Extra |
+-------+------+------+---------+-------+
| id    | INT  | NO   | 0       |       |
+-------+------+------+---------+-------+
Unquoted Identifiers
If an identifier is not enclosed in double quotes, it must begin with a letter or underscore (_) and cannot contain extended characters or blank spaces.
The following are all examples of valid identifiers; however, in default, the case of the characters in these identifiers would not be preserved:
myidentifier
MyIdentifier1
My$identifier
_my_identifier
Double-quoted Identifiers
In default, Double-quoted identifiers are case-sensitive and can start with and contain any valid characters, including:
- Numbers 
- Special characters (., ', !, @, #, $, %, ^, &, *, etc.) 
- Extended ASCII and non-ASCII characters 
- Blank spaces 
"MyIdentifier"
"my.identifier"
"my identifier"
"My 'Identifier'"
"3rd_identifier"
"$Identifier"
"идентификатор"
Resolution
By default, Databend applies the following rules for storing identifiers (at creation/definition time) and resolving them (in queries and other SQL statements):
- When an identifier is unquoted, it is stored and resolved in lowercase. 
- When an identifier is double-quoted, it is stored and resolved exactly as entered, including case. 
If want to preserve the case of characters when use unquoted identifier, need set unquoted_ident_case_sensitive = 1.
Examples:
databend :) set unquoted_ident_case_sensitive=1;
databend :) create table Tt(id int);
databend :) desc Tt;
+-------+------+------+---------+-------+
| Field | Type | Null | Default | Extra |
+-------+------+------+---------+-------+
| id    | INT  | NO   | 0       |       |
+-------+------+------+---------+-------+
databend :) create table tt(id1 int);
Query OK, 0 rows affected (0.08 sec)
databend :) desc tt;
+-------+------+------+---------+-------+
| Field | Type | Null | Default | Extra |
+-------+------+------+---------+-------+
| id1   | INT  | NO   | 0       |       |
+-------+------+------+---------+-------+
If do not want to preserve the case of characters when use double identifier, need set quoted_ident_case_sensitive = 0.
Examples:
databend :) set quoted_ident_case_sensitive=0;
Query OK, 0 rows affected (0.03 sec)
databend :) create table "Test"(id int);
Query OK, 0 rows affected (0.06 sec)
databend :) desc Test;
+-------+------+------+---------+-------+
| Field | Type | Null | Default | Extra |
+-------+------+------+---------+-------+
| id    | INT  | NO   | 0       |       |
+-------+------+------+---------+-------+
databend :) desc test;
+-------+------+------+---------+-------+
| Field | Type | Null | Default | Extra |
+-------+------+------+---------+-------+
| id    | INT  | NO   | 0       |       |
+-------+------+------+---------+-------+