【SQL】関数や計算式を使う時に関すること
この記事では、関数に関することや、計算式の扱い方などについてアウトプットしていきます。
SELECT文で計算式を使う場合
SELECT文では、真偽を返す条件式以外に、計算結果を返す計算式を使うこともできる。
○計算式(例) 出金額 + 100 = 出金額に+100された金額が返される
SELECT 出金額, -- 列名 出金額 + 100, -- 計算式 'SQL' -- 固定値 FROM 家計簿
この様に、計算式をSELECT文の中に入れても戻り値で計算結果が返ってくる。
ただし、このままだと列名が「出金額+100」となんか不格好な名前になっているので、「AS」を使ってもっと分かりやすい名前に再定義すると良い。
「AS」とは?
ASを使用すると、列名やテーブル名を違う名称に変更することができる。
使い方は「AS + 任意のキーワード」で変更できる。
SELECT 出金額, 出金額 + 100 AS 百円増しの出金額, 'SQL' FROM 家計簿
INSERT文で計算式を使う場合
INSERT INTO 家計簿(出金額) VALUES (1000+105) => 出金額の行に1105が追加される
UPDATE文で計算式を使う場合
UPDATE 家計簿 SET 出金額 = 出金額+100 => 出金額+100された計算結果が出金額に格納される(変更される)
DBMSの処理の原則
DBMSはテーブル内の表の各行1つづつ、上から順番に1 行づつ(1つづつ)評価して処理していくので、計算式なども1行づつ毎回計算される。
関数
関数の呼び出しに指定した情報を「引数」と言い、その引数をその後に処理(加工)をして、処理されて返ってきた結果の情報を「戻り値」という。
関数の呼び出し方
関数名(引数・・・)
・LENGTH関数を使った例
SELECT メモ, LENGTH(メモ) AS メモの長さ FROM 家計簿 ※LENGTH関数は、受け取っとた引数の文字数を戻り値として返す関数
TRIM関数(空白を除去する)
TRIM関数は引数の空白を除去して返してくれる関数。
ある文字列の前後にある余計な空白を除去したい時にTRIM関数を使うと除去してくれる。
他にもLTRIM関数やRTRIM関数などがある。
・TRIM関数 ・・・ 前後の空白を除去する ・LTRIM関数 ・・・ 左側の空白を除去する ・RTRIM関数 ・・・ 右側の空白を除去する
Rubyの「strip」メソッドと同じ
Rubyではstripメソッドを使用することで、文字列の空白を除去してくれる。
ただし、stripメソッドは「全角の空白」は除去してくれないので、全角の空白を除去したい時は、正規法を使って半角へ変換したのちに除去する。
全角空白を半角に変更する方法
Rubyの「gsub」メソッドを使うことで、変更することができる。
ただし、stripメソッドはgsubメソッドで全角空白→半角空白へ変換した後に実行する様に、後ろにstripメソッドを持ってくる様にする。
str.gusb(//," ").strip