關鍵字在 sql 中有特殊的意義, 例如select,update,delete,在作為表名跟函式名的時候,需要特殊對待,例如作為表名,保留字需要被反引號包住:
create
table
select
(a int
);
error 1105
(hy000): line 0
column
19 near " (a int)"
(total length 27
)
create
table
`select
`(a int
);
begin和end是關鍵字, 但不是保留字,所以不需要反引號:query ok,
0rows affected (
0.09 sec)
create
table
`select`(
begin
int,
endint
);
有一種特殊情況, 如果使用了限定符 .,那麼也不需要用反引號:query ok,
0rows affected (
0.09 sec)
create
table test.
select
(begin
int,
endint
);
下表列出了在 tidb 中的關鍵字跟保留字,保留字用 ® 來標識:query ok,
0rows affected (
0.08 sec)
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;
tidb 也跟 mysql 保持一致,支援一種 c 風格注釋的變體:+
--------+|1
+1--1 |
+--------+|3
|+--------+
1row
inset
(0.01 sec)
/*! 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 特殊對待:
由於 hint 包含在類似 /*+ *** */ 的 comment 裡,mysql 客戶端在 5.7.7 之前,會預設把 comment 清除掉,如果需要在舊的客戶端使用 hint,需要在啟動客戶端時加上 –comments 選項,例如 mysql -h 127.0.0.1 -p 4000 -uroot –commentsselect
/*+ hint */
from..
.;
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...