11
11

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

[SQL]SQLまとめ

Last updated at Posted at 2024-01-16

はじめに

学習したことを自分用の参考書のようにまとめていきます。

SQLとは

SQLは、データベースにデータを挿入したり、検索したりする際に利用します。
SQLを使うことで、データベースのなかにある数万・数百万件ものデータを効率的に操作することが可能になります。

主なSQLの機能や用途には以下のものがあります

  • データの検索
  • データの追加
  • データの更新
  • データの削除
  • テーブルの作成
  • テーブルの削除
  • テーブルの主キーの設定
  • ユーザー権限の付与

データベースとは

データベースは、組織や個人がデータを効果的かつ構造的に管理できるようにするための仕組みやシステムです。
データベースは、情報を保存、整理、検索、更新するための仕組みを提供し、様々なアプリケーションやプログラムがデータを取り扱う際の基盤となります。

用語

用語 説明
クエリ SQLを実行したときに、データベースに送る命令文のこと
一意 一意とは意味や値が一つに確定していることという意味。データの一意とは、大量にあるデータから、1つの情報が特定できる状態を意味する。
NULL 何もないという意味
NOT NULL データベースの項目に付ける制限(制約)のひとつ。この制限のつけられたカラムにはNULL(空の値)は入れられない。
AUTO_INCREMENT機能 AUTO_INCREMENTとはそのまま訳すと自動増加という意味。カラムにAUTO_INCREMENTを指定すると、MySQLが自動的に一意の連続した番号を生成してくれる。
PRIMARY KEY(主キー) テーブルに登録されるレコード(行)の全体の中から、ひとつのデータを特定するためのもの。つまりPRIMARY KEY(主キー)を設定したカラムには同じ値を入れることができない。
予約語 テーブル名やカラム名で使えない語句のこと

事前準備

今回は、MAMPに標準で搭載されているphpMyAdminを使い、ブラウザ上でMySQLの操作を行っていきます。

MAMPを起動して、ブラウザに下記のURLを入力するか、
http://localhost:8888/phpMyAdmin/

以下の手順で操作してください。
1 . WebStartをクリック
2024-01-15 6.19.34.png

2 . ヘッダーメニューにあるToolsをクリック
3 . phpMyAdminをクリック
fa55069c-e516-958b-6877-35bb1a4897b5.png

すると、下記のようなページが表示されます。
ad21933b-b0a2-d251-423c-0369b9af72f2.png

データベースを作成する

  1. 新規作成をクリック
  2. メニュータブのデータベースをクリック
  3. データベース名を入力し、作成をクリック
  4. 左側のメニューバーに作成したデータベースが追加されます

スクリーンショット 2024-01-15 21.45.34.png

"画面上の操作" でテーブルを作成する

  1. 名前とカラム数を入力し、作成をクリック

スクリーンショット 2024-01-15 21.58.52.png

2. カラムを入力し、保存するをクリック

スクリーンショット 2024-01-15 22.08.17.png

ここではテーブルの項目の名前やデータ型、長さ等を入力します。

データを登録する

  1. データを登録したいテーブルをクリック
  2. 挿入をクリック

スクリーンショット 2024-01-15 23.27.09.png

3. 値にデータを入れ実行をクリックするとデータが登録できる

スクリーンショット 2024-01-15 23.34.08.png

"SQL" でテーブルを作成する

1.メニュータブのSQLをクリック

スクリーンショット 2024-01-15 23.59.18.png

2.このテキストエリアにSQLを書きます。

スクリーンショット 2024-01-16 0.00.02.png

"db_qiita"というデータベースを作成した後、下記コードを実行するとテーブルの作成できます。

CREATE TABLE db_qiita.test02 (
  id INT NOT NULL PRIMARY KEY AUTO_INCREMENT,
  code VARCHAR(255),
  occupation VARCHAR(255)
);

このようにコードを記述してテーブルを作成する以外にも、データ登録や取得など様々なことができます。

SQLコマンド

CREATE(テーブルを作成)

CREATE TABLE DB.テーブル名 (
  column1 データ型(長さ) その他オプション,
  column2 データ型(長さ) その他オプション,
  column3 データ型(長さ) その他オプション,
  column4 データ型(長さ) その他オプション
);

