Dreamweaver TechniqueJAVA Script サンプル | CSS sample | JAVA Applet sample | Flash Sample
HTML4.0 riference | DynamicHTMLXHTML | XML sample | XSLT sample | RIKO's ASP Trial

条件に合ったレコードを取得(WHERE)

■ 条件に合ったレコードを取得:WHERE

WHEREキーワードを使うと、条件に合ったレコードだけを取得することができます。書式は以下のようになります。

SELECT [列名], [列名], ........ FROM [テーブル名] WHERE [条件式];

WHERE の条件式では、レコードの列データと固定値を比較します。比較条件には6種類の比較演算子を使用できます。これらの演算子は、文字列と数値のどちらにも使えます。

-- = (イコール)
SELECT * FROM myTable WHERE ID = 10;   -- IDが10のレコードを取得 
SELECT * FROM 住所録 WHERE name = '植木';   -- nameが'植木'のレコードを取得 

-- <、 <= (右辺より小さい、右辺以下)
SELECT 名前 FROM 商品 WHERE 価格 < 500 ;   -- 価格が500より小さいレコードを取得 
SELECT 番号 FROM 期末試験 WHERE 数学 <= 40 ;   -- 数学が40以下のレコードを取得

-- >、 >= (右辺より大きい、右辺以上)
SELECT 名前 FROM 申し込み WHERE ID > '300A' ;   -- IDが '300A'よりも大きいレコードを取得 
SELECT 番号 FROM 期末試験 WHERE 英語>= 80 ;   -- 英語が80以上のレコードを取得 

 -- <> (否定)
SELECT * FROM myTable WHERE ID <> 10;   -- IDが10でないレコードを取得
SELECT * FROM 住所録 WHERE name <> '植木';   -- nameが'植木'でないレコードを取得 

■ LIKEとワイルドカード

WHEREキーワードで文字列を比較するときには、LIKEキーワードとワイルドカードを使って、=よりも柔軟な検索を行うことができます。 = の時には全く同じ文字列でなければ条件が真になりませんが、LIKEのキーワードを使うと文字列内で部分的に一致するだけで条件が真になります。ワイルドカードには、文字列の制限のない%%(パーセント)と、1文字にマッチする_(アンダーバー)の2種類があります。%は前方一致や後方一致の比較の場合に使い、_ は決まった文字の長さで比較する場合に使います。ワイルドカードを複数指定して、文字列の前後に%を指定したり、_ を続けて指定したりもできます。

-- %(パーセント)
SELECT 名前, 住所 FROM 住所録 WHERE 名前 LIKE '植木%' ;   -- 名前の先頭が'植木'で始まるレコードを取得 
SELECT * FROM 商品 WHERE 説明 LIKE '%健康%' ;          -- 説明内に'健康'を含むレコードを取得 

-- _ (アンダーバー)
SELECT * FROM 予約 WHERE テーブル LIKE 'C_' ;   -- テーブルが'C'と任意の1文字で構成されているレコードを取得 
SELECT ID, 名前 FROM 名簿 WHERE 入室時間 LIKE '10:__' ;   -- 入室時間が'10:'と任意の2文字で構成されているレコードを取得

■ 複数条件の指定:論理演算子

論理演算子を使えば、WHEREキーワードの後に条件を重ねてより細かく指定することができます。

-- OR (どちらかの条件が成り立てば、真)
SELECT 名前, 住所 FROM 住所録 WHERE 人数 = 2 OR 人数 = 3 ;   -- 人数が2か3であるレコードを取得 
SELECT * FROM 商品 WHERE 説明 LIKE '%健康%' ;          -- 説明内に'健康'を含むレコードを取得 

-- AND (すべての上位権が成り立てば、真)
SELECT 名前, 住所 FROM 住所録 WHERE 名前 LIKE '植木%' ;   -- 名前の先頭が'植木'で始まるレコードを取得 
SELECT * FROM 商品 WHERE 説明 LIKE '%健康%' ;          -- 説明内に'健康'を含むレコードを取得 

-- NOT (条件が成り立たなければ、真)
SELECT 名前, 住所 FROM 住所録 WHERE 名前 LIKE '植木%' ;   -- 名前の先頭が'植木'で始まるレコードを取得 
SELECT * FROM 商品 WHERE 説明 LIKE '%健康%' ;          -- 説明内に'健康'を含むレコードを取得 

■ 複数条件の指定:INとBETWEEN
WHEREキーワードを使うと、条件に合ったレコードだけを取得することができます。書式は以下のようになります。
SELECT [列名], [列名], ........ FROM [テーブル名] WHERE [条件式];
R HOUSE | RIKO's Trial Page | Shirley's Pettit Case | Shirley's i-box | Shirley's little box