スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

「目指せ!オラクルマスターBronzeへの道」 2章:データの制限およびソート

「目指せ!オラクルマスターBronzeへの道」
2章:データの制限およびソート

これは、オラクルマスターBronze 11g SQL基礎Ⅰの自主学習です。

2章:データの制限およびソート
①WHERE句で条件を絞り込む(WHERE)
②<=,>=などを使って比較する(<=,>=,<,>,<>)
③上限と下限を指定してデータの範囲を絞り込む(BETWEEN A AND B)
④指定した複数の値に当てはまる値を取り出す(IN,LIKE)
⑤_(アンダースコア)や%(パーセント記号)そのものを検索する(ESCAPE)
⑥NULL値が含まれている場合の検索(IS NULL)
⑦複数の条件を指定する(AND,OR)
⑧行を並べ替える(ORDER BY)


①WHERE句で条件を絞り込む(WHERE)

SELECT [列名|式]
FROM 表名
[WHERE 条件式]

※[]はオプションを表す。
[A|B]は、AまたはBのいずれかを選択することを表す。

②<=,>=などを使って比較する(<=,>=,<,>,<>)

<= 以下
>= 以上
< より大きい
> より小さい
<> 等しくない

例)
SELECT 列名1, 列名2 FROM 表名
WHERE 列名1 <> 'ネックレス';

列名1が「ネックレス」ではない行を取り出すことができる。

③上限と下限を指定してデータの範囲を絞り込む(BETWEEN A AND B)

◎WHERE句で値の範囲を指定する

SELECT 列名1, 列名2 FROM 表名
WHERE 列名2 BETWEEN 500 AND 1500;

列名2の値が500以上1500以下のものを検索することができる。

◎>=と<=の組み合わせ

SELECT 列名1, 列名2 FROM 表名
WHERE 列名2 >= 500 AND 列名2 <= 1500;

先ほどと同様に、列名2の値が500以上1500以下のものを検索することができる。

◎NOT BETWEEN...AND...

SELECT 列名1, 列名2 FROM 表名
WHERE 列名2 NOT BETWEEN 500 AND 1500;

列名2の値が500以下1500以上のものを検索することができる。

◎BETWEEN句で文字列を指定する

SELECT 列名1, 列名2 FROM 表名
WHERE 列名1 BETWEEN 'イヤリング' AND 'ネックレス';

五十音順に「イヤリング」から「ネックレス」の間のものを検索することができる。

④指定した複数の値に当てはまる値を取り出す(IN,LIKE)

◎IN句で条件のリストを指定する

SELECT 列名1, 列名2 FROM 表名
WHERE 列名2 IN(1000,2000,5000);

列名2が「1000」「2000」「5000」のものを取り出すことができる。

◎NOT IN句で除外したい条件のリストを指定する

SELECT 列名1, 列名2 FROM 表名
WHERE 列名2 NOT IN(1000,2000,5000);

◎IN条件の代わりにOR条件を使用する

SELECT 列名1, 列名2 FROM 表名
WHERE 列名2 = 1000
OR 列名2 = 2000
OR 列名2 = 5000;

IN句と同様に、列名2が「1000」「2000」「5000」のものを取り出すことができる。

◎あいまいな文字列を取り出す(LIKE条件句)

SELECT 列名1, 列名2 FROM 表名
WHERE 列名1 LIKE '%リング';

この場合、列名1が「~リング」となる文字列を検索できる。
例)
「イヤリング」、「イカリング」などが検索できる。
「リングイカ」などは検索できない。

%(パーセント記号)は0文字以上の任意の文字列を表す。

LIKE 'リング%' リングで始まる文字列 例)リングイカ
LIKE '%リング' リングで終わる文字列 例)イカリング
LIKE '%リング%' リングを含む文字列  例)マーリングラッシュ

_(アンダースコア)は任意の1文字を表す

SELECT 列名1, 列名2 FROM 表名
WHERE 列名1 LIKE '__リング';

_を2つ書いているので、「イヤリング」や「イカリング」が検索できる。
「ブリング」などは検索できない。

◎NOT LIKE条件

SELECT 列名1, 列名2 FROM 表名
WHERE 列名1 NOT LIKE '%リング%';

「リング」を含まない列名1を取り出すことができる。

⑤_(アンダースコア)や%(パーセント記号)そのものを検索する(ESCAPE)

検索する文字として、_(アンダースコア)や%(パーセント記号)
そのものを指定したい場合にはESCAPEオプションを使用する。

