MySQLのよく使う基本コード一覧です。

MySQLにログインする

mysql -u root -p enter
Enter password: mysqlを作ったときのパスワードを入力

テータベースを表示させる

mysql> SHOW DATABASES;

使うデータベースを選ぶ

mysql> USE テスト;
※テストはデータベース名

SELECT データ取得

SELECTはデータを取得したいときに使うコードです。
カラム(項目・列)全てのデータを取得したいときは*を使います。
mysql> SELECT * FROM メニュー;
※メニューはテーブル名

並べ替え(昇順・降順)ORDER BY

mysql> SELECT * FROM メニュー ORDER BY 金額 ASC; 昇順(安い→高い)
mysql> SELECT * FROM メニュー ORDER BY 金額 DESC; 降順(高い→安い)

抽出カラム(列)を絞り込む

mysql> SELECT 日付, 項目, カテゴリ, 金額 FROM 家計簿;
※日付, 項目, カテゴリ, 金額は、カラム(列)、家計簿はテーブル名

レコード(行)を絞り込むWHERE句

mysql> SELECT 日付, 項目, カテゴリ, 金額 FROM 家計簿 WHERE 金額 >= 10000;

条件式 説明
> 左が右より大きい WHERE 金額 > 100
< 左が右より小さい WHERE 金額 < 100
>= 左が右以上 WHERE 金額 >= 100
<= 左が右以下 WHERE 金額 <= 100
!= 左と右が一致しない WHERE カテゴリ != '食費'
= 左と右が一致する WHERE 日付 = '2023-06-01'

AND/OR条件式の追加

SELECT 日付, 項目, カテゴリ, 金額 FROM 家計簿 WHERE カテゴリ = '食費' AND 金額 >= 10000;
カテゴリが食費で、かつ金額が10000以上のものを抽出

SELECT 日付, 項目, カテゴリ, 金額 FROM 家計簿 WHERE カテゴリ = '食費' OR カテゴリ = '外食費';
カテゴリが食費、もしくは外食費のものを抽出

条件式が複数あるものには注意が必要です。
ANDとOR条件が混ざり合っている場合は、AND条件が優先的に実行されるというルールがあるからです。
WHERE カテゴリ = '食費' OR カテゴリ = '外食費' AND 金額 >= 10000
カテゴリが食費、もしくは外食費で、かつ金額が10000以上のレコードを抽出したいが、この場合は、AND条件カテゴリ = '外食費' AND 金額 >= 10000が先に実行され、「カテゴリが外食費で、かつ金額が10000以上のもの、もしくはカテゴリが食費」という抽出条件になってしまう。

条件を先に実行させたい場合は、条件式をカッコ( )で囲むようにします。
WHERE (カテゴリ = '食費' OR カテゴリ = '外食費') AND 金額 >= 10000
カテゴリが食費、もしくは外食費で、金額が10000以上のレコードを抽出する

BETWEEN 値の範囲指定

WHERE 金額 BETWEEN 10000 AND 20000 金額が10000以上、20000以下を抽出

IN 範囲指定

WHERE 番号 IN(100, 200, 300) 番号が100、200、300のレコードを抽出

LIKE 文字のあいまい検索

WHERE 項目 LIKE '%肉%' 項目に肉が含まれるものを抽出

  • 部分一致・・・LIKE ‘%肉%’
  • 前方一致・・・LIKE ‘肉%’
  • 後方一致・・・LIKE ‘%肉’

重複データを除去できるDISTINCT

SELECT DISTINCT カラム1 FROM テーブル;

IF文のように条件をいくつか設定できるCASE

MySQLにもIF文のように条件をいくつか設定できるCASEがあります。
条件式にあったカラムを追加して、テーブル表示することができます。

SELECT
 カラム1,
 カラム2,
 CASE
     WHEN 条件1 THEN 返す値1
     WHEN 条件2 THEN 返す値2
     WHEN 条件3 THEN 返す値3
     WHEN 条件4 THEN 返す値4
    ELSE 返す値5
 END AS カラム3
FROM テーブル
SELECT
 学籍番号,
 氏名,
 CASE 
   WHEN score >= 80 THEN 'A'
   WHEN 80 > score AND score >= 70 THEN 'B'
   WHEN 70 > score AND score >= 60 THEN 'C'
   WHEN 60 > score THEN 'D'
   ELSE '未測定'
 END AS '評定'
FROM 成績表

END AS の後は、追加されるカラム名

CASEの後にカラム名や計算式を入れることも可能です。

 CASE 血液型
   WHEN 'A' THEN '日本人の割合は約○%です'
   WHEN 'B' THEN '日本人の割合は約△%です'
   WHEN 'AB' THEN '日本人の割合は約●%です'
   WHEN 'O' THEN '日本人の割合は約▲%です'
   ELSE '未登録'
 END AS '割合'