SQL の基礎 その2 [exam]
SQL の基礎 その1 の続き。
日付・時刻データ型
-
DATE
- TIMESTAMP
小数秒を格納可能 - TIMESTAMP WITH TIME ZONE
UTC との時差 - TIMESTAMP WITH LOCAL TIME ZONE
データベースのタイムゾーンに変換して日時を格納。格納されたデータを表示するときはユーザセッションのタイムゾーンに従って変換されて表示 - INTERVAL YEAR TO MONTH
年月の期間。INTERVAL '123-5' YEAR(3) TO MONTH のように記述する。この場合、123年と5ヶ月間。YEAR(n) は年の桁数。既定は 2。 - INTERVAL DAY TO SECOND
日時分秒の期間。INTERVAL '3 1:2:3' DAY TO SECOND のように記述する。この場合、3日と1時間2分3秒間。DAY と SECOND の部分は DAY,HOUR,MINUTE,SECOND のいずれかを指定。TO の左側に指定したい期間の中で一番大きいものを、TO の右側に小さいものを記述。INTERVAL '3 1:2' DAY TO MINUTE なら 3日と1時間2分間となる。
制約
- NOT NULL は列制約構文でしか定義できない。
関数
- 日付関数はあるが時刻関数とは呼ばない。
- TRUNC は TRUNC(列名,[n]) として使う。n: 小数第何位まで表示するか。省略した場合は整数まで表示。
25.374 -> 2:-1、5:0、3:1、7:2、4:3 。 TRUNC(25.374,-1) = 30
計算
- 日付に時間を加算するときは 日付+数値/24
集合演算子
- UNION
- NULL は重複チェック時に無視される。
- 既定ではSELECTの第一列で昇順にソートされる。
- UNION ALL
- 重複行は削除されない。
- ソートされない。
- DISTINCT は利用できない。