SQLで使う算術演算子。選択列リストや値に計算式を用いる

今回は、SQLで使う算術演算子について説明します。

SELECTでテーブルのデータを抽出するときや、INSERTで値を挿入するときUPDATEで値を更新するときに、それぞれ算術演算子を使うことができます。

この記事では、SQLで使える算術演算子と計算の優先順位、実際の使い方を説明します。

目次

SQLで使う算術演算子

まずは、SQLで使う算術演算子の一覧と計算の優先順位について説明します。

算術演算子の一覧

算術演算子用途説明
+加算値をたし算する
減算値をひき算する
*乗算値をかけ算する
/除算値をわり算する
DIV剰余わり算結果の整数
%剰余わり算結果の余り
算術演算子

計算の優先順位

SQL文の算術演算子を用いた計算式では、算数の四則演算と同じ優先順位で計算されます。

  1. [*],[/],[DIV],[%]・・かけ算、わり算
  2. [+],[-]・・たし算、ひき算

まずかけ算とわり算が計算され、次にたし算とひき算の順番です。なお、算数の概念と同じく()を使うことで、優先順位を制御することもできます。

優先順位の制御

①通常の計算
1+2*3=7

②()を使った場合
(1+2)*3=9

算術演算子の使い方

次に、算術演算子を使うときの基本文法の説明と実例を紹介します。

基本文法

–SELECT
SELECT * 列名1,列名2 + 100 FROM テーブル名;

このSQL文で、テーブルから列名1列名2のそれぞれの値に100を足したデータが抽出されます

–INSERT INTO
INSERT INTO テーブル名(カラム名)
VALUES(100 * 1.10);

このSQL文で、指定したカラムに100に1.10をかけた値が挿入されます

–UPDATE
UPDATE テーブル名
SET カラム名 = カラム名 * 1.10;

このSQL文で、指定したカラムの値が1.10をかけた値に更新されます

実例

算術演算子を使ったSQL文とその結果について、MySQLで実行した画面を紹介します。この実例で使うテーブルは下記の通りです。

idsta_namesta_pricestock
B001えんぴつ削り19001
B002水性ペン15010
B003ふせん紙25020
B004カッター3805
B005消しゴム8012
B006ペンケース10003
B007はさみ6805
B008テープ糊4507
B009電子メモパッド13803
B010ノート18025
テーブル名:Stationery

+(加算)

SELECT sta_name,stock,stock + 1 FROM Stationery;

在庫数(stock)の値に1を足した結果を「stock + 1」のカラムに表示

-(減算)

SELECT sta_name,stock,stock - 1 FROM Stationery;

在庫数(stock)の値から1を引いた結果を「stock – 1」のカラムに表示

*(乗算)

SELECT sta_name,sta_price,stock,sta_price * stock FROM Stationery;

商品価格(sta_price)に在庫数(stock)をかけた結果を「sta_price * stock」のカラムに表示

/(徐算)

商品価格(sta_price)を2で割った結果を「sta_price / 2」のカラムに表示

DIV(わり算の整数部)

商品価格(sta_price)を3で割った結果の整数部のみを「sta_price DIV 3」のカラムに表示

%(わり算の余り)

商品価格(sta_price)を3で割った結果の余りを「sta_price % 3」のカラムに表示

AS区の併用

今回の実例では、「stock + 1」や「sta_price % 3」のように、SQL文で記述した計算式がカラム名として表示されていますが、この状態では計算式は分かっても、何を意味するデータ列なのか、客観的に判読し辛くなります。

計算式を使って抽出する列については、AS区を使って列名を分かりやすくしたほうがよいでしょう。

既存の列名も含めて日本語表記にした。計算式を使った列「商品価格 × 在庫数」も意味が伝わりやすい

あとがき

今回は、SQLで使う算術演算子の種類と基本文法、実例について記事にしました。

演算子自体は、Excelや他のプログラミング言語と同一のため、特に難しいことではありません。算術演算子は、データベースからの出力結果を様々な状態に加工して活用するための基本知識です。

ぜひ、実際に使って覚えてください。

目次