12月23日(金)1、2コマ目
前回の確認テスト
正解例をあげておきます。
ほとんどのかたがSQLでつまづいてました。
あと、demo2022ユーザーで接続している人がかなりいました。自分のスキーマを利用してください。
今後、demoユーザーで接続している場合は、無条件にxにします。
今日、やったこと
- C#+ODP.NET確認テスト1の解説
- ExecuteScalar()の練習問題
- ODP.NETで更新系SQLの実行
- [確認テスト]C#+ODP.NET確認テスト2
今日のホワイトボード
C#+ODP.NET確認テスト1の解説
テーブルの結合条件
往々にしてテーブル間の参照関係が結合条件になる。
![]() |
| 図 テーブル間の参照関係 |
GROUP BYをつかうと
SELECT句には
- GROUP BY指定列
- グループ関数
のみ。
![]() |
| 図 select句にはgroup by句に指定した列のみ |
商品ごとの売上金額出力(ついでに金額も出力したい)
SELECT句で 商品名 と 価格 を出力するには
GROUP BY 商品名, 価格 とする必要がある。
ただ、GROUP BY 商品名, 価格 とすると、商品ごとにはならない気がする…
GROUP BY 商品名, 価格 とすると
①まず、商品名でグループ化
②①のグループを価格でさらにグループ化 <= グループを細分化するイメージ
のようにグループ化される。
まちがっても、
①まず、商品名でグループ化
②価格でグループ化 <= ①のグループをリセットしてグループ化するイメージ
ではない!!
このデータでは商品名と価格は1対1の関係になっているため、商品名でグループ化後、価格でグループ化してもグループは別れない。よって、商品名でグループ化と同じ。
![]() |
| 図 group by句とselect句 |
ExecuteScalarの練習問題
正解例をあげておきます。
練習1
CS_商品マスタから最高値を検索
練習2
コマンドライン引数で指定したグループに属する商品の商品点数を検索。
ODP.NETで更新系SQLを実行する
ポイントはSQL実行メソッドが ExecuteNonQuery() を使うだけ。
あとは今までどおり。
ExecuteNonQuery()の戻り値はSQL実行で影響を受けた行数。
サンプル
練習問題1
コマンドライン引数で指定した商品情報をCS_商品マスタに登録。
練習問題2
コマンドライン引数で指定したIDの商品をCS_商品マスタから削除。
次回は
WEBアプリケーションをはじめます。


