SQL関数とは

DBMSの基本機能

SQLでは関数はデータベース内でデータ操作、計算、変換するための特定の機能です。関数はDBMSに組み込まれており、SQLで使用することができます。

  • 利用できる関数の種類はDBMSによって若干異なりますが、基本は同じです

関数の分類

SQLの関数は大きく分けて2つのタイプに分類されます。

集約関数(Aggregate Functions)

Aggregate Functionsは複数の行からデータをまとめて計算し、単一の結果を返します。集約関数は通常、GROUP BYを利用してグループごとの集計結果を取得するために利用されます。

  • SUM
  • AVG
  • COUNT
  • MAX、MIN など

単一行関数(Scalar Functions)

Scalar Functionsは単一の入力値を受け取り、1つの結果を返します。文字列操作、数値計算、日時処理など、様々な目的で使用されます。

  • ROUND
  • DATE
  • UPPER, LOWER
  • CONCAT
  • SUBSTRING など

集約関数

COUNT

COUNT は、レコードの件数を取得します。

COUNT(カラム)

AS

ASを利用すると、カラム名をカスタマイズできます。

COUNT(カラム) AS 別カラム名

「items」テーブルのレコード数

「items」テーブルのレコード数を取得します。

SELECT COUNT(id) AS item_count FROM items;
結果例
item_count
3

SUM()

SUM() は、カラムの合計値を取得します。

SUM(カラム)

「price」の合計値

SQL
SELECT SUM(price) AS price_sum FROM items;
結果例
price_sum
1050

AVG

AVG は、カラムの平均値を取得します。

AVG(カラム)

「price」の平均値

「items」テーブルのレコード数を取得します。

SQL
SELECT AVG(price) AS average_price FROM items;
結果例
average_price
350.0000

MAX()、MIN()

MAX()MIN() は、カラムの最大値、最小値を取得します。

「price」の最大値、最小値

「items」テーブルのレコード数を取得します。

SQL
SELECT MAX(price) AS max_price, MIN(price) AS min_price  FROM items;
結果例
max_price min_price
400 300

単一行関数

カラムの計算

税抜価格(少数表示)

税抜価格は「price」を「1.1」で割った値になりますが、SQLではカラムを計算して表示することができます。

SQL
SELECT price / 1.1 AS price_without_tax FROM items;
結果例
price_without_tax	
272.7273
318.1818
363.6364

ROUND

ROUND は数値を四捨五入します。桁数を指定しない場合は、整数となります。

SQL
ROUND(数値, 桁数)

税抜価格(四捨五入)

税抜価格を四捨五入します。

SQL
SELECT ROUND(price / 1.1) AS price_without_tax FROM items;
結果例
price_without_tax	
273
318
364

CONCAT

CONCATは文字列を連結します。

CONCAT(文字1, 文字2, ...)

「code」と「name」の連結

「items」テーブルの「code」と「name」を「 : 」で連結した例です。

SQL
SELECT CONCAT(code, ' : ', name) AS code_and_name FROM items;
結果例
code_and_name	
D00001 : コーヒー
D00002 : 紅茶
D00003 : ほうじ茶

UPPER, LOWER

UPPERLOWERは、アルファベットを大文字、小文字に変換します。

UPPER(文字1)
LOWER(文字1)

「code」を小文字に変換

「items」テーブルの「code」を小文字に変換した例です。

SQL
SELECT LOWER(code)  FROM items;

大文字「D」が、小文字「d」に変換されました。

結果例
LOWER(code)	
d00001
d00002
d00003

SUBSTRING

SUBSTRINGは、文字の一部分を取得します。第2引数に「開始位置」第3引数に「文字の長さ」を指定します。

SUBSTRING(文字, 開始位置 ,長さ)

「code」を小文字に変換

「items」テーブルの「code」を小文字に変換した例です。

SQL
SELECT SUBSTRING(code, 2, 5) AS number  FROM items;
結果例
number
00001
00002
00003

CAST

CASTはカラムデータを、指定のデータ型に変換(キャスト)します。

CAST(文字 AS データ型)

商品コードのの数値部分を取り出し、SIGNEDでキャストします。

SQL
SELECT CAST(SUBSTRING(code, 2, 5) AS SIGNED) AS number FROM items;
結果例
number	
1
2
3