1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

【SQL学習】テーブルからデータを取り出す

Last updated at Posted at 2020-11-02

はじめに

SQLの学習をする上で、重要な部分を備忘録として書き留めています。

SELECT文について

データベースのデータを検索して、データを取り出す操作を問い合わせという。
この問い合わせは、SQLではSELECT文を使って表現する。構文は以下です。

SELECT 取得したいカラム名 FROM 対象のテーブル名;

SQLは句という単位で分割する。SELECT文ではSELECT句とFROM句に分ける事ができる。

全てのカラムを取り出す場合

SELECT * FROM 対象のテーブル名;

指定したカラムを複数取り出す場合

SELECT 取得したいカラム名その1,取得したいカラム名その2,取得したいカラム名その3 FROM テーブル名;

の様にカンマ(,)で区切って指定する。

カラムに別名をつける

カラム名をわかりやすく表示する為に、カラムに別名をつけて表示する事ができる。

SELECT 指定したいカラム AS 別名 FROM 対象のテーブル名;

上記はカラムどうしで計算した結果を出力する際などに重宝する。

重複した行を除いて抽出する

SELECT DISTINCT 指定したいカラム名 FROM 対象のテーブル名;

WHERE句について

SELECT文にWHERE句を使えば、検索条件に特定のレコードを指定して、絞り込む事ができる。

SELECT 取得したいカラム名 FROM 対象のテーブル名 WHERE 取得したいレコードの条件;

演算子を使う

演算子の種類と一例

演算子の種類 説明 一例
算術演算子 四則演算を行う記号 +,-,*,/
比較演算子 値の比較を行う記号や文字列 =,<,>
論理演算子 値を比較して真か偽かの判別を行う文字列 NOT,AND,OR

算術演算子

SQLでは算術演算子を使って、テーブルから取り出した値を計算して表示させる事ができる。
SELECT句、WHERE句、ORDERBY句などと使う事ができる。

比較演算子

値が等しいかどうか、また大きさの比較を行う記号や文字列。WHERE句の検索条件に使う事ができる。

比較条件 意味
= 等しい
!=, <> 等しくない
>= 以上
<= 以下
> より大きい
< より小さい
BETWEEN a AND b a以上b以下
NOT BETWEEN a AND b a以上b以下の範囲外
IN (リスト) リスト内のいずれかと等しい
NOT IN (リスト) リスト内のいずれとも等しくない
IS NULL NULL値である
IS NOT NULL NULL値でない
LIKE 文字パターンと一致する
NOT LIKE 文字パターンと一致しない

※「=」は等しいを意味するが対象がNULLの場合は例外
NULLの場合は「IS NULL」「IS NOT NULL」を使う

ワイルドカード

「LIKE」を使用すると、文字パターンと部分的に一致しているかを判定できる。
その際に、確定していない検索文字パターン(いわゆる曖昧な検索文字列)を判定する際にワイルドカードという特殊な記号を使って検索できる。

記号 説明
% 0文字以上の文字列
_ 任意の一文字

部分一致

SELECT 取得したいカラム名 FROM 対象のテーブル名 WHERE 検索対象のレコード LIKE '%文字列%';

前方一致

SELECT 取得したいカラム名 FROM 対象のテーブル名 WHERE 検索対象のレコード LIKE '文字列%';

後方一致

SELECT 取得したいカラム名 FROM 対象のテーブル名 WHERE 検索対象のレコード LIKE '%文字列';

※ワイルドカード記号自体を検索したい場合は\でエスケープ処理を行う

論理演算子

値同士を比較して、真か偽かの判別を行う文字列のこと
WHERE句の条件に様々な条件を組み合わせる事が可能

論理条件 意味
NOT 否定
AND 論理積 a AND b(aかつb)
OR 論理和 a OR b(aまたはb)

演算子の優先順位

検索条件を指定する際に複数の条件を設定する事ができる。この時に演算子には優先順位があることに注意する必要がある。

優先順位 条件の種類
=,>,>=,<,<=
IS [NOT] NULL
[NOT] LIKE
[NOT] IN
[NOT] BETWEEN
<>
NOT
AND
OR

ORDER BY句について

DBMSのデフォルトの取り出し方は特に決まっていない。故にデータの取り出し方を決めたい場合はORDER BY句で指定する事ができる。

SELECT 取得したいカラム名 FROM 対象のテーブル (WHERE 取得したいレコードの条件 ) ORDER BY 並べ替えの基準にしたいカラム名 キーワード;

ORDER BY句で指定できるキーワードは2種類

キーワード 説明
ASC 昇順に並び替え
DESC 降順に並び替え
1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?