INSERT(データを登録)

INSERT INTO DB.テーブル名 (カラム名1,カラム名2,カラム名3) VALUES(値1, 値2, 値3);

SELECT(データを取得)

SELECT カラム名 FROM DB.テーブル名;

WHERE(条件検索)

SELECT * FROM DB.テーブル名 WHERE 条件式;
演算子 説明
= 等しい
大きい
小さい
>= 大きい、もしくは等しい
<= 小さい、もしくは等しい
!= 等しくない
<> 等しくない
AND 2つの条件を結合し、両方の条件が真
OR 2つの条件のうち、どちらか一方が真
NOT 式の結果を反転
BETWEEN a AND b 対象のフィールドが a と b の範囲内
IN 対象のフィールドが式の一覧の1つに一致
LIKE 対象のフィールドがパターンに一致

UPDATE(データの更新)

UPDATE DB.テーブル名 SET 項目名=更新する値 WHERE 編集したいレコードを特定できる式;

DELETE(データの削除)

DELETE FROM DB.テーブル名 WHERE 条件式;

DROP(テーブル、データベースの削除)

DROP TABLE DB.テーブル名;

IN(リストに一致するものを取得)

[対象の要素名] IN([1,2,3]);

LIKE(文字列を部分一致検索)

SELECT 列名 FROM テーブル名 WHERE 列名 LIKE '検索文字';

NOT(条件式などを否定)

SELECT カラム名 FROM テーブル名 WHERE カラム名 NOT LIKE '検索文字';

iS NULL(nullのものを取得)

SELECT カラム名 FROM テーブル名 WHERE カラム名 is NULL;

COUNT(数を数える関数)

SELECT COUNT(カラム名) FROM テーブル名;

GROUP BY(カラムごとの集計)

SELECT カラム名、COUNT(カラム名) FROM db_test.test01 GROUP BY code;

CASE(条件分岐)

SELECT
  *,
  CASE
    WHEN 条件式 THEN 条件を満たしたら表示する内容
    WHEN 条件式 THEN 条件を満たしたら表示する内容
    ELSE 条件を満たしていなかったら表示する内容
  END
FROM DB.テーブル名;

SUM(カラムの数値の合計値を取得)

SELECT SUM(カラム名) FROM テーブル名;

AVG(カラムの数値の平均値を取得)

SELECT AVG(カラム名) FROM テーブル名;

MAX,MIN(最大値、最小値を取得)

SELECT MAX(カラム名) FROM テーブル名;
SELECT MIN(カラム名) FROM テーブル名;

ORDER BY(指定したカラムを対象に昇順(または降順)に並び替える)

SELECT カラム名 FROM テーブル名 ORDER BY カラム名 ASC;
SELECT カラム名 FROM テーブル名 ORDER BY カラム名 DESC;

INNER JOIN

SELECT 取得するカラム FROM DB.テーブルA INNER JOIN DB.テーブルB 
 ON Aの対象カラム = Bの対象カラム;

LEFT(RIGHT) JOIN

SELECT 取得するカラム FROM DB.テーブルA LEFT(RIGHT) JOIN DB.テーブルB 
 ON Aの対象カラム = Bの対象カラム;

SQLの記述順序と実行順序

SQLはコードを記述順序と実行順序が決められています。
順序を意識して記述すると、SQLの処理が早くなったり、行いたい処理がスムーズに実行できることがあります。
意図しない動きがあった時はこの順序が関係しているかもしれません。

記述順序

  1. SELECT
  2. FROM
  3. JOIN
  4. WHERE
  5. GROUP BY
  6. WITH CUBE または WITH ROLLUP
  7. HAVING
  8. DISTINCT
  9. ORDER BY
  10. TOP

実行順序

  1. FROM
  2. ON
  3. JOIN
  4. WHERE
  5. GROUP BY
  6. WITH CUBE または WITH ROLLUP
  7. HAVING
  8. SELECT
  9. DISTINCT
  10. ORDER BY
  11. TOP

さいごに

いかがだったでしょうか。

他にもいろいろな記事を書いているのでぜひ読んでいただけたら嬉しいです。

11
11
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
11
11

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?