エイリアス(alias)・・・本物を参照するためにユーザーが自由につけた名前。偽名。別名。ニックネーム。
■カラム名をエイリアスにする
SELECT カラム名 AS エイリアス FROM テーブル名;
※複数のカラム名を指定するときは、「,」で区切って「カラム名 AS エイリアス」を付け加えていく
■関数を使って計算する
平均 AVG()
合計 SUM()
個数 COUNT()
結合 CONCAT() ※文字列を直接指定することもできる
など他にもたくさんの関数がある
たとえば
円周率 PI()
のように、テーブルと全く無縁の関数もある
引数は不要の場合も必ず付ける!
・MySQLサーバーのバージョン
SELECT VERSION();
・現在使っているデータベースを表示
SELECT DATABASE();
・現在のユーザーを表示
SELECT USER();
・引数で指定した文字の文字コード(文字セット)を表示
SELECT CHARSET('この文字');
■文字列操作で活躍する関数
・右から取り出す:RIGHT関数
・左から取り出す:LIGHT関数
例) SELECT RIGHT(bang,2) FROM tb;
「bangの右から2文字を表示する」
・X番目から△個取り出す:SUBSTRING関数
例) SELECT SUBSTRING(bang,2,3) FROM tb;
「bangの2文字目から3文字分を表示する」
・繰り返して表示:REPEAT関数
例) SELECT REPEAT(' .' , tosi) FROM tb;
「「.」の文字をtosiの回数だけ繰り返して表示する」
・逆さから表示:REVERSE関数
例) SELECT REVERSE(nama) FROM tb;
「nama(氏名)のデータの文字列を逆さに表示する」
■日付・時刻の関数
NOW関数 現在の日付と時刻の値を返す
DATETIME型に設定してカラムを入力する
■条件を指定した選択
・レコードを決めて表示する
LIMIT関数
SELECT カラム名 FROM テーブル名 LIMIT 表示するレコード数;
・WHEREを使った抽出(条件に一致したレコードだけを取り出す)
SELECT カラム名 FROM テーブル名 WHERE 条件;
※条件には、比較演算子などを使う
[比較演算子]
= 等しい
> より大きい
>= 以上
< より小さい
<= 以下
<> とは異なる
○ IN × ×のリスト中に○がある
○ NOT IN × ×のリスト中に○がない
○ BETWEEN × AND ×× ×から××の間に○がある
○ NOT BETWEEN × AND ×× ×から××の間に○がない
・文字列を使った条件
WHERE カラム名='文字列'
・LIKE:あいまい検索
WHERE LIKE '~'
「~の文字列を含む」
NOT LIKE '~'
「~の文字列を含まない」
[ワイルドカード]
% 任意の文字列
_ 任意の一文字
・NULLを使った条件
WHERE カラム名 IS NULL
「カラムがNULLのレコードを抽出」
IS NOT NULL
「カラムがNULLでないレコードを抽出」
・重複したデータを省いて抽出
SELECT DISTINCT カラム名 FROM テーブル名;
・複数の条件を指定
AND かつ
OR または
※ANDが優先して処理される
優先したい処理は()で囲むとよい
CASE WHEN:条件によって入力する値を変化させる
CASE
WHEN 条件1 THEN 表示する値
WHEN 条件2 THEN 表示する値
WHEN 条件3 THEN 表示する値
・・・・・
ELSE すべての条件に当てはまらないときの値
END
・並べ替え
昇順
SELECT カラム名 FROM テーブル名 ORDER BY キーとなるカラム ASC;
降順
SELECT カラム名 FROM テーブル名 ORDER BY キーとなるカラム DESC ;
降順に下から5件だけ表示するとき
SELECT カラム名 FROM テーブル名 ORDER BY キーとなるカラム DESC LIMIT 5;
・表示するレコードの範囲を決める
SELECT カラム名 FROM テーブル名 LIMIT 表示するレコード OFFSET 表示開始レコードのシフト数;
表示開始のレコード数とは、「何個移動したところから表示させるか」を指定する数
(「指定した数の次」個目から表示)
・グループごとに表示
グループとして扱うことで、グループ単位での処理が可能になる
GROUP BY:グループ化
SELECT カラム名 FROM テーブル名 GROUP BY グループ化するカラム名;
指定したカラムの偶然選ばれたレコードが表示される
ただし、処理の対象は同じグループに属するすべてのレコードが対象
・グループごとの数を数える
例) SELECT bang,COUNT(*) AS 件数 FROM tb GROUP BY bang;
・グループごとの合計・平均を表示する
例) SELECT bang,SUM(uria) AS 合計 FROM tb GROUP BY bang;
SELECT bang,AVG(uria) AS 平均 FROM tb GROUP BY bang;
・グループに分けて条件をつけて取り出す
「グループ化した後で抽出」
SELECT 集計したカラム FROM テーブル名 GROUP BY グループ化するカラム HAVING 条件;
「抽出してからグループ化」
SELECT 集計したカラム FROM テーブル名 WHERE 条件 GROUP BY グループ化するカラム;
「グループ化してから並べ替える」
SELECT 集計したカラム FROM テーブル名 GROUP BY グループ化するカラム ORDER BY キーとなるカラム;
+------------------------------+
◆記述順のポイント◆
①WHERE条件
↓
②GROUP BY
↓
③ORDER BY ○○ (DESC)
+------------------------------+
0 件のコメント:
コメントを投稿