2013年12月6日金曜日

【活動議事録1】 複数行SQL文の作法

個々の常識

改行して書かれる事もあるSQL文。
その記述方法についてを、当たり前や思い込み?と実用面から議論しました。
じょしかい!!トーク【活動議事録】 第一弾です。


鈴木 和音

「おはよう御座います~」

佐藤 千夏

「和音ちゃん。おはよう~」

田中 雪菜

「おっはよ~!」

 

 

田中 雪菜

「じゃあ~全員揃ったところで、今日の議題は何にしよっか」

佐藤 千夏

「SQL文で取得フィールドが複数あって改行して書く場合、取得フィールドの区切り文字のカンマはフィールド名の前と後ろどっちに書くのか?ってのはどうかしら」

鈴木 和音

「千夏先輩。どうしたんですか?突然。 そんなの後ろに書くに決まってるじゃないですか」

SQL > SELECT
        `table_name`.`field_1`,
        `table_name`.`field_2`,
        `table_name`.`field_3`,
        `table_name`.`field_4`,
        `table_name`.`field_5`
      FROM
        `table_name`

佐藤 千夏

「・・・・・・」

鈴木 和音

「もしかして、千夏先輩は前に書く派なんですか?」

佐藤 千夏

「そうね。 わたしは前にカンマを書くわ」

田中 雪菜

「そーなんだ。 前に書きたいコダワリとかあるの?」

佐藤 千夏

「ん~。 前方カンマの方が、プログラム内のクエリ文とか修正し易くないかな?」

田中 雪菜

「それって、一番前の取得フィールドを変更するか一番後ろの取得フィールドを変更するかの差だけじゃない?

    SQL > SELECT
              `table_name`.`field_1` (後方カンマ)
 (前方カンマ) `table_name`.`field_2` (後方カンマ)
 (前方カンマ) `table_name`.`field_3` (後方カンマ)
 (前方カンマ) `table_name`.`field_4` (後方カンマ)
 (前方カンマ) `table_name`.`field_5`
          FROM
            `table_name`

こんなふうに」

佐藤 千夏

「うん。 だけどね、コピペで行を貼り付けたり追記したりとSQL文を編集する場面って

SQL > SELECT
        `table_name`.`field_1`
       ,`table_name`.`field_2`
       ,`table_name`.`field_3`
       ,`table_name`.`field_4`
       ,`table_name`.`追記されたフィールド`
      FROM
        `table_name`

前よりも後ろの方がずっと多いと思うのよね」

鈴木 和音

「あー。 確かに確かに~。 それはあるかもしれませんね」

田中 雪菜

いやいや、中間じゃない?

佐藤 千夏

「今は前か後ろかの話よね?
  個人的には後ろにカンマの方が良いと思っ──」

鈴木 和音

「心の声?」

田中 雪菜

「本音!?)

佐藤 千夏

間違えた! 後ろの方が取得フィールドの追加や変更が多い!よ」

鈴木 和音

「う~ん。どうなんですかね。 あっ、でもでも、カンマを後ろに書いた方がSQL文は見やすい気がします!」

佐藤 千夏

「私は、前にカンマの方が見やすいな~って感じたのよね」

鈴木 和音

「でもでも~、JavascriptやPHPの配列なんかも普通は後方にカンマ書いてますよね。
  そこでSQL文だけが前方にカンマって、何かヤバくないですか?

PHP (PHP: 配列)
<?php
$array = array(
    1    => "a",
    "1"  => "b",
    1.5  => "c",
    true => "d",
);
?>

佐藤 千夏

「・・・・・・。 う~ん。 確かにそう言われると」

田中 雪菜

「お? 千夏、納得?」

鈴木 和音

「そういうゴチャ混ぜなルールって、千夏先輩のA型の血が絶対許さない感じじゃないですか」

佐藤 千夏

「私、このA型の性格が嫌なの!
  自分を変えていきたい!!
  O型はこういう世界で生きてるんだーっとか見てみたい!!!」

鈴木 和音

「でも先輩、血液型占い(血液型性格分類)ってホント当たらないですよね~」

田中 雪菜

今それを言うのかよ!

 

 

鈴木 和音

「結局、後方カンマ一般的な作法ってことですかね」

佐藤 千夏

「前に書いた方が開発面では便利よね? さっきも一部同意してたし」

鈴木 和音

「確かにそれはあるかもしれませんけど、読み難いですし何かこうスマートじゃないですね。
  それにコードを書き難くてバグらせちゃいそうですよ

佐藤 千夏

「和音ちゃんが後方カンマ使っていて、FROM句の前のカンマを消し忘れてシンタックスエラーになっているのを良く見るけど……」

SQL > SELECT
        `table_name`.`field_1`
        `table_name`.`field_2`,
        `table_name`.`field_3`,
      FROM
        `table_name`


ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'FROM

鈴木 和音

「えっ……」

田中 雪菜

「……」

佐藤 千夏

「……」




[宣伝]

MySQLやPHP書籍のご紹介です!

2013年08月21日発売 わたしも読んでいます!! 高評価(★★★★★) 漢(オトコ)のコンピュータ道