0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

MySQLの検索について

Last updated at Posted at 2025-02-06

1.概要

今回SQLの検索を使用したので、基本的な構文と演算子まとめます。

2. SQLとは

SQL(Structured Query Language、構造化問い合わせ言語)は、データベース操作、管理を行う言語です。リレーショナルデータベース(RDB: Relational Database)に対して、データの検索、追加、更新、削除などをできます。

3. 検索

3.1 検索の基本

SELECT
    カラム名
FROM
    テーブル名
;
  • SELECTはFROMで選択したテーブルから、カラムを選択するものです。
  • カラム名を選択すると選択したカラムのみ表示できます。
  • [*]は全てのカラムを指定します。
  • FROMは、対象テーブル名を指定します。

3.2 where

SELECT
    カラム名
FROM
    テーブル名
WHERE
    カラム名 = '条件'
AND
    カラム名 != '条件' --否定
OR
    カラム名  BETWEEN 1000 AND 2000
;
  • WHEREは、特定の条件に一致するデータを抽出する
  • ANDは、両方の条件を満たす場合に検索する
  • ORは、どちらか条件を満たす場合に検索する
  • BETWEENは、範囲を指定して検索する
    (BETWEEN 1000 AND 2000は、1000以上から2000以下までのものを検索する)

3.2.1 条件式

データの値を比較するための演算子です。

演算子 意味 説明
= 等しい age = 25 age が 25 のデータを取得
!= または <> 等しくない age != 25 age が 25 ではないデータを取得
> より大きい age > 25 age が 25 より大きいデータを取得
< より小さい age < 25 age が 25 より小さいデータを取得
>= 以上 age >= 25 age が 25 以上のデータを取得
<= 以下 age <= 25 age が 25 以下のデータを取得

3.2.2 論理演算子

複数の条件を組み合わせるための演算子です。

演算子 意味 説明
AND 両方の条件を満たす age >= 18 AND age <= 30 18歳以上30歳以下 のデータを取得
OR どちらかの条件を満たす age < 18 OR age > 60 18歳未満 または 60歳超え のデータを取得
NOT 条件を満たさない NOT age = 25 age が 25 ではないデータを取得

3.2.3 特殊条件演算子

特定の条件を指定するための演算子です。
WHERE カラム名 特殊条件演算子の順番で使用します。

演算子 意味 説明
BETWEEN 範囲内(開始値と終了値を含む) age BETWEEN 20 AND 30 20歳以上30歳以下 のデータを取得
IN 指定した値のいずれかと一致 city IN ('Tokyo', 'Osaka', 'Nagoya') Tokyo, Osaka, Nagoya に住むユーザーを取得
LIKE 部分一致(ワイルドカード検索) name LIKE 'H%' H で始まる名前を取得
IS NULL NULL のデータを検索 email IS NULL email が NULL のデータを取得
IS NOT NULL NULL ではないデータを検索 email IS NOT NULL email が NULL ではないデータを取得

3.2.4 ワイルドカード

LIKE 句ではワイルドカードを使って部分一致検索ができます。

ワイルドカード 説明
% name LIKE '%ar%' 0文字以上の任意の文字列が入る
_ name LIKE 'H_n' 任意の一文字が入る

4 ORDER BY

並び替えを行う。

SELECT
    *
    カラム名
FROM
    テーブル名
ORDER BY カラム名 DESC
;
  • DESC を指定すると降順(大きい順)、指定しない場合は昇順(小さい順)になる
  • デフォルトは昇順になる

5 GROUP BY

GROUP BY は、データを特定の列ごとにグループ化して集計するために使用します。
集約関数と一緒に使用されます。

SELECT
    カラムA, SUM(カラムB) AS 合計
FROM
    テーブル名
WHERE
    条件
GROUP BY
    カラムA;
  • ASは別名をつ指定する際に使用する
  • SUMは合計を求める
集約関数 説明
COUNT COUNT(カラム名) レコードの数をカウントする
SUM SUM(カラム名) 値の合計
AVG AVG(カラム名) 値の平均

GROUP BYがあると、全体の合計ではなく、カラムAのレコード事に合計が計算されます。

6 LIMIT

表示される列の数を制限する。
データを多い場合に使用する。

SELECT
    カラム名, 集約関数
FROM
    テーブル名
WHERE
    条件
LIMIT
    10;

LIMIT 10 で10レコードまで取得できる。

7 最後に

SQL の基本的な検索や条件指定、グループ化、並び替えについて記述しました。GROUP BY や ORDER BY を適切に使うことで、データの分析や抽出を効率的に行えます。

0
0
1

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

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?