TiDB關鍵字 保留字和注釋語法

2021-09-29 23:39:46 字數 2808 閱讀 4650

關鍵字在 sql 中有特殊的意義, 例如selectupdatedelete,在作為表名跟函式名的時候,需要特殊對待,例如作為表名,保留字需要被反引號包住:

create

table

select

(a int

);

error 1105

(hy000): line 0

column

19 near " (a int)"

(total length 27

)

create

table

`select

`(a int

);

query ok,

0rows affected (

0.09 sec)

beginend是關鍵字, 但不是保留字,所以不需要反引號:

create

table

`select`(

begin

int,

endint

);

query ok,

0rows affected (

0.09 sec)

有一種特殊情況, 如果使用了限定符 .,那麼也不需要用反引號:

create

table test.

select

(begin

int,

endint

);

query ok,

0rows affected (

0.08 sec)

下表列出了在 tidb 中的關鍵字跟保留字,保留字用 ® 來標識:

tidb 支援三種注釋風格:

select1+

1;# 注釋文字

+

------+|1

+1|+

------+|2

|+------+

1row

inset

(0.00 sec)

select1+

1;-- 注釋文字

+

------+|1

+1|+

------+|2

|+------+

1row

inset

(0.00 sec)

select

1/* 這是行內注釋文字 */+1

;

+

--------+|1

+1|+

--------+|2

|+--------+

1row

inset

(0.01 sec)

select1+

->

/* /*> 這是一條

/*> 多行注釋

/*> */

->

1;

+

-------+|1

+1|+

-------+|2

|+-------+

1row

inset

(0.00 sec)

select1+

1--1;

+

--------+|1

+1--1 |

+--------+|3

|+--------+

1row

inset

(0.01 sec)

tidb 也跟 mysql 保持一致,支援一種 c 風格注釋的變體:

/*! specific code */
在這種格式中,tidb 會執行注釋中的語句,這個語法是為了讓這些 sql 在其他的資料庫中被忽略,而在 tidb 中被執行。

例如:select /*! straight_join */ col1 from table1,table2 where ...

在 tidb 中,這種寫法等價於 select straight_join col1 from table1,table2 where …

如果注釋中指定了 server 版本號,例如/*!50110 key_block_size=1024 */,在 mysql 中表示只有 mysql 的版本大於等於 5.1.10 才會處理這個 comment 中的內容。但是在 tidb 中,這個版本號不會起作用,所有的 comment 都會處理。

還有一種注釋會被當做是優化器 hint 特殊對待:

select

/*+ hint */

from..

.;

由於 hint 包含在類似 /*+ *** */ 的 comment 裡,mysql 客戶端在 5.7.7 之前,會預設把 comment 清除掉,如果需要在舊的客戶端使用 hint,需要在啟動客戶端時加上 –comments 選項,例如 mysql -h 127.0.0.1 -p 4000 -uroot –comments

Javascript關鍵字和保留字

ecma 262 定義了 ecmascript 支援的一套關鍵字 keyword 這些關鍵字標識了 ecmascript 語句的開頭和 或結尾。根據規定,關鍵字是保留的,不能用作變數名或函式名。下面是 ecmascript 關鍵字的完整列表 break case catch continue def...

關鍵字 保留字 保留標示符。。。

關鍵字是保留字,不能用來做識別符號 如變數名 例如 int double 是錯誤的,因為 double 是關鍵字,不能做變數名。使用關鍵字來做變數名是一種語法錯誤,不能通過編譯!下表列出了 c 語言的所有關鍵字,其中紅色的是 iso c99 標準新增的關鍵字。auto enum restrict u...

Oracle的保留字和關鍵字

1.oracle有許多保留字 reserved words 和關鍵字 keywords 其區別是保留字不可以用來作為識別符號,關鍵字可以用來作為識別符號,但不建議使用。2.如果碰到關鍵字來作為識別符號,例如 create table my box id number 10 not null,colu...