2
1

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 の書き方メモ

Posted at

SQLは大文字と小文字を区別しないため、小文字で記述しても問題ありません。

「ここまでがクエリです」ということを伝えるためのセミコロン(;)を加える

実行手順

上 → 先
下 → 後

〜句 内容
FROM テーブル指定
JOIN テーブルの結合
WHERE 条件指定
GROUP BY グループ化
SUM, AVGなど 関数
HAVING 集計後の絞り込み
SELECT, DISRINCT 検索
ORDER BY 並べ替え
LIMIT 取得件数の指定
  • コメントアウト

    -- 
    
    /* contents */
    
  • column(列)のデータを取得

    SELECT columnname
    
  • tableの指定

    FROM tablename;
    
  • columnを選択する時に先にcolumn名を指定し、次はtable名を指定する

    SELECT columnname
    FROM tablename;
    
  • 複数のcolumnを選択する

    SELECT columnname1,columnname2,columnname3
    FROM tablename;
    
    すべてのcolumnを選択する
    SELECT *
    FROM tablename;
    
  • record(行)を取得する

    WHERE columnname = "recordname"
    
  • ある文字を含むデータを取得する

    SELECT columnname
    FROM tablename
    
    特定のcontentsのデータ
    WHERE columnname LIKE "contents"
    contentsを含むすべてのデータ
    WHERE columnname LIKE "%contents%"
    contents前方一致のデータ
    WHERE columnname LIKE "contents%"
    contents後方一致のデータ
    WHERE columnname LIKE "%contents"
    
  • 条件に満たさないデータ

    SELECT columnname
    FROM tablename
    WHERE NOT columnname >= "contents"
    WHERE NOT columnname LIKE "contents"
    
  • 何のデータも保存されていない場合

    NULL
    NULLのデータやNULLでないデータを取得する場合は
    
    SELECT columnname
    FROM tablename
    
    WHERE columnname IS NULL
    WHERE columnname IS NOT NULL
    
    使用できない WHERE columnname LIKE NULL
    使用できない WHERE columnname = NULL
    
    
  • WHEREに複数の条件を指定する

    SELECT columnname
    FROM tablename
    
    WHERE columnname1 = "contents"
    AND columnname2 = "contents"
    
  • WHERE 条件1 OR 条件2

    SELECT columnname
    FROM tablename
    
    WHERE columnname1 = "contents"
    OR columnname2 = "contents"
    
  • データを並び替える

    SELECT *
    FROM tablename
    
    「昇順」は「ASC」、「降順」は「DESC
    ORDER BY (基準となる)並べ替えたいcolumn名 並べ方
    
    
  • 「最大で何件取得するか」を指定する

    SELECT *
    FROM tablename
    LIMIT number
    
  • 検索結果から指定したcolumnの重複するデータを除く

    SELECT distinct(columnname)
    FROM tablename
    
  • 各種の計算

    nullは計算されない

    +
    -
    *
    /
    合計を求めるSUM(columnname)
    平均を求めるAVG(columnname)
    サンプルサイズを計算するCOUNT(columnname)
    最小のデータMAX(columnname)
    最大のデータMAX(columnname)
    
    
  • データをグループ化する

    SELECT columnname1, columnname2
    FROM tablename
    GROUP BY columnname1/columnname2
    
  • 条件を満たすグループを取得する。HAVINGはGROUP BYによってグループ化されたデータを検索対象としする。

    SELECT columnname1, columnname2
    FROM tablename
    GROUP BY columnname1/columnname2
    HAVING 条件
    
  • サブクエリとは2つ以上のクエリを1つにまとめることができるので、より複雑なデータを取得する際に使われます。

    SELECT columnname1
    FROM tablename
    WHERE columnname1 比較符 (
    	SELECT columnname1
    	FROM tablename
    	WHERE columnname1 
    );
    
  • 取得したカラム名の表示を変更することができる

    SELECT columnname1 AS "newname"
    
  • 複数のテーブルを1つに結合する

    SELECT *
    FROM tablename1
    JOIN tablename2
    ON 結合条件(table1.外部column = table2.主キーcolumn)(主に二つのtableの重なっている部分)
    
  • FROMで指定したテーブルのレコードを全て取得する

    SELECT columnname1
    FROM tablename1
    
    LEFT JOIN tablename2
    /* LEFT JOIN はFROMの後ろに書くテーブルを基準テーブルとして参照する*/
    /* RIGHT JOIN の後ろに書くテーブルは基準テーブルとして参照する*/
    /* INNER JOIN はFROMとINNER JOINの後ろに書くテーブル両方を参照する*/
    ON 結合条件(tablename1.外部column = tablename2.主キーcolumn)
    
  • CASE式で条件分岐

        --単純CASE式
        CASE gender
            WHEN '男' THEN 1
            WHEN '女' THEN 2
            ELSE 99
        END
    
        --検索CASE式
        CASE
            WHEN gender = '男' THEN 1
            WHEN gender = '女' THEN 2
            ELSE 99
        END
    
  • テーブルにレコードを挿入する

    多くの場合、idカラムにはAUTO INCREMENTという機能が使われます。AUTO INCREMENTとは「自動で増加する」といった意味で、データが作成されるときに自動で値が割り当てられます。

    INSERT INTO tablename (columnname1, columnname2) VALUES ('contents', 'contents');
    
  • データを更新する

    UPDATE tablenem
    SET columnname1 = "contents", columnname2 = "contents"
    WHERE record = contents;
    
  • レコードを削除する

    DELETE FROM tablename
    WHERE record;
    

参考記事

2
1
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
2
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?