mysql:6924
From: shogo <shogo <sho@xxxxxxxxxx>>
Date: Sat, 01 Feb 2003 14:06:03 +0900
Subject: [mysql 06924] Re: SQL 文について(仮)
河瀬です。 松枝さんの仰るとおり、 ・バージョン依存 ・ベンダー依存 という点まですべて踏まえた考え方をするのがBESTだとは思います。 が、 ・質問した方の記述から、MySQL 3.23.6以降であることは明白である ・このMLが(高度な技術を持っている人が思っているより)初心者の方が多い ・このMLが「システム設計」のMLではなく、「MySQL」のMLである ということを考えての返答をするべきじゃないか、と思ったまでです。 松枝さんの仰り様だと、まるでそう言った書き方が「間違っている」とでも 言えるような内容でしたので、質問させて頂きました。 ただ一点。 TINYINTを使用しているのには投稿者にもきちんと意図がある(と思うべき) なのではないでしょうか。MySQLのドキュメントにも、入るべき値に即した 最小の型を使うのが望ましい、と言ったような記述がありますし、 あそこであえて指摘する点ではなかったと思いますが・・・ (それこそ、あまり理解してない型が「TINYINT=悪」とも取れそうな記述だったので・・・ ML account さんは書きました: >> 次に、バッククォートについて触れていますが、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つ)となっているシステム設計や構築の失敗が、最近特に増えている気が >しています。その分析を論文に書いて見るのも面白いかと考えます。 >
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> ]