SQLの基本的な文法まとめ②


SQLの基本文法のおさらいをしたのでまとめました。

 

データの検索

テーブルの指定

FROM テーブル名

カラムの指定

SELECT カラム名

使い方

ex)
SELECT * FROM users;

ワイルドカード

* のこと
上記では「すべてのカラム」を取得している

取得するレコードの制限

WHERE 条件

ex)
SELECT * FROM users WHERE name = "白石";

条件に使用できる論理演算子

  • AND
  • OR
  • NOT

1つのカラム内での範囲検索

WHERE カラム名 BETWEEN 下限 AND 上限

ex)
SELECT * FROM users WHERE age BETWEEN 21 AND 24;
-- ageが20以上かつ25以下

1つのカラム内でのリスト検索

WHERE カラム名 IN (値1, 値2, ……)

ex)
SELECT * FROM users WHERE prefecture IN ("岐阜", "愛知");

データの検索と形成

データの結合

# CONCAT関数
CONCAT(文字列1, 文字列2, ……)

ex)
SELECT CONCAT(family_name, first_name) FROM users;

検索結果のカラム名の変更

# AS
SELECT 取得するデータ AS 別名

ex)
SELECT CONCAT(family_name, first_name) AS "名前" FROM users;

ASは省略ができる。

重複するデータを除外

SELECT DISTINCT カラム名

ex)
SELECT DISTINCT user_id FROM units WHERE date = "2020-07-06";

レコードのグループ化

GROUP BY カラム名

ex)
SELECT user_id FROM units WHERE date = "2020-07-06" GROUP BY user_id;

DISTINCT と GROUP BYの例文の取得データは同じ(見た結果)
GROUP BYは集計した結果を取得することができる。

レコードの数を取得

SELECT COUNT(カラム名)

ex)
SELECT user_id, COUNT(*) "コマ数" FROM units WHERE date = "2015-07-01" GROUP BY user_id;

集計関数

  • AVG 平均
  • MAX 最大値
  • MIN 最小値

データの結合

FROM テーブル名1 JOIN テーブル名2 ON テーブル名1.カラム名1 = テーブル名2.カラム名2

ex)
SELECT user_id, COUNT(*) "コマ数", FROM units s JOIN users u ON s.user_id = u.id WHERE date = "2020-07-06" GROUP BY user_id;

サブクエリ

SQLの中に入れ子になってSQLがはいっていること。

ex)
SELECT *
FROM users WHERE id NOT IN ( SELECT DISTINCT user_id FROM shifts WHERE date = "2015-07-01");



どんどん文が複雑になっていきますね。。
でも読み解くことはできるので慣れかな〜と思っています♫

お読みいただき、ありがとうございました🌸

SQLの基本的な文法まとめ①