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 ワイルドカード文字;
ワイルドカード文字について
ワイルドカード文字で文字列のパターンを指定します。
- '%' (パーセント) ・・・0文字以上の任意の文字列
- '_' (アンダースコア) ・・・任意の1文字
例)
- '中%' →'中'で始まる文字列
- '%中%' → '中'を含む文字列
- '%子' → '子'で終わる文字列
- '__子' →何かしらの文字から始まり、'子'で終わる文字列
取得件数を制限できるlimit句
- 構文
select 列1, ・・・ from テーブル名 limit [オフセット,] 最大取得件数;
※オフセットは省略可能