Webサイト制作コースのお申し込みはこちら Webサイト制作コースのお申し込みはこちら

SQLの代表的な構文を、やりたいことから逆引き方式でまとめています。

SQL 逆引き一覧

やりたいことに対応するSQL構文と、サンプルコードを記載した記事を紹介します。

レコード検索

レコードを検索する – select

条件を指定して、対象レコードを検索・抽出するにはselect文を使います。

【関連記事】
【初心者向け】SQLのデータ抽出処理!SELECT文の使い方を理解しよう!

重複レコードを考慮して検索 – select、distinct

重複レコードを除外したり、重複レコードのみを取得するにはselectとdistinctを使います。

【関連記事】
SQLで重複データを扱うサンプルコード集 カウント、集計、最新のみ抽出、重複禁止 

NULLを考慮して検索 – IS NULL/IS NOT NULL

NULLの判定にはIS NULLを使います。

【関連記事】
SQL isnullの使い方 NULL判定やNULL置換の方法 case式でも対応可能

取得した値がNULLだった場合の置き替えには、coalesceを使います。

【関連記事】
SQL coalesce 値がNULLの場合の代替値を返す 簡易版のNVLやNULLIFが使えるDBもあり 

指定範囲のレコードを検索 – between

範囲指定を行うにはbetweenを使います。select以外のupdateやdeleteの条件としても使用可能です。

【関連記事】
SQL betweenで範囲指定するサンプルコード 速度アップにもつながる?

複数の値のどれかに一致・除外したレコードを検索 – IN

複数の値のどれかに一致する条件は、inを使います。

【関連記事】
SQL in句のサンプルコード集 複数カラムの指定方法とは? 

複数の値を除外するには、not inを使います。

【関連記事】
SQL not in データの除外指定 NULLや複数カラムを扱う方法

検索結果のカラム名に変更する – AS

検索結果のカラム名が、長くなる場合など、名前変更するにはasを使います。

【関連記事】
SQLで別名をつけるならAS句を使いこなそう!つけ方をわかりやすく解説

複数テーブルを結合して検索

テーブルの内部結合・等価結合 – inner join

複数テーブルを内部結合するにはinner joinを使います。

【関連記事】
【初心者向け】SQLのINNER JOIN 内部結合の基本的な使い方を理解しよう!

テーブルの外部結合 – left outer join/right outer join/full outer join

複数テーブルの外部結合には、left outer join/right outer join/full outer joinを使います。「outer」は省略可能です。

【関連記事】
SQL 外部結合サンプルコード 3テーブル結合とパフォーマンス比較 

テーブルの自己結合(セルフジョイン) – join/AS

テーブルを自分自身と結合するには、サブクエリの結果をasで別テーブルとして扱い、joinします。

【関連記事】
SQLのas句で、同一テーブルに別名をつけセルフジョインするサンプルコード 

別クエリの結果を使って検索(副問い合わせ)

副問い合わせ(サブクエリ)

副問い合わせの基本的な使い方です。

【関連記事】
SQLの副問い合わせ(サブクエリ)とは?概要・種類・使い方を解説

サブクエリのサンプルコードです。

【関連記事】
SQL where句のサンプルコード集 ワイルドカードやサブクエリを使った複雑な条件指定 

別クエリの結果に含まれる条件を指定 – IN/EXISTS

複数の値のどれかにマッチする条件は、inを使います。

【関連記事】
SQL in句のサンプルコード集 複数カラムの指定方法とは?

existsを使った方が高速なケースもあります。

【関連記事】
SQLのexistsとinの違いは、返り値とカラム指定するかどうか

複数の値のどれにもマッチしない条件には、not inやnot existsを使います。

【関連記事】
SQL not exists サンプルコード 2テーブルの片方にしかないデータを抽出

サブクエリを使ったビューを作成 – view

ビューの作成にも、サブクエリを使用できます。

【関連記事】
SQLのview作成 joinやサブクエリを使ったselectも使用可能

集合

和集合(複数の検索結果を統合) – union

複数の検索結果を統合するには、union。3つ以上の検索結果統合にはunion allを使います。

【関連記事】
【意外と知らない?】SQL unionの使い方をわかりやすく説明 

unionのサンプルコードです。

【関連記事】
MySQL UNIONで、select文ごとにorder byでソート指定するサンプルSQL

差集合(複数の検索結果の差を取得) – except

検索結果の差集合を得るにはexcept。ただし、標準SQLではないため一部のDBMSでは工夫が必要です。

【関連記事】
SQLのexceptは差分集合を作る 標準SQLなのにサポートされないDBもあり 

挿入

レコードの挿入 – insert

レコードを挿入するにはinsertを使います。

【関連記事】
【こんな使い方も?】SQL insertの使用方法を徹底的に解説

selectした結果をレコードとして挿入 – insert/select

selectした結果をinsertすることも可能です。

【関連記事】
【SQL】SELECTした結果を別テーブルへINSERTする方法 

更新

レコードの更新 – update

レコードを更新するにはupdateを使います。

【関連記事】
【実例で学ぶ】SQL「UPDATE」文の使い方 基礎・応用編 

レコードの挿入時に、存在すれば更新

挿入時に、データが存在すればupdateを行う仕様拡張がされているデータベースもあります。

【関連記事】
【SQL】UPDATEとINSERTを同時に行う便利なクエリ「merge」についての解説 

