1
0

More than 1 year has passed since last update.

MySQL テーブル操作まとめ

Last updated at Posted at 2023-08-10

この記事ではMySQLのテーブル操作をまとめています。

1. 列の取得

SELECT id,name FROM user;

2. 列を取得し、列名を変更する

SELECT id AS 番号,name AS 名前 FROM user;

3. 列を演算して取得

  • 掛け算
    SELECT name AS 名前, price AS 価格, price * 1.08 AS 税込価格 FROM producs;
  • Round(数値、丸め込み桁数
    SELECT *,ROUND(price * 1.08, 2) AS 税込価格 FROM products;
  • 文字列連結Concat(文字列、文字列、…)
    SELECT CONCAT(last_name,' ',first_name, 'さん') FROM users;

4. 条件を指定するして値を取得する

SELECT name,price FROM products WHERE price >= 9800;

演算子 意味
IN 含まれている
NOT IN 含まれていない
IS NULL 値がある
IS NOT NULL 値がない(==NULL)
LIKE パターンマッチング
BETWEEN … AND … 値が範囲内にある,andでも書ける
  • idが1or2or3の行を取得
    SELECT * FROM products WHERE id IN(1,2,3);
  • like
    %・・・0文字以上の任意の文字列
    _・・・任意の一文字
ワイルドカード パターン
'A%' Aで始まる文字列
'%A%' Aを含む文字列
'%A' Aで終わる文字列
'__A' 任意の二文字で始まり、Aで終わる文字列

5. 集約関数

関数 意味
SUM(e) 合計
AVG(e) 平均
MIN(e) 最小値
MAX(e) 最大値
COUNT(e) 行数カウント

  • SELECT SUM(AMOUNT) AS 合計 FROM orders WHERE time >= '2020-03';
  • 重複を排除した集約
    COUNT (DISTINCT e)

6. グループ化

SELECT id,name,COUNT(*) FROM users GROUP BY id;

  • 集約結果を更に絞り込むhaving
  • 記述順序
    1. SELECT
    2. FROM
    3. 結合処理
    4. WHERE
    5. GROUP BY
    6. HAVING
    7. ORDER BY
    8. LIMIT

7. 並び替え

DESC・・・降順
ASC・・・昇順

8. 日付と時刻の演算

  • 現在の日付
    SELECT CURRENT_DATE();
  • 現在の時刻
    SELECT CURRENT_TIMESTAMP();
  • n日後の日付
    SELECT CURRENT_DATE() + INTERVAL 3 DAY;
  • n時間前の時刻
    SELECT CURRENT_TIMESTAMP() - INTERVAL 6 HOUR;
  • extract
    日付や時刻の特定の部分までを取り出す
    SELECT * FROM weddings WHERE EXTRACT(year_month FROM time) = 202202;

9. 結合

image.png

  • union レコードの足し算
    image.png

10. ビュー

image.png

11. サブクエリ

image.png

12. 条件分岐

image.png

1
0
0

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