1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

MySQL 関数・句

Last updated at Posted at 2021-01-28

##はじめに
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 ;

##最後に
次回は結合についてまとめます。
(もしこの記事に誤りがありましたらご教授いただけると幸いです。)

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

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?