mysql:6922
From: shogo <shogo <sho@xxxxxxxxxx>>
Date: Sat, 01 Feb 2003 12:38:41 +0900
Subject: [mysql 06922] Re: SQL 文について(仮)
河瀬です。ちゃちゃですが。 ML account さんは書きました: > ・テーブル名にtableやuserの様な名前は好ましくない。 > ・バッククオートでテーブル名やカラム名を括っている > ・カラムの型(TYNYINTの使用)や長さ(tableのmessageやuserのnameの長 > さは1)に問題がある。 > ・テーブルuserにプライマリキーやインデックスが付いていない。 > ・INSERT文の構文が間違っている > > MySQLでクエリが動くかをチェックするのはもちろん、 MySQLのドキュメント >を精読する、SQLのリファレンスを買って精読する、それらを基礎に色々考えて >みる、を励行しましょう。 > とありますが、基本的な問題なんでしょうか? まず、tableやuserのような名前がテーブル名に好ましくないのはわかりますが、 それを使わなきゃいけない場面もないとは言い切れません。(そのためにバッククォートを使ってるのかも知れませんし。 次に、バッククォートについて触れていますが、MySQLマニュアルのリファレンスによると MySQL 3.23.6以降では識別子を``'でクォートする、と述べられています。 さらに 注意: 識別子が制限された単語であったり特殊文字を含む場合は、それを使用する時には常に ` (バッククォー ト) でクォートする必要があります: との注意書きまで加えられていますが、なぜここでバッククォートの使用をやめろ、と仰るのでしょうか。 マニュアルを読め、と仰りますが、(お世辞にも読みやすいとは言えない)MySQLマニュアルを読む限りでは 識別子はバッククォートでくくった方がよい、と判断する人が多くと思いますが? さらに、この形でのINSERT文をMySQL3.22.10以降はサポートしていると思いますが? (ANSI標準ではないのかもしれませんが・・・ もし、これらのことが間違ってるようでしたら、 是非そういった記述のある文献等を紹介して頂きたいのですが・・・ ・なぜ、バッククォートを使ってはならないのか ・なぜ、TINYINTを使ってはならないのか ・なぜ、MySQLの許容するINSERT構文を使ってはならないのか。 マニュアルを読んだ状態では、これらの点について納得のいく説明が付かないのですが。
6920 2003-02-01 07:23 ["Kondo Tatsuya" <kon] SQL 文について(仮) 6921 2003-02-01 12:15 ┗[ML account <ml@xxxxx] -> 6922 2003-02-01 12:38 ┗[shogo <sho@xxxxxxxxx] 6923 2003-02-01 13:23 ┗[ML account <ml@xxxxx] 6924 2003-02-01 14:06 ┣[shogo <sho@xxxxxxxxx] 6930 2003-02-02 13:47 ┃┗[ML account <ml@xxxxx] 6925 2003-02-01 14:23 ┗[Shingo Yamagai <yama] 6926 2003-02-01 17:17 ┗[<lavlav@xxxxxxxxxx> ]