🐬
MySQLのシノニム
sakaik さんが MySQL: desc は explain !? - sakaikの日々雑感~(T)編 という記事を上げてたのを見て、そういや最近はほかにどんなのがあるんだっけ…と思って調べてみた。
以下はMySQL 8.0.29 の sql/lex.hから抽出したもの。字句解析上のシノニム。
<> | != | ||
ANY | SOME | ||
BIGINT | INT8 | ||
CHAR | CHARACTER | ||
COLUMNS | FIELDS | ||
CURDATE* | CURRENT_DATE | ||
CURTIME* | CURRENT_TIME | ||
DATABASE | SCHEMA | ||
DATABASES | SCHEMAS | ||
DAY | SQL_TSI_DAY | ||
DECIMAL | DEC | ||
DESCRIBE | EXPLAIN | ||
DISTINCT | DISTINCTROW | ||
DOUBLE | FLOAT8 | ||
FLOAT | FLOAT4 | ||
GEOMETRYCOLLECTION | GEOMCOLLECTION | ||
HOUR | SQL_TSI_HOUR | ||
INT | INT4 | INTEGER | |
MEDIUMINT | INT3 | MIDDLEINT | |
MINUTE | SQL_TSI_MINUTE | ||
MONTH | SQL_TSI_MONTH | ||
NDBCLUSTER | NDB | ||
NOW* | CURRENT_TIMESTAMP | LOCALTIME | LOCALTIMESTAMP |
QUARTER | SQL_TSI_QUARTER | ||
REGEXP | RLIKE | ||
RELAY_THREAD | IO_THREAD | ||
SECOND | SQL_TSI_SECOND | ||
SMALLINT | INT2 | ||
STD* | STDDEV* | STDDEV_POP* | |
SUBSTRING* | MID* | SUBSTR* | |
TINYINT | INT1 | ||
USER | SESSION_USER* | SYSTEM_USER* | |
VARCHAR | VARCHARACTER | ||
VARIANCE* | VAR_POP* | ||
WEEK | SQL_TSI_WEEK | ||
YEAR | SQL_TSI_YEAR |
* がついてるのは関数でしか使えない単語。
たとえば、 SELECT CURRENT_TIMESTAMP
と SELECT CURRENT_TIMESTAMP()
はどちらも使えるけど、SELECT NOW
はダメで、SELECT NOW()
はOK。みたいな。
USER
は関数形式じゃなくても使えるけど、SELECT USER
みたいに使えるというわけじゃない。CREATE USER
とかで使えるということ。
CHARSET
を書けるところは CHARACTER SET
とも書けるんだけど、これは字句解析じゃなくて構文解析の処理の方なのでここには書いてない。構文解析を調べるのはめんどくさい。
Discussion