mysql:6923
From: ML account <ML account <ml@xxxxxxxxxx>>
Date: Sat, 01 Feb 2003 13:23:55 +0900
Subject: [mysql 06923] Re: SQL 文について(仮)
こんにちは。 shogo <sho@xxxxxxxxxx>さんの <200302010338.AA00262@xxxxxxxxxx> "[mysql 06922] Re: SQL 文について(仮)" > とありますが、基本的な問題なんでしょうか? と、思いますよ。 > 次に、バッククォートについて触れていますが、MySQLマニュアルのリファレン > スによると MySQL 3.23.6以降では識別子を``'でクォートする、と述べられてい > ます。さらに > 注意: 識別子が制限された単語であったり特殊文字を含む場合は、それ > を使用する時には常に ` (バッククォート) でクォートする必要があり > ます: > との注意書きまで加えられていますが、なぜここでバッククォートの使用をやめ > ろ、と仰るのでしょうか > > さらに、この形でのINSERT文をMySQL3.22.10以降はサポートしていると思います > が?(ANSI標準ではないのかもしれませんが・・・ バージョン依存ですよね?バッククオートもINSERTも。バージョンの指定が無 い場合、一般的な話をする方が良いと思います。さもなければ、「バージョンい くついくつで」と書いて限定を行うと良いと思います。 INSERTで2つの書き方があって、1つは基準準拠、もう1つはローカル限定と した場合、何を好きこのんでローカル限定を使う必要があるのでしょう。 「それ(=tableやuserのような名前)を使わなきゃいけない場面もないとは言い 切れません」とはどういう場合でしょう。SQLも言語であり、その「プログラム」 がドキュメントとしての側面を持っている事を考えれば、「やる事は可能」と 「やる」or「やってよい」の間には相当の隔たりがあるのではないでしょうか。 > ・なぜ、バッククォートを使ってはならないのか > ・なぜ、TINYINTを使ってはならないのか > ・なぜ、MySQLの許容するINSERT構文を使ってはならないのか。 バッククオートとINSERTについては上に書きました。TINYINTが好ましくない 理由は、それが必然である理由が見えないからです。厳密なテーブル設計により 絶対に 256以上のレコードにならないという保証があるならまだしも、そう いう限定なり保証なりが存在せず、またテーブル設計に種々の問題がある、ロー カル限定の書き方をする、となれば、「ただ何となく」がTINYINT使用の理由と 考えられるでしょう(ぼくはそう考えました)。 基本的な問題と言ったものは、全て一般的なシステム設計の注意事項だと考え ています。技術者のみならず技術マターの話をする場合に「常識」として知って なければならないはずのもので、その意味で文献になっているかは疑問です。で すが、そういう「常識」が通用しなくなっているのもまた事実で、それが原因 (の1つ)となっているシステム設計や構築の失敗が、最近特に増えている気が しています。その分析を論文に書いて見るのも面白いかと考えます。 松枝知直 <tomom@xxxxxxxxxx> http://www.argus.ne.jp/~tomom/
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> ]