コンテンツにスキップ

第5章 計算と関数

5.1 計算

SQLでは計算(四則演算)を行うことが出来る。

例:tankaに0.08をかけて表示

SELECT tanka*0.08 FROM shouhin;

計算項目は列として表示される。

5.2 別名

計算式などでわかりにくい出力列の名前に別名を付けて列の名前を変えることが出来る。

計算式 As 別名

例:tanka*0.08 に tax という別名を付与。

SELECT tanka*0.08 AS tax FROM shouhin;

注意:ASは省略も可能。単に空白で区切って別名を書く。

例:tanka*0.08 に tax という別名を付与。

SELECT tanka*0.08 tax FROM shouhin;

5.3 関数

SQLでは関数を使用することが出来る(関数はDBMSに依存するものが多い)。

算術関数

関数名 機能
ABS(値) 絶対値
ROUND(値) 四捨五入

例:tanka*0.08 を四捨五入し tax という列で表示

SELECT ROUND(tanka*0.08) AS tax FROM shouhin;

文字列関数

関数名 機能
LENGTH(文字列) 文字列の長さ
SUBSTR(文字列,開始,終了) 開始~終了まで切り出す
LOWER(文字列) 小文字化
UPPER(文字列) 大文字化
REPLACE(文字列,置換前,置換後) 置換

例:商品名の最初の2文字を表示

SELECT SUBSTR(sname, 1, 2) FROM shouhin; 

日付・時刻関数

関数名 機能
date('now','localtime') 現在の日付
time('now','localtime') 現在の時刻
datetime('now','localtime') 現在の日時
strftime('%Y',日付) 年を返す
strftime('%m',日付) 月を返す
strftime('%d',日付) 日を返す

例:今日の日付表示

SELECT date('now','localtime') 

例:今日の日付でsidが1の商品が2個売れた

INSERT INTO uriage (sid,kosu,hi) VALUES(1,2,date('now','localtime') );

例:売り上げがあった日

SELECT strftime("%d", hi)  FROM uriage;

5.4 集約関数

集約関数は対象行全てを集計した結果を表示する特殊な関数。

例:tankaの合計を取得

SELECT SUM(tanka) FROM shouhin;
関数名 機能
SUM(列名) 合計
AVG(列名) 平均値
MAX(列名) 最大値
MIN(列名) 最小値
COUNT(*) 全行数
COUNT(列名) NULLではない行数
COUNT(DISTINCT 列名) 同じものを数えない