SQLによる問合せ(データ探索)の基本構文は、次のような形式をとります。
--------------------------- --------------------------------------------
SQLステートメント 意味
--------------------------- --------------------------------------------
SELECT 列名リスト xxx列を抜き出して表示しなさい
FROM テーブル名リスト xxxテーブルから探索して
[WHERE 探索条件] 探索条件が真(true)になる行を選択して
[GROUP BY 列名リスト] xxx列の値でグルーピングして
[HAVING 探索条件] 探索条件が真(true)であるグループを選択して
--------------------------- --------------------------------------------
(※)[ ]内はなくてもよい。
■ すべての列を指定する
/* ch02-1 */
SELECT *
FROM 社員 ;
|
テーブル商品から、すべての行について、すべての列を抜き出して表示します。
* は、すべての列を意味する総称文字です。
< 実行結果ch02-1 >

■ 1 個以上の列を指定する
/* ch02-2 */
SELECT 氏名, 在籍支社
FROM 社員 ;
|
テーブル商品から、すべての行について,列「氏名」と「在籍支社」を抜き出し表示します。
列名が複数あるときは、,(カンマ)で区切ります。
< 実行結果ch02-2 >

■ 別名をつける
/* ch02-3 */
SELECT 氏名 AS 名前, 社員コード
FROM 社員 ;
|
列名を指定したいときは、 AS
新列名を付け加えればいいです。
新列名は、'(single quotation)で挟まなくてもいいです。
そうすると、社員の列名”氏名”が、”名前”に変更されます。
< 実行結果ch02-3 >

■ 計算式
/* ch02-4 */
SELECT 商品名, 単価, 単価 * 1.05 AS 消費税込価格
FROM 商品 ;
|
SELECT句の列名リストに計算式を書くことができます。
計算式からなる列は、新たな列とみなされて、自動的に設定された列名が表示されます。
計算式で使用することのできる主な算術演算子として次のものがあります。
算術演算子 使用例 意味(XとYは列名か数値である)
---------- ------- ------------------------------
* 掛算 X * Y XにYを掛ける。
/ 割算 X / Y XをYで割る。
+ 足算 X + Y XにYを足す。
- 引算 X - Y XからYを引く。
^ べき乗 X ^ Y XをY乗する。
Mod 余り X Mod Y XをYで割った余り。
\ 商 X \ Y XをYで割った商。
(注)JIS規格SQLでは、”^”、”Mod”、”\”の演算子はない。
< 実行結果ch02-4 >

■ ALL と DISTINCT について
/* ch02-5 */
SELECT ALL 部署
FROM 仕入先 ;
|
/* CH02-6 */
SELECT DISTINCT 部署
FROM 仕入先 ;
|
上記2つを実行し、見比べてみましょう。
ALL(省略可)は、いくつかの行で値が重複していても、そのまま重複した行のまま表示されます。
このように重複した値をとる集合をマルチ集合(multi-set)といいます。
DISTINCTは、テーブル仕入先から、すべての行について、列「部署」を抜き出して表示します。
このとき重複のない部署名の集合として抜き出します。
SELECT句でDISTINCTという修飾語をつけると、マルチ集合ではなくなります。
< 実行結果ch02-5 >

< 実行結果ch02-6 >

|