##はじめに
MySQLの「関数」や「句」について、忘れていたので抜粋してまとめています(自分メモ)。
MySQL:Ver 8.0.23
##BETWEEN句
【使用例】 ageカラムの値が10以上20以下のデータを取得
SELECT * FROM member WHERE age between 10 AND 20 ;
##IN句
複数の一致するかの条件判定をまとめて行うために使用する命令。IN句を使わない場合と比較して、条件文を短く済ませることができる。
OR
を使って複数の指定をする場合
SELECT * FROM fruit WHERE name ="apple" OR name ="orange" ;
IN
句を使って複数の指定をする場合
SELECT * FROM fruit WHERE name IN('apple','orange');
##DISTINCT句
検索するカラム名の重複レコードを一つにまとめて表示する。
SELECT DISTINCT col_name FROM table_name ;
重複するデータを表示しないようにするためにはDISTINCT句を使用する方法とグループ化を使用する方法の2種類がある。
##DATE_FORMAT関数
日付を「2021年01月28日」のように表示する。表示の指示をしない場合は「2020-01-28」。
SELECT DATE_FORMTA(日付,変換フォーマット);
【使用例】 memberテーブルの中から、nameとbirthを取得する。birthはフォーマットを変更。
SELECT name, DATE_FORMAT(birth,'%Y年%m月%d日') from members ;
###その他の変換フォーマット
- %Y = 4桁の年(2021)
- %y = 2桁の年(21)
- %M = 英語の月名(JULY)
- %m = 2桁の月(07)
- %d = 2桁の日付
- %k = 24時間表記の時間
- %i = 2桁の分
- %s = 2桁の秒
##IFNULL関数
【使用例】 nameカラムに格納されている値がNULLの場合、NoNameを返す。
SELECT id, IFNULL(name,'NoName') FROM member;
※ カラム名がIFNULL(name,'NoName')
となってしまうため、
下記のようにAS
で名前を戻すのも良い。
SELECT id, INFULL(name,'NoName') AS name FROM member;
##COUNT関数
【使用例】 memberテーブルのpointが60以上80未満の人数を合計する。
SELECT COUNT(id) AS 'カウント数' FROM member WHERE point >= 60 AND point < 80 ;
下記のようにアスタリスクでも表示可能だが、データ数が増えるため遅くなる。PK(プライマリーキー)等で示すのがベスト。
SELECT COUNT(*) AS 'カウント数' FROM member WHERE point >= 60 AND point < 80 ;
##最後に
次回は結合についてまとめます。
(もしこの記事に誤りがありましたらご教授いただけると幸いです。)