SELECT * FROM テーブル名1
■指定フィールド抽出
SELECT フィールド1,フィールド2 FROM テーブル名1
■条件
SELECT フィールド1 FROM テーブル名1 WHERE 条件1
数値比較
SELECT フィールド1 FROM テーブル名1 WHERE フィールド2=BBB
SELECT フィールド1 FROM テーブル名1 WHERE フィールド2<BBB
文字列比較
SELECT フィールド1 FROM テーブル名1 WHERE フィールド2='BBB'
日付比較(文字列比較と同様)
SELECT フィールド1 FROM テーブル名1 WHERE フィールド2='20090327'
間隔指定
SELECT フィールド1 FROM テーブル名1 WHERE フィールド2 BETWEEN '20090327' AND '20090427'
条件で「<」,「>」を記述する場合は以下の通り
「<」⇒「<」
「>」⇒「>」
「<=」⇒「<=」
「>=」⇒「>=」
■ソート
SELECT フィールド1 FROM テーブル名1 WHERE 条件1 ORDER BY フィールド名2 ASC(昇順 省略可能)
SELECT フィールド1 FROM テーブル名1 WHERE 条件1 ORDER BY フィールド名2 DESC(降順)
SELECT フィールド1 FROM テーブル名1 WHERE 条件1 ORDER BY フィールド名2, フィールド名3 DESC
⇒ WHERE句に複数条件字はAND OR を記述。その他の句は(,)区切り
■ワイルドカード
通常、WHERE句に文字列を記述する場合はシングルコーテーション('')で記述する。(下記)
SELECT フィールド名 FROM テーブル名 WHERE フィールド名1='文字列'
ワイルドカードは「%」にて記載することが可能
SELECT フィールド名 FROM テーブル名 WHERE フィールド名1='文字%'
⇒’文字’が先頭のフィールド
SELECT フィールド名 FROM テーブル名 WHERE フィールド名1='%文字'
⇒’文字’が巻末のフィールド
SELECT フィールド名 FROM テーブル名 WHERE フィールド名1='%文字%'
⇒’文字’を含むフィールド
但し、間隔指定ではワイルドカードは記述できない。(意味が不明だから)
SELECT フィールド1 FROM テーブル名1 WHERE フィールド2 BETWEEN LIKE 'ア%' AND LIKE 'オ%'
⇒SELECT フィールド1 FROM テーブル名1 WHERE フィールド2 BETWEEN LIKE 'ア' AND LIKE 'オ'で「ア」から「オ」迄となる。「アカ」も含む
■条件(IN,ANY,NOT等)
SELECT フィールド名 FROM テーブル名 WHERE フィールド名1 IN(1,2,3,5,7,11)
⇒1,2,3,5,7,11に当てはまる。但し、IN句よりEXISTS句の方がパフォーマンス大
SELECT フィールド名 FROM テーブル名 WHERE フィールド名1 NOT IN(1,2,3,5,7,11)
⇒1,2,3,5,7,11に当てはまらない
SELECT フィールド名 FROM テーブル名 WHERE フィールド名1 >= ANY(100,200)
⇒100以上もしくは200以上
■条件(副問い合わせ)通常はJOINを使用するが・・・
WHERE句にSELECTを記述する
select フィールド名 FROM テーブル名
WHERE フィールド名 IN (SELECT フィールド名 FROM テーブル名2 WHERE フィールド名=1) ※副問い合わせで複数の結果があるので「=」ではなく「IN」を使用
■パラメータ「:はORACL @はSQLサーバ,?は順次パラメータ(ACCESS)」
WHERE句の検索条件をパラメータ入力する場合は「:パラメータ名」で記述する
select フィールド名 FROM テーブル名 WHERE フィールド名 =:パラメータ名
■JOIN(テーブルとテーブルの結合)
エイリアス:テーブル別名を記述することによりテーブル名を短縮する
SELECT フィールド名 * FROM テーブル名1 エイリアス名1
INNER JOIN テーブル名2 エイリアス名2
ON 条件(エイリアス名1:テーブル名1.フィールド名1 = エイリアス名2:テーブル名2.フィールド名2
(例)
SELECT
MTN.BMNCD
,BMN.BMNNM
FROM MTANTO MTN
INNER JOIN MBUMON BMN ON
MTN.BMNCD = BMN.BMNCD
・INNER JOIN ⇒ 主テーブル,子テーブル両方に含まれる全データ
SELECT テーブル名1.フィールド名1, テーブル名2.フィールド名1
INNER JOIN テーブル名1(主テーブル) ON 条件(テーブル名1.フィールド名1 = テーブル名2.フィールド名2
・LEFT OUTER JOIN ⇒ 主テーブルの全データと紐付く子テーブルのデータ
LEFT (OUTER 省略可能) JOIN テーブル名 ON
・RIGHT OUTTER JOIN あまり使用しない
RIGHT (OUTER 省略可能) JOIN テーブル名 ON
■コメント
「--」でその行をコメント
範囲指定は「/*」~「*/」
0 件のコメント:
コメントを投稿