「SQLによる検索」を実践する:「データベーススペシャリスト試験」戦略的学習のススメ(12)(3/4 ページ)
あの“津崎さん”も保有する難関資格「データベーススペシャリスト」。本企画では、データベーススペシャリスト試験 午前/午後試験対策のための「基礎知識」を抜粋してお届けします。今回は、「SQLによる検索の基礎」を解説します。
WHERE句の使用例
(1)範囲をあらわすBETWEEN
WHERE句にBETWEENを用いることで勤続年数が2年から5年の間である行を選択することができます。逆の条件にする場合NOT BETWEENを用います。
SELECT 社員名FROM 社員 WHERE 勤続年数 BETWEEN '2' AND '5'
これは、以下と同じ演算結果が得られます。
SELECT 社員名FROM 社員 WHERE 勤続年数 >= '2' AND勤続年数 <= '5'
(2)複数の値を指定するIN
INを利用すると、「IN」の後に「複数指定した値のどれかに合致する場合」、という条件を指定することができます。逆の条件にする場合NOT INを用います。
SELECT * FROM 社員 WHERE 社員名 IN( '安達' , '伊藤')
※IN()の括弧内をSQL文にし、副問合せの形にすることも可能です
(3)文字列の部分一致を指定するLIKE
WHERE句にLIKEを用いることで、部分一致検索を行うことができます。逆の条件にする場合NOT LIKEを用います。
WHERE 社員名 LIKE '安%' 先頭に「安」がつく任意の社員名 WHERE 社員名 LIKE '%安' 文字列の最後に「安」がつく任意の社員名 WHERE 社員名 LIKE '%安%' 文字列に「安」を含む任意の社員名 WHERE 社員名 LIKE '_安' 1文字目が任意の文字で、2文字目が「安」となる社員名
※ _は任意の文字、%は任意の文字列という意味です
(4)NULLであることを指定するIS NULL
NULLであることを指定するためには「= NULL」とは記述しません。以下の通り「IS NULL」と記述します。逆の条件にする場合「IS NOT NULL」と記述します。
WHERE 休業日数 IS NULL
(5)「あるSQL文の結果に合致する場合」を示すEXISTS
以上のように記述すると、「あるSQL文の実行結果と同じ行が存在する場合」、という意味になります。逆の条件にする場合NOT EXISTS (SQL文)を用います。
WHERE EXISTS(SQL文)
※ 上記のように括弧の中にSQL文を埋め込み、WHERE 句の条件式やFROM 句につなげることを副問合せと呼びます。
GROUP BY句の使用例
GROUP BY句は、ある列について値が等しい行を全て集計します。GROUP BY句では、以下の集約関数を利用することができます。また、GROUP BYの後にHAVING句を使い、グループ化する条件を指定することができます。
集約関数 | 集約関数の説明 | |
---|---|---|
AVG(列名) | ある列について、グループ化した範囲での平均値を求める | |
MAX(列名) | ある列について、グループ化した範囲での最大値を求める | |
MIN(列名) | ある列について、グループ化した範囲での最小値を求める | |
SUM(列名) | ある列について、グループ化した範囲での合計値を求める | |
COUNT(列名) | ある列について、グループ化した範囲での行数を求める |
以下の例では、所属部署ごとの社員の平均勤続年数を出力します。
SELECT 所属部署, AVG(勤続年数) AS 平均勤続年数 GROUP BY 所属部署
所属部署 | 平均勤続年数 | |
---|---|---|
営業部 | 9 | |
総務部 | 4 |
以下の例では、所属部署毎の平均勤続年数を集計し、平均勤続年数が5年より多い部署について出力します。
SELECT 所属部署, AVG(勤続年数) AS 平均勤続年数 GROUP BY 所属部署 HAVING 平均勤続年数 > 5
所属部署 | 平均勤続年数 | |
---|---|---|
営業部 | 9 |
Copyright © ITmedia, Inc. All Rights Reserved.
関連記事
- 春期試験の押さえどころを総ざらい!
本連載では、テクニカルエンジニア(データベース)試験に対応できる知識を確認していきます。多岐にわたる知識が問われる試験ですので、受験する方はもちろん、日常業務ではあまり使うことのない技術知識の確認にも役立ててください。 - データベーススペシャリスト試験(Database Specialist Examination)
ITエンジニアに必要な各種資格情報を解説する「@IT自分戦略研究所 資格辞典」。今回は、IPAが実施する情報処理技術者試験の「高度試験」9区分のうちの一つ「データベーススペシャリスト試験」を紹介する。 - 真のデータベースエンジニアを目指そう!
本連載は、ITシステム開発の現場でプログラミングやSQLのコーディングを行っているエンジニア(データベース利用者)が、データ管理者(DA)やデータベース管理者(DBA)へステップアップするための第一歩として有効な基礎知識を紹介する(編集局) - 【Oracle Database】忘れていませんか? 「アラートログ調査」に必要な、たった3つのキホン
データベース管理システムの運用でトラブルが発生したらどうするか。データベースサポートスペシャリストが現場目線の解決Tipsをお届けします。今回は基本編として「アラートログの調査で押さえるべき3つのポイント」を解説します。【Oracle Database 12c対応版】