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 '割合'