MySQL データの検索、SELECT文と演算子

データの検索

SELECT文

SELECT 検索する列名
FROM テーブル名
WHERE 条件
GROUP BY グループ化定義
HAVING グループ化後の検索条件
ORDER BY 並べ替えの定義 ;

指定した列のデータを取り出す


SELECT 検索列名1, 検索列名2
FROM テーブル名; 

全ての列のデータを取り出す


SELECT * FROM テーブル名;

重複データを除外してデータを取り出す

SELECT DISTINCT 検索する列名 
FROM テーブル名;

算術演算子

列の値を演算子を用いて計算し結果を値にすることが可能

SELECT 数値 - 列名
FROM テーブル名;

列名の名前を変更して検索結果を表示

SELECT
2021 - 列名 AS 新しい列名,
列名 AS '新しい列名'
FROM テーブル名;

連結演算子

mysqlで「 || 」を使用可能にする


SET SESSION sql_mode='PIPES_AS_CONCAT';

列の値同士を連結して新しい列名として検索


SELECT 
列名1 || 列名2 AS 新しい列名
FROM テーブル名;

* 「 || 」を使用可能にしていないと新しい列名の値はすべて「 0 」になってしまう

WHERE句

  • 「 WHERE 条件; 」で検索する条件を指定できる
  • 条件には演算子を用いて指定可能

SELECT 列名
FROM テーブル名
WHERE 列名 != 10; // 列名の値が10以外のものを指定

論理演算子

論理演算子 説明
AND 論理積「 & 」
OR 論理和「 || 」
NOT 否定「 != 」
WHERE 条件1 AND(OR) 条件2;

WHERE NOT 条件;

優先順位


  1. NOT
  2. AND
  3. OR

文字演算子

文字演算子 説明
BETWEEN ~ AND ・・・ ~から・・・まで
IN(~, ~, ...) ~か~か...
LIKE ~ ~が含まれる
IS NULL NULLであったら

BETWEEN演算子

WHERE 列名 BETWEEN1 AND2;

IN演算子

WHERE 列名 IN (値1, 値2,...);

LIKE演算子

WHERE 列名 LIKE '%値%';//値の前後に任意の文字列
WHERE 列名 LIKE '_値';//値の前に任意の一文字
  • 「 % 」= 任意の長さの文字列
  • 「 _ 」= 任意の一文字

IS NULL演算子

WHERE 列名 IS NULL;
// 列の値にデータが存在しない

WHERE 列名 IS NOT NULL;
// 列の値にデータが存在する