カラムの順番を入れ替えて表示する
SELECT カラム名,カラム名,カラム名 FROM テーブル名;
エイリアスを付けて表示する(ニックネーム)
SELECT カラム名 AS エイリアス FROM テーブル名;
SELECT カラム名 AS エイリアス,カラム名 AS エイリアス… FROM テーブル名;
カラムの値を計算して表示する
SELECT uria*10000 AS “売上” FROM tb;
関数を使って計算する
SELECT AVG(uria) FROM tb;
SELECT SUM(uria)*10000 AS “売上” FROM tb;
SELECT COUNT(uria) FROM tb;
文字列の結合
SELECT CONCAT(bang,nama,”さん”) FROM tb1;
右から取り出す
SELECT RIGHT(bang,2) FROM tb1;
右から2文字を表示する
左から取り出す
SELECT LEFT(bang,3) FROM tb1;
左から3文字を表示する
〇番目~×個取り出す
SELECT SUBSTRING(bang,2,3) FROM tb1;
繰り返して表示:REPEAT
SELECT REPEAT(“♪”,tosi) FROM tb1;
逆から表示:REVERSE
SELECT REVERSE(nama) FROM tb1;
現在の日付と時刻の値を返す関数:NOW
SELECT NOW();
INSERT INTO テーブル名 (カラム名) VALUES(NOW());
指定した数のレコードを表示する
SELECT カラム名 FROM テーブル名 LIMIT 表示するレコード数;
WHEREを使った抽出
SELECT カラム名 FROM テーブル名 WHERE 条件;
比較演算子
比較演算子 | 意味 |
= | 等しい |
> | より大きい |
>= | 以上 |
< | より小さい |
<= | 以下 |
<> | とは異なる |
〇 IN × | ×のリストの中に〇がある |
〇 NOT IN × | ×のリストの中に〇がない |
〇 BETWEEN × AND ×× | ×から××の間に〇がある |
〇 NOT BETWEEN × AND ×× | ×から××の間に〇がない |
あいまい検索:LIKE
SELECT * FROM テーブル名 WHERE カラム名 LIKE 〇 ;
〇の文字列を含むものを抽出する
% 任意の文字列が該当
_ 任意の1文字が該当
文字列を含まないものを抽出:NOT LIKE
SELECT * FROM tb1 WHERE nama NOT LIKE “%田”;
NULLのレコードを抽出:IS NULL
SELECT * FROM tb1 WHERE tosi IS NULL;
NULLじゃないレコードを抽出:IS NOT NULL
SELECT * FROM tb1 WHERE tosi IS NOT NULL;
重複したデータは表示しない:DISTINCT
SELECT DISTINCT bang FROM tb;
複数の条件を指定して選択:AND
WHERE 〇 AND ×
〇かつ×の場合抽出する
〇または×の場合:OR
WHERE 〇 OR ×
AND と OR は複数使うことが可能
ただ両方ある場合はANDが優先して処理される
条件によって入力する値を変化させる:CASE WHEN
CASE
WHEN 条件1 THEN 表示する値
WHEN 条件2 THEN 表示する値
WHEN 条件3 THEN 表示する値
…
ELSE すべての条件に当てはまらない時の値
END
例
SELECT bang AS “番号”,uria AS “売上”,
CASE
WHEN uria>=100 THEN “多い”
WHEN uria>=50 THEN “中くらい”
ELSE “少ない”
END AS “評価”
FROM tb;
並べ替え
昇順に並べ替えて表示する
SELECT カラム名 FROM テーブル名 ORDER BY キーとなるカラム名;
キーとなるカラムの小さいものから順番に並ぶようになる
昇順:ASC
降順:DESC
SELECT * FROM tb ORDER BY uria ASC;
SELECT * FROM tb ORDER BY uria DESC LIMIT 5;
→降順で上位5つのレコードのみ表示
表示するレコードの範囲を決める:OFFSET
SELECT カラム名 FROM テーブル名 LIMIT 表示するレコード数 OFFSET 表示開始レコードのシフト数;
表示開始のレコードのシフト数を3にした場合、本来なら1個目から表示するのを3つ後ろに移すので、4っつめのレコードから表示するという処理になります。
グループごとに表示する:GROUP BY
SELECT カラム名 FROM テーブル名 GROUP BY グループ化するカラム名;
グループごとの数を数えてみる
SELECT COUNT(*) FROM tb GROUP BY bang;
SELECT
bang AS “社員番号”,SUM(uria) AS “合計売上”
FROM tb
GROUP BY bang;
SELECT
bang AS “社員番号”,AVG(uria) AS “平均売上”
FROM tb
GROUP BY bang;
条件付きグループで表示:HAVING
SELECT 集計したカラム FROM テーブル名 GROUP BY グループ化するカラム HAVING 条件;
SELECT
bang AS “社員番号”,SUM(uria) AS “合計売上”
FROM tb
GROUP BY bang
HAVING SUM(uria)>=200;
↑グループ化してからの抽出
SELECT
bang AS “番号”,AVG(uria) AS “平均売上”
FROM tb
WHERE uria>=50
GROUP BY bang;
↑グループ化する前に条件をつけているので、uriaが50以上のものを抽出してからグループ化している
グループ化してから並べ替える
SELECT
bang AS “番号”,SUM(uria) AS “合計売上”
FROM tb
GROUP BY bang
ORDER BY SUM(uria);
グループ化してから降順で並べ替える
SELECT
bang AS “番号”,SUM(uria) AS “合計売上”
FROM tb
GROUP BY bang
ORDER BY SUM(uria) DESC;
WHERE条件
GROUP BY 〇〇
ORDER BY △△
SELECT
bang AS “社員番号”,AVG(uria) AS “平均売上”
FROM tb
WHERE uria>=50
GROUP BY bang
HAVING AVG(uria)>=120
ORDER BY AVG(uria) DESC;