投稿

4月, 2026の投稿を表示しています

4月28日(火)3コマ目

イメージ
今日、やったこと [練習問題]いろいろな結合 [練習問題 解説]いろいろな結合 今日のホワイトボード [練習問題 解説]いろいろな結合 正解例をあげておきます。 問1 図 問1 正解例 xx月中の条件は下図のように何種類か書き方があるが、月末が年、月で変わるため、翌月1日未満が便利(だと思う)。 図 条件「xx月中」 問2 問1からテーブル数が増えた。 図 問2 正解例 問3 1件の売上に対して、 伝票番号 処理日 顧客 担当者 は1対1の関係になる。 よって、伝票番号列だけでグループ化しても、伝票番号列、処理日列、顧客名列、担当者名列の組み合わせでグループ化しても、できるグループは同じ。 図 問3 正解例 問4 売上利益はグループ毎の値。よって、「売上利益が50000以上」はグループに対する条件。 select句でsum(数量*(卸単価 - 仕入単価))に別名”売上利益”を設定している。 売上利益は グループに対する条件(having句) 並び替え(order by句) で使われている。 select句で指定した別名はorder by句では利用可だが、having句では利用できない。 order by句で別名”売上利益”を使うと 図 問4 正解例(select句の別名はorder by句でも使える) having句で別名”売上利益”を使うと 図 問4 having句ではselect句の別名は使えない 問5 自己結合。 図 問6 正解例 以下は テーブルの別名に対して、テーブルの使われ方が一致しない 。 テストでは×にします 。 図 問6 テーブルの別名と使われ方が一致しない => ダメ 上司がいない人(MGR_ID列がnull => 上司テーブルに結合できる行がない)も出力するなら、外部結合。 部下テーブルを全行出力させる。 図 問5 上司がいない人も出力したい => 外部結合 問6 売上のない商品 = 売上データテーブルに登場しない。 結合相手がないデータも出力するには、外部結合。 〇left join 図 問6 正解例 left join版 〇right join 図 問6 正解例 rightjoin版 問7 あまり何も考えずにやってみると以下のようなかんじ。 図 なにも考えずにやってみると 商品数は10だが、検索結果は10行ではない。 ダメ...

4月24日(金)3コマ目

イメージ
今日、やったこと 外部結合 [練習問題]いろいろな結合 今日のホワイトボード いままでの結合では いままでの結合では、結合相手がない行は出力されない。  結合相手がいない = 結合条件を満たさない行  上司のいない太郎さんは出力されない。 図 結合相手がいない行は出力されない 図 結合相手がいない行は出力されない 結合相手がない行も出力したい -> 外部結合 今回の上司のいない太郎さんや、商品マスタテーブルと売上データテーブルを結合して、売り上げ一覧を出力する場合、売り上げがない商品(売上データテーブルに登場しない)も出力したい場合など、結合相手がない行も出力したいときには外部結合を使う。 外部結合は   left join    左側テーブルは結合相手がいない行も出力   right join  右側テーブルは結合相手がいない行も出力 の2種類ある。 図 外部結合(left join、right join) 〇left joinで外部結合 全行出力したい部下テーブルは left join の 左側 に指定。 図 left joinで結合 -> 左側テーブルは全行出力 〇right joinで外部結合 全行出力したい部下テーブルは right join の 右側 に指定。 図 right joinで結合 -> 右側テーブルは全行出力 [練習問題]いろいろな結合 最後の問7はちょっと難しいかも。 select文はDBでどんな順番で処理されるか、その結果どのようになるかを考えてください。 図 select文の処理順序 次回は 練習問題のつづき。 そのあと、練習問題の解説をします。 次々回にテストをします。

4月17日(金)3コマ目

イメージ
今日、やったこと いろいろな結合 等価結合(inner join) 非等価結合 自己結合 今日のホワイトボード DB接続、不要なテーブルを削除 1年次に作ったテーブルを削除。 図 SQLPlusでオラクルDBに接続、不要なテーブルを削除 等価結合 今までfrom句に複数テーブルを指定したときにwhere句に書いた結合条件は指定列の値が等しい行同士を結合する等価結合。 これからはinner joinを使って、from句に結合条件を書く。 図 等価結合(inner joinを使う) 2つのテーブルの場合は以下のとおり。 図 inner joinで等価結合 3つのテーブルの場合は以下のように、結合した結果にさらに結合のイメージ。 図 3つのテーブルをinner joinで結合 結合後、where句に検索条件で検索。 図 from句のinner joinで結合して、where句の検索条件で検索 非等価結合 結合条件は値の等しい行同士を結合だけではない。 条件として成立するなら、等価演算子以外の条件でも可。 図 非等価結合 自己結合 1つのテーブルに異なる別々の別名をつけて、あたかも2つのテーブルがあるようにして、結合することもできる。 図 自己結合 以下は従業員テーブルに上司、部下と別々の別名をつけて、2つのテーブルを結合する。 図 自己結合 部下テーブルは部下情報、上司テーブルは上司情報として扱っている。 自己結合のダメな例 以下は別名と使われ方が一致しない。 図 別名と使われ方が一致しない 下図の左側はダメな例。右側は好ましい。 図 自己結合ダメな例(左側)、好ましい例(右側) 次回は 外部結合 練習問題