3
2

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文の備忘録

Last updated at Posted at 2020-10-24

SQL文とは

SQLはデータベース言語の一つで、データベースの定義や操作を行うことができます。
SQLはISO(国際標準化機構)で規格が標準化されており、一度学習すればほかのデータベースでもほぼ同じように操作可能です。
SQL文は大きく分けて3種類の言語から構成されています。データベースを制御したり操作したりする際に使い分けられ、すべて命令文で動詞と目的語を組み合わせた構文です。

  • データ定義言語(Data Definition Language)
    データ定義言語はDDLと略され、RDBMSで扱うオブジェクト(テーブルやインデックスなど)の構造や、オブジェクト同士の関係を定義する構文です。

<DDLの命令文>
CREATE: 新しいデータベースやテーブルなどのオブジェクトを定義する
JOIN:テーブル同士を結合する
DROP:定義したオブジェクトを削除する
ALTER:定義したオブジェクトの内容を変更する
TRUNCATE:データをすべて削除する

  • データ操作言語(Data Manipulation Language)
    データ操作言語はDMLと略され、データベースを操作するための構文です。目的語やさまざまな条件を示すキーワードと組み合わせて使われ、多くのパターンがあります。目的語には「~以上」「~以下」などの条件をつけることもでき、SQL関数と呼ばれる関数を使用することもできます。
    <DMLの命令文>
    SELECT:データベースを検索する
    INSERT:データを挿入する
    DELETE:データを削除する
    UPDATE:データを更新する

  • データ制御言語(Data Control Language)
    データ制御言語はDCLと略され、データへのアクセスを制御する構文です。トランザクションやシステムを管理したり、ユーザーのアクセス権を制御したりするために使われます。
    <DMLの命令文>
    GRANT:ユーザー権限を付与する
    REVOKE:ユーザー権限を削除する
    BEGIN:トランザクションを開始する
    COMMIT:トランザクションを確定する
    ROLLBACK:トランザクションを取り消す

使い方

SELECT(どのカラムから)

SELECT name

FROM(どのテーブルから)

SELECT name
FROM shoppinglist;

複数のカラムからデータを取得

SELECT name
FROM shoppinglist;

WHERE(特定のレコードを取得)

SELECT *
FROM shoppinglist
WHERE price = 100;

データ型
データベースに保存するデータには「データ型」というルールがある。それぞれテキストや数値、日付など「データの種類」を示す。
image.png

比較演算子の一覧

image.png

  • LIKE演算子(ある文字を含むデータを取得)
SELECT *
FROM shoppinglist
WHERE name LIKE "%魚%";
  • ワイルドカード
SELECT *
FROM shoppinglist
WHERE name LIKE "%納豆%";
  • 前方一致
SELECT *
FROM shoppinglist
WHERE name LIKE "トマト%";
  • NOT演算子
SELECT *
FROM shoppinglist
WHERE NOT price = 100;
  • NULLのデータを取得
SELECT *
FROM shoppinglist
WHERE NOT price = 100;
  • AND演算子
SELECT * FROM shoppinglist
WHERE name = "鶏肉"
AND price = 300;
  • OR演算子
SELECT * FROM shoppinglist
WHERE name = "鶏肉"
OR name = "もやし";
  • ORDER BY
SELECT * FROM shoppinglist
ORDER BY price DESC;
  • 「ORDER BY」と「WHERE」の併用
SELECT * FROM shoppinglist
WHERE name = "鶏肉"
ORDER BY price ASC;
  • LIMIT
    最大で何件取得するか
SELECT * FROM shoppinglist
LIMIT 3;
  • DISTINCT(重複データを省く)
SELECT DISTINCT(name)
FROM shoppinglist;
  • 四則演算
    足す(+)、引く(-)、かける(*)、割る(/)ができる。
    例えば、買い物リストの各商品に消費税を入れる。↓
SELECT name,price * 1.08
FROM shoppinglist;
  • SUM関数
SELECT SUN(price)
FROM shoppinglist;
  • AVG関数
SELECT AVG(price)
FROM shoppinglist;
  • COUNT関数
    ↓カラム指定
SELECT COUNT(name)
FROM shoppinglist;

↓全てのカラム

SELECT COUNT(*)
FROM shoppinglist;
  • MAX・MIN関数
SELECT name,MAX(price)
FROM shoppinglist;
  • GROUP BY(グループ化をする)
    GROUP BYを用いると、データをグループ化することができます。例えば図のように「GROUP BY カラム名」とすることで、指定したカラムで、完全に同一のデータを持つレコードどうしが同じグループとなる。
SELECT SUM(price),date
FROM shoppinglist
GROUP BY date;

image.png

  • HAVING(グループ化したデータを絞り込む)
SELECT SUM(price),date
FROM shoppinglist
GROUP BY date
HAVING SUN(price)>500;

image.png
※HAVINGはグループ化された後のテーブルから検索するため、条件文で使うカラムは必ずグループ化されたテーブルのカラムを使う。

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

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?