SQL文の基礎

データベースからデータを取得するselect文

* 構文
   select 列1,列2 ... from テーブル名
* 全ての列を取得したい場合は、
   select * from テーブル名;

初心者が間違いやすいこと

  • DBを選択していない
  • スペルミス
  • 全角文字で記載

コメントの種類

  • ① 「--」
  • ② 「/ /」

  • 「*」を使って全ての行を取得するより、必要な列を絞って取得する方が高速に実行できる

  • 実務では、基本的に必要なカラムに絞ってデータを取得する。
  • 試験的にSQLを書く時や、学習の時など、パフォーマンスの心配がないときは、「*」を使うこともある。

列に別名を付ける

select 列1 as 別名にする文字を記載 from テーブル名

※asは省略可能

列の値に対して演算を行う

  • テーブルから抽出した結果をそのまま使うだけではなく、計算した結果を出力することができる。
select
  name as 名前,
  price as 価格,
  price * 1.1 as 税込価格
from
  products;

条件を指定して値を取得できるwhere句を使用

  • 構文
select 列1, 列2 ... from  テーブル名 where 条件;

where句で条件を設定する際に利用できる代表的な演算子の種類

  • 「=」等しい
  • 「>」より大きい
  • 「>=」以上
  • 「<」より小さい
  • 「<=」以下
  • 「<>」, 「!=」等しくない
  • 「in」ある値が値セット内に含まれているかどうか
  • 「not in」値が値セット内に含まれていないかどうか
  • 「is null」値がnull
  • 「is not null」値がnullでない
  • 「like」パターンマッチング(あいまい検索)
  • 「between ... and ...」値が値の範囲内に含まれているか

パターンマッチングによる絞込ができるlike句

  • 構文
select 列1, ...,from テーブル名 where 列名 like ワイルドカード文字;

ワイルドカード文字について

  • ワイルドカード文字で文字列のパターンを指定します。

    1. '%' (パーセント) ・・・0文字以上の任意の文字列
    2. '_' (アンダースコア) ・・・任意の1文字
  • 例)

    1. '中%' →'中'で始まる文字列
    2. '%中%' → '中'を含む文字列
    3. '%子' → '子'で終わる文字列
    4. '__子' →何かしらの文字から始まり、'子'で終わる文字列

取得件数を制限できるlimit句

  • 構文
select 列1, ・・・ from テーブル名 limit [オフセット,] 最大取得件数;

※オフセットは省略可能