- 加算 +
- 減算 -
- 乗算 *
- 除算 /
- 剰余 %
書式 <列名または数値> <算術演算子> <列名または数値>
それぞれの演算子について解説していきます。ここから先では、実際に表が作られていることを前提に話を進めます。表の作り方についてはこちらを参照してください。また、SELECT文を使って表の操作をしていますが、SELECT文を使った問合せについては、こちらで解説します。 

【SQLの基礎知識⑨】 データベース・表の作成と削除
この章では、データベース・表の作成と削除のやり方を習得できます。プライマリキーやデフォルト値の設定方法など実践で役立つ手順を解説しています。いちれべ.comは、オラクル、MS-SQL、MS-Access で使用可能か一目でわかるサイトです。
加算演算子
加算演算子(+)は、足し算をするための演算子です。加算演算子を使うと、列の値に数値を加えたり、列同士を足したりすることができます。 ここでは、次の「商品マスタ」を例に考えてみます。表:商品マスタ
商品番号 | 商品名 | 単価 | 仕入れ値 | 個別包装費 | 数量 |
---|---|---|---|---|---|
1 | LANケーブル | 800 | 560 | 50 | 15 |
2 | CD-Rメディア | 200 | 140 | 10 | 20 |
3 | マウス | 2000 | 1400 | 100 | 6 |
4 | ハードディスク | 12000 | 8400 | 600 | 3 |
5 | CPU | 20000 | 14000 | 1000 | 2 |
まず、列の値に数値を足す使用例として、「仕入れ値」列の値に「20」を足してみます。
SQL文 SELECT 商品名, 仕入れ値 + 20 FROM 商品マスタ; 実行結果
商品名 | 仕入れ値+20 |
---|---|
LANケーブル | 580 |
CD-Rメディア | 160 |
マウス | 1420 |
ハードディスク | 8420 |
CPU | 14020 |
結果を見ると、「仕入れ値」列の値に「20」を足した値が返されていることがわかります。
なお、問合せ結果の列名が「仕入れ値+20」と、計算の記述がそのまま表示されてしまっています。列名に演算子が入っていて見づらいと思う場合には、別名を指定することで解消することができます。別名についてはこちらを参照してください。

【SQLの基礎知識⑩】 データ問合せの基本
この章では、SQLの基本中の基本と言っていいSELECT文について解説しています。また、重複した値をまとめるDISTINCTについても説明しています。いちれべ.comは、オラクル、MS-SQL、MS-Access で使用可能か一目でわかるサイトです。
また、列同士を足し合わせることもできます。「仕入れ値」列と「個別包装費」列の値を足す場合には次のようにします。
SQL文 SELECT 商品名, 仕入れ値 + 個別包装費 FROM 商品マスタ; 実行結果
商品名 | 仕入れ値+個別包装費 |
---|---|
LANケーブル | 610 |
CD-Rメディア | 150 |
マウス | 1500 |
ハードディスク | 9000 |
CPU | 15000 |
このように、数値型の列と列を加算演算子で接続すれば、簡単に合計を計算することができます。
減算演算子
減算演算子(ー)は、引き算をするための演算子です。減算演算子を使うと問合せ結果に対して、列から数値を引いたり、列同士の引き算をしたりすることができます。 列から数値を引く例題は次のようになります。 SQL文 SELECT 商品名, 単価 - 15 FROM 商品マスタ; 実行結果
商品名 | 単価 - 15 |
---|---|
LANケーブル | 785 |
CD-Rメディア | 185 |
マウス | 1985 |
ハードディスク | 11985 |
CPU | 19985 |
表:商品マスタ
商品番号 | 商品名 | 単価 | 仕入れ値 | 個別包装費 | 数量 |
---|---|---|---|---|---|
1 | LANケーブル | 800 | 560 | 50 | 15 |
2 | CD-Rメディア | 200 | 140 | 10 | 20 |
3 | マウス | 2000 | 1400 | 100 | 6 |
4 | ハードディスク | 12000 | 8400 | 600 | 3 |
5 | CPU | 20000 | 14000 | 1000 | 2 |
SQL文 SELECT 商品名, 個別包装費, - 個別包装費 FROM 商品マスタ; 実行結果
同じ「個別包装費」列をお並べて問合せているのですが、前に「-」を入れると、数値の符号が逆転していることがわかります。商品名 | 個別包装費 | -個別包装費 |
---|---|---|
LANケーブル | 50 | -50 |
CD-Rメディア | 10 | -10 |
マウス | 100 | -100 |
ハードディスク | 600 | -600 |
CPU | 1000 | -1000 |
乗算演算子
乗算演算子「*」は、掛け算をするための演算子です。列の値に一定の数値を掛けたり、列の値同士の掛け算に使います。 列の値に一定の数値を掛けるときは次のようになります。 SQL文 SELECT 商品名, 単価 * 1.05 FROM 商品マスタ; 実行結果
商品名 | 単価 * 1.05 |
---|---|
LANケーブル | 840 |
CD-Rメディア | 210 |
マウス | 2100 |
ハードディスク | 12600 |
CPU | 21000 |
表:商品マスタ
商品番号 | 商品名 | 単価 | 仕入れ値 | 個別包装費 | 数量 |
---|---|---|---|---|---|
1 | LANケーブル | 800 | 560 | 50 | 15 |
2 | CD-Rメディア | 200 | 140 | 10 | 20 |
3 | マウス | 2000 | 1400 | 100 | 6 |
4 | ハードディスク | 12000 | 8400 | 600 | 3 |
5 | CPU | 20000 | 14000 | 1000 | 2 |
SQL文 SELECT 商品名, 単価 * 数量 FROM 商品マスタ; 実行結果
商品名 | 単価 * 数量 |
---|---|
LANケーブル | 12000 |
CD-Rメディア | 4000 |
マウス | 12000 |
ハードディスク | 36000 |
CPU | 40000 |
除算演算子
除算演算子(/)は、割り算をするための演算子です。除算演算子を使うと、列の値を一定の数値で割ったり、列同士の割り算ができます。 「商品マスタ表」の「単価」列を「2」で割る場合には、次のように入力します。 SQL文 SELECT 商品名, 単価 / 2 FROM 商品マスタ; 実行結果
商品名 | 単価 / 2 |
---|---|
LANケーブル | 400 |
CD-Rメディア | 100 |
マウス | 1000 |
ハードディスク | 6000 |
CPU | 10000 |
表:商品マスタ
商品番号 | 商品名 | 単価 | 仕入れ値 | 個別包装費 | 数量 |
---|---|---|---|---|---|
1 | LANケーブル | 800 | 560 | 50 | 15 |
2 | CD-Rメディア | 200 | 140 | 10 | 20 |
3 | マウス | 2000 | 1400 | 100 | 6 |
4 | ハードディスク | 12000 | 8400 | 600 | 3 |
5 | CPU | 20000 | 14000 | 1000 | 2 |
SQL文 Oracle SELECT 商品名, 単価 / 0 FROM 商品マスタ; 実行結果 エラー行: 1: エラーが発生しました。 ORA-01476: 除数がゼロです。

