四則演算(足し算、引き算、掛け算、割り算)を使ったSELECT

SQLの基本であるSELECT文。その中でもベースとなる基本的なSELECT文です。

覚えるべきキーワード
・SELECT 列名 FROM 表名
・SELECT * FROM 表名
・+(足し算)
・-(引き算)
・*(掛け算)
・/(割り算)
・( )

では早速、例文を使いながら基本的SELECT文の使い方を紹介していきましょう。

SELECT 列名 FROM 表名

最も、最も、もっとも簡単でベースとなるSELECT文です。列名には取得したい列、表名は取得したい列名のテーブルを記載します。ではまずサンプルのテーブルです。このテーブルを対象にSELECT文を実行します。

(テーブル:EMPLOYEE)

ID NAME AGE
10 SASAKI 29
11 KATOU 30

このテーブルに対してSELECT文を実行します。

SELECT 列名 FROM 表名
SELECT name FROM employee;

(テーブル:EMPLOYEE)

NAME
SASAKI
KATOU

すべてのnameのデータを取得できるので、nameに入っているSASAKI、KATOUが取得できます。とても簡単なSELECT文です。列名には複数の列名を指定することも可能です。

SELECT 列名 FROM 表名
SELECT id,name FROM employee;

(テーブル:EMPLOYEE)

ID NAME
10 SASAKI
11 KATOU

列名を,(カンマ)で区切れば記載した列名分のデータをすべて取得ができます。

SELECT * FROM 表名

列名の代わりに*(アスタリスク)を指定したSELECT文です。*(アスタリスク)を指定するとテーブルに入っている「すべて」の列名のデータを取得できます。さきほどのテーブルを例に*のSELECT文を実行してみます。

SELECT * FROM 表名
SELECT * FROM employee;

この結果は以下になります。

(テーブル:EMPLOYEE)

ID NAME AGE
10 SASAKI 29
11 KATOU 30

たしかにすべてのテーブルデータが取得できていますね。ちなみにSELECT * FROM employee;とSELECT id,name,age FROM employee;は同じ結果になります。すべての列名を指定したSELECT文は*を指定したSELECT文とイコールということです。

+(足し算)、-(引き算)

+と-を使った算術式です。冒頭のテーブルを使って実行してみましょう。

+(足し算)
SELECT age + 10 FROM employee:
これを実行した結果が以下です。

(テーブル:EMPLOYEE)

AGE
39
40

冒頭のageのデータにそれぞれ+10ずつされて表示されているのが分かりますね。
SELECT age FROM employee:だと29、30を表示しますが、select対象の列名に+10しているのでそれぞれ足し算されています。

*(掛け算)、/(割り算)

*と/を使った算術式です。冒頭のテーブルを使って実行してみましょう。

*(掛け算)
SELECT age *2 FROM employee;
これを実行した結果が以下です。

(テーブル:EMPLOYEE)

AGE
58
60

冒頭のageのデータをそれぞれ×2して表示されているのが分かりますね。

( )を使った算術式

このように+、-、*、/を使えば、テーブルから取り出したデータを計算した結果を表示できます。しかし、今まで例に出したサンプルのSQLはあくまで基本です。実際はもっと複雑に算術をする場合があります。

SELECT age + 10 + age *2 FROM employee;

この場合はどうなるのでしょう。どこから計算するのでしょうか。
実はSQLの計算順も実際に僕らが普段する計算と同じ順番です。
まずは*、/が優先で次に+、-がきます。そして*と/を同じSELECTの中に使っていたら、左から順番に計算していきます。これも実際の計算と同じです。

SELECT age*10 /2 FROM employee;

このSELECT文はage*10を計算した後に/2をします。まあ一般的な計算方法なので、しっくりくると思います。
では、このテーマの最初に出てきた以下のSELECT文。

SELECT age + 10 + age *2 FROM employee;

この場合はage*2をした後に一番左のage+10を+して、さらにage*2の結果を+しますので、以下の結果になります。

(テーブル:EMPLOYEE)

AGE
97
100

もし、+や-を先に計算したいなどがあれば、( )を使ってください。これも一般的な計算と同じです。先ほどのSQLを少しアレンジしてみましょう。

( )の算術式
SELECT age +( 10 + age) *2 FROM employee;
こうすると先に10+ageをするので結果は以下になります。

(テーブル:EMPLOYEE)

AGE
107
110

このようにSQLの算術式は一般的な算術式と同じなので抵抗なく理解できると思います。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です