【MySQL,SQLite】数字のみのカラム名、テーブル名は許されるのか?

【要するに】
SQLiteでは『'1'.'2'』のように、『(テーブル名).(カラム名)』のように
記述すればOK。
MySQLでは『`2`』のようにバッククォートで囲むだけでOK。


【実験した環境】


【動機】
外部キーのみで構成されたテーブルを作れないか? と、考えました。
セルの値だけではなく、テーブル名・カラム名も、正式な名前は別テーブルに
保管されている、という…。


つまり
【テーブル名:'1'】

2 (カラム名)3 (カラム名)
4 (セルの値)5 (セルの値)
67
89

↑こんなテーブルです。


MySQL 4.1 リファレンスマニュアルには、
『数字だけで構成される名前は使用できない。』と書かれています。
が、5.xやSQLiteではどうなのかが分からなかったので、実験してみました。


【成功例】
PHPから操作しました。


SQLite:
--テーブル作成
create table '1'(
'2' integer,
'3' integer
);

--レコード挿入
insert into '1'(
'2',
'3'
)
values(4, 5);

--SELECT文
select '1'.'2', '1'.'3'
from '1'
order by '1'.'3' desc;



MySQL:
--テーブル作成
create table `1`(
`2` int,
`3` int
);

--レコード挿入
insert into `1`(
`2`,
`3`
)
values(4, 5);

--SELECT文
select `2`, `3`
from `1`
order by `3` desc;


【疑問】
MySQLでは『`』で囲まなくてはならなかったのですが…、
この、『`』って何なんでしょう?
シングルクォーテーション『'』でもないし…。


(追記)


  • 『`』は『逆クォート、バッククォート、アクサングラーブ』

    などと読むようです。

    →記号の読み色々

  • また、MySQLでは、バッククォートで囲めば予約語や数値のみで
    あっても名前に使えるようです。

    →Open Source WEB

  • SQLiteでは、バッククォートは受け付けてもらえずにエラーになりました。