削除

レコードの削除 – delete

レコードを削除するにはdeleteを使います。

【関連記事】
SQL DELETEで、データベース・テーブルの行を削除する方法

レコードを高速に削除 – truncate

truncateは高速にレコード削除が可能ですが、条件指定ができない点とロールバック不可な点に注意。

【関連記事】
SQL truncate 高速データ削除 deleteやdropとの違いとDBMS間の差異

文字列操作

文字列の連結 – concat

複数の文字列を連結するにはconcatを使います。DBMSによっては、より簡易な記述で文字列の連結が可能な場合もあります。

【関連記事】
SQL concat 複数文字列を連結する NULLが入っていた場合は無視

文字列の切り出し – substr/left/right/mid

文字列の切り出しには、substr、left、right、midなどを使います。DBMSによって、関数名が異なるケースもあります。

【関連記事】
SQLで文字列を切り出すには?MySQLのsubstr関数の使い方 

文字数を取得 – length

文字列の文字数を取得するにはlengthを使います。

【関連記事】
【SQL】文字数を調べる!SQLでのLENGTH関数の使い方を徹底解説!

文字列の置き替え – replace

指定の文字列を別の文字列に置き換えるにはreplaceを使います。

【関連記事】
SQLのREPLACE関数を用いた置換機能 使用方法を徹底的に解説

数値計算

四則演算・剰余(あまり)を算出

四則演算は、+、-、*、/の記号で計算可能。剰余はmodで算出できます。

【関連記事】
SQLのSELECT句で計算してみよう!算術演算子を使った加工処理とは!

平均を求める – GROUP BY、AVG

GROUP BYで検索結果をグルーピングし、AVGで平均値を計算できます。

【関連記事】
SQLで平均を求める関数や方法について徹底解説!

小計を求める – GROUP BY、SUM

GROUP BYで検索結果をグルーピングし、SUMで小計を計算できます。

【関連記事】
SQL sumのサンプルコード集 基本の小計出力から、NULL対策まで

最大値、最小値を求める – GROUP BY、MAX、MIN

GROUP BYで検索結果をグルーピングし、グループ内の最大値をMAX、最小値をMINで計算できます。

【関連記事】
【超便利!】SQLのMAX関数・MIN関数の使い方をわかりやすく解説 

レコード数をカウントする – COUNT

レコード数をカウントするにはCOUNTを使います。

【関連記事】
SQL countのサンプルコード集 複数テーブル件数を一発で取得する

distinctと組み合わせて、データの種類をカウントすることも可能。

【関連記事】
SQL distinctとcountを組み合わせてデータ種類をカウントする

日付計算

日付計算にはdateを使います。

【関連記事】
SQLのdateは、日付を扱うデータ型 書式変換、加減算、比較が可能 

型変換

文字列型へ変換 – TO_CHAR

文字列型にデータ型を変換するにはTO_CHARを使います。ゼロ詰めやカンマ編集も可能。

【関連記事】
TO_CHAR関数の使い方を解説!SQLで数値や日付を書式を指定して文字列に変換 

日付型へ変換 – TO_DATE

日付型に変換するには、TO_DATEを使います。データベースによっては別の関数が用意されています。

【関連記事】
【SQL】TO_DATE関数の使い方|PostgreSQL・MySQLでの代用法も

数値に変換 – TO_NUMBER

数値型に変換するにはTO_NUMBERを使います。

【関連記事】
SQLで文字列と数値を変換する 数値をゼロ詰めフォーマットする方法

まとめ

ポテパンダの一言メモ
  • データベースにより一部の仕様が異なるケースがある
  • 基本はレコードの検索、挿入、更新、削除
  • レコード検索には、関数や条件指定バリエーションで多彩な検索か可能

エンジニアになりたい人に選ばれるプログラミングスクール「ポテパンキャンプ 」

ポテパンキャンプは卒業生の多くがWebエンジニアとして活躍している実践型プログラミングスクールです。 1000名以上が受講しており、その多くが上場企業、ベンチャー企業のWebエンジニアとして活躍しています。

基礎的な学習だけで満足せず、実際にプログラミングを覚えて実践で使えるレベルまで学習したいという方に人気です。 プログラミングを学習し実践で使うには様々な要素が必要です。

それがマルっと詰まっているポテパンキャンプでプログラミングを学習してみませんか?

卒業生の多くがWebエンジニアとして活躍

卒業生の多くがWeb企業で活躍しております。
実践的なカリキュラムをこなしているからこそ現場でも戦力となっております。
活躍する卒業生のインタビューもございますので是非御覧ください。

経験豊富なエンジニア陣が直接指導

実践的なカリキュラムと経験豊富なエンジニアが直接指導にあたります。
有名企業のエンジニアも多数在籍し品質高いWebアプリケーションを作れるようサポートします。

満足度高くコスパの高いプログラミングスクール「ポテパンキャンプ」

運営する株式会社ポテパンは10,000人以上のエンジニアのキャリアサポートを行ってきております。
そのノウハウを活かして実践的なカリキュラムを随時アップデートしております。

代表の宮崎もプログラミングを覚えサイトを作りポテパンを創業しました。
本気でプログラミングを身につけたいという方にコスパ良く受講していただきたいと思っておりますので、気になる方はぜひスクール詳細をのぞいてくださいませ。