【SQL】 切り捨てと切り下げの違いについての話
切り下げとは?切り捨てとの違いについて解説しています。マイナスの値を切り下げするときには、特に注意が必要で、予期せぬ結果を招くことがあります。SQLサーバーの切り捨てについても解説しています。オラクル、MSアクセスそれぞれ端数処理した結果もわかりやすく解説しています。
剰余演算子
剰余演算子(%)は、割り算の結果の余りを求める演算子です。「商品マスタ」表の「数量」列を「2」で割ったときの余りを計算すると次のようになります。 SQL文 SELECT 商品名, 数量, 数量 % 2 FROM 商品マスタ; 実行結果
「数量」列の値が「20」や「6」といったものは余りがないので「0」が結果となり、「15」や「3」では「1」が余るという結果を出力しています。 なお、ORACLE では%演算子が使えないため、MOD関数を使います。MOD関数については、こちらを参照してください。 https://ichilv.com/sql-mod/商品名 | 数量 | 数量 % 2 |
---|---|---|
LANケーブル | 15 | 1 |
CD-Rメディア | 20 | 0 |
マウス | 6 | 0 |
ハードディスク | 3 | 1 |
CPU | 2 | 0 |
算術演算の優先順位と制御
演算には優先順位があります。この優先順位は通常の数学の計算と同様に、乗算、除算が加算、減算よりも優先されます。加算、減算を乗算、除算よりも先に計算したい場合は、「()」で囲みます。また、剰余演算は、乗算、除算と同じ優先順位です。 優先順位を整理すると次の順番になります。- ( )で囲んだ演算
- 乗算、除算、剰余
- 加算、減算
SQL文 SELECT 商品名, (仕入れ値 + 個別包装費) * 数量 FROM 商品マスタ; 実行結果
商品名 | ( 仕入れ値 + 個別包装費 ) * 数量 |
---|---|
LANケーブル | 9150 |
CD-Rメディア | 3000 |
マウス | 9000 |
ハードディスク | 27000 |
CPU | 30000 |
関連リンク
次の章に進む

【SQLの基礎知識④】 SQLにおける連結演算子の基本
この章では、SQLで文字列を連結するテクニックを習得できます。いちれべ.comは、オラクル、MS-SQL、MS-Access で使用可能か一目でわかるサイトです。
目次

【SQLの基礎知識】基本ルールや基礎の基礎をマスターしよう
こちらの記事を読み進めることで、SQLの基礎が充分に身に付きます。これからSQLを身に着けたい初心者・入門者の方に最適です。データベース製品ごとに表現方法が異なることがありますので、ある程度SQLのスキルがある方も利用できるサイトです。