列名 LIKE '文字列' ESCAPE 'エスケープ文字'

実際に使うとこんな感じになる。

SELECT 列名1 FROM 表名
WHERE 列名1 LIKE '%\_リング' ESCAPE'\';

エスケープ文字が「\」になっているので、「\」の次の文字である「_」は文字として扱われる。
つまり、「_リング」という文字列を検索していることになる。

◎「__リング」という文字列を検索したい場合

SELECT 列名1 FROM 表名
WHERE 列名1 LIKE '%\_\_リング' ESCAPE'\';

⑥NULL値が含まれている場合の検索(IS NULL)

◎NULL値を検索するには

SELECT 列名1 列名2 列名3 FROM 表名
WHERE 列名3 IS NULL;

◎NULLでない値を検索するには

SELECT 列名1 列名2 列名3 FROM 表名
WHERE 列名3 IS NOT NULL;

⑦複数の条件を指定する(AND,OR)

◎2つの条件のどちらも満たす「AND」

SELECT 列名1, 列名2 FROM 表名
WHERE 列名1 NOT LIKE '%リング'
AND 列名2 = 1000;

列名1が「~リング」でかつ、列名2が1000の値のものを検索できる

◎2つの条件のどちらかを満たす「OR」

SELECT 列名1, 列名2 FROM 表名
WHERE 列名1 NOT LIKE '%リング'
OR 列名2 = 1000;

列名1が「~リング」あるいは、列名2が1000の値のものを検索できる

◎AND,ORの優先順位

1 AND
2 OR

※ORを優先したい場合は()かっこでくくると良い。

⑧行を並べ替える(ORDER BY)

◎検索した行を並べ替える(ORDER BY句)

SELECT 式
FROM 表名
[WHERE 条件式]
[ORDER BY 並べ替え列[ASC|DESC]]

昇順(デフォルト):ORDER BY 並べ替え列 ASC
降順       :ORDER BY 並べ替え列 DESC

例)
SELECT 列名1, 列名2 FROM 表名
WHERE 列名1 NOT LIKE '%リング'
ORDER BY 列名2 ASC;

列名1が「~リング」のものを検索後、列名2の値を昇順にする。
スポンサーサイト

「目指せ!オラクルマスターBronzeへの道」 1章:データベースからのデータ取得

「目指せ!オラクルマスターBronzeへの道」
1章:データベースからのデータ取得

これは、オラクルマスターBronze 11g SQL基礎Ⅰの自主学習です。


1章:データベースからのデータ取得
①データベースからデータを取り出す(SELECT)
②データの種類を表示する(DISTINCT)
③データを計算する(+,-,*,/)
④列別名をつける(As)
⑤文字や列を連結する(||)
⑥表の構造を確認する(DESCRIBE)


①データベースからデータを取り出す(SELECT)

SELECT * FROM 表名;

◎表から特定の列を取り出す場合

SELECT 列名, 列名, ... FROM 表名

②データの種類を表示する(DISTINCT)

◎列値の重複を取り除いて表示する

SELECT DISTINCT 列名 FROM 表名

◎重複を取り除いて表示したい列が複数ある場合

SELECT DISTINCT 列名1, 列名2 FROM 表名

③データを計算する(+,-,*,/)

SELECT 列名, 列名, (列名-50)*20 FROM 表名

SQLの算術演算も、同様に「+」、「-」よりも「*」、「/」の方が優先される。
また、かっこで計算の優先順位を変えることができる。

④列別名をつける(As)

列名 As 列別名

◎その他の列別名を付ける方法

・スペースを使用する方法

列名 列別名

・列別名を""(二重引用符)で囲む方法

列名 "列別名"
列名 As "列別名"

""(二重引用符)を使用すると
列別名にスペースや*(アスタリスク)を含めることができる
アルファベットの場合、大文字や小文字も区別される

⑤文字や列を連結する(||)

SELECT 列名1||列名2 FROM 表名

こんなこともできる

SELECT 列名1||'の金額は'||列名2||'です' FROM 表名

⑥表の構造を確認する(DESCRIBE)

DESCRIBE 表名

プロフィール

カートン

Author:カートン
1989年生まれ。
現在東京で超修行中のSE。
趣味はギター、旅、読書など。
夢は自由気ままに生きること。

カウンタ
最新記事
カテゴリ
本 (2)
SQL (2)
最新コメント
最新トラックバック
月別アーカイブ
リンク
検索フォーム
RSSリンクの表示
ブロとも申請フォーム

この人とブロともになる

QRコード
QR
スポンサードリンク
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。