28日目 サーブレット SQL
連休中にやった課題を提出し、その直しの作業をこなした。
サーブレットを呼び出すたびに初期化をしたくないので、フィールドに宣言をしたが、サーブレットではフィールドを使った値の保持はしないらしい。
代わりにセッションスコープを使っていく値を繰り返し使っていく感じ。
JSP側でも、getAttributeでnullチェックをする様に、サーブレットのセッションスコープ仕様の際もnullチェックをする。
理解してしまえばなんてことないが、やっている時は必死だ。
それとSQLについても学んだので、まとめておく。
複合主キー
複数のカラムのセットを主キーとする。
PRIMARY KEY(カラム1,カラム2,....)
重複データの取得
GROUP BY カラム HAVING カラム…
グループ化してまとめた後、個数や合計値などで更に分類できる。
レコードの有無の判別
SLECT EXISTS(SELECT *FROM ~)
逆はNOT EXISTS~
インラインビュー
FROM句で副問合せをすることで、その結果をviewとして扱える。略称も付けられる。
四捨五入
ROUND(パラ1,パラ2)
パラ1:処理したい値
パラ2:どこで四捨五入するか。省略した場合は少数第一位。1で2位、-1だと整数部の1桁目。
偶数奇数判定
MOD(パラ, 2) =0 なら偶数。 ~=1なら奇数。
第2引数で割り算をし、あまりを求める関数。
結果に番号を振る
ROW_NUMBER() OVER(ORDER BY句など)AS付けたいカラム名
CHAR 型とVARCHAR2型の等価判定
TRIM(CHAR型) = VARCHAR2型
CHAR型は固定長なので、不足分には自動的に空白が入るためTRIMする必要かある。
SQLでの条件分岐
~ CASE WHEN 条件 THEN TRUEの時に出したい値
ELSE 不一致の時に出したい値 END