[前][次][番号順一覧][スレッド一覧]

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> ]