logo
     

メニュー
↓ SQL ↓
●データ取得の基本(SELECT)

⇒取得条件の指定(WHERE)

●計算式を利用する

●取得データの並べ替え
      (ORDER BY)


●別名を付ける

●データを集計(グループ化)する

●テーブルの結合
      (INNER JOIN)


●テーブルの結合
      (OUTER JOIN)


●テーブルの結合
      (CROSS JOIN)


●重複行の排除(DISTINCT)

●副問い合わせ(サブクエリ)

●相関副問い合わせ
      (相関サブクエリ)


●クエリの結合

●文字列値を連結する

●文字列の一部を取り出す

●文字列を置換する

●NULLを置き換える

●条件によって置き換える

↓SQL Server 2012 Express↓
●SQL Server 2012 Express
      インストール


●SQL Server 2012 Express
      ネットワークの構成


●SQL Server 2012 Express
      ログインユーザの作成


●SQL Server 2012 Express
      データベースの作成


●SQL Server 2012 Express
      テーブルの作成


●SQL Server 2012 Express
      SQLの実行


●復旧モデルとバックアップ

↓ 番外編 ↓
●Windows Server 2012 評価版
      インストール


●Windows Server 2012
      スタートメニュー利用方法


●Windows Server 2012
      シャットダウン・再起動方法


●Windows Server 2012
      サーバーマネージャ自動起動無効


●Windows Server 2012
      コンピュータ名・ドメイン変更


取得条件の指定(WHERE)



SELECT文でデータを取得する際に、
条件に一致したデータのみ取得したい場合はWHERE句を利用します。

文法:WHERE <列名1> <比較演算子> <値など> [<AND | OR> <列名2> <比較演算子> <値など>…]

複数の条件を利用する場合は、各条件を“AND”もしくは“OR”で繋ぎます。
ANDは“且つ”の意味を持ち、ORは“又は”の意味を持ちます。
また、“AND”と“OR”には優先順位があり、単純に並べると“AND”が優先されます。
数式で“1 + 2 * 3”は“2 * 3”を優先するのと同様です。
先に“1 + 2”を計算する場合に括弧を付けるのと同様に、WHERE句においても優先したいものがあれば、括弧を利用します。
また、列と値を比較する場合、列の型が文字型(charやvarchar)の場合は、値を’(シングルクォート)で囲みます。

よく利用される比較演算子
例 意味
列名1 = 256 列名1の値が256
列名1 = '東京都' 列名1の値が東京都
列名1 > 256 列名1の値が256より大きい
列名1 >= 256 列名1の値が256以上
列名1 < 256 列名1の値が256より小さい
列名1 <= 256 列名1の値が256以下
列名1 <> 256 列名1の値が256でない
列名1 BETWEEN 10 AND 20 列名1の値が10〜20 の範囲内(10,20も含む)
列名1 NOT BETWEEN 10 AND 20 列名1の値が10〜20 の範囲外(10,20 は含まない)
列名1 IN (1, 3, 5) 列名1の値が 1, 3, 5 のいずれか
列名1 NO IN (1, 3, 5) 列名1の値が 1, 3, 5 のいずれにも一致しない
列名1 LIKE '東京%' 列名1の値が東京から始まる任意の文字列
列名1 LIKE '%東京' 列名1の値が東京で終わる任意の文字列
列名1 NOT LIKE '東京%' 列名1の値が東京から始まる任意の文字列でない
列名1 IS NULL 列名1がNULL値
列名1 IS NOT NULL 列名1がNULL値でない

***例***
[社員マスタ]
所属コード 社員コード 氏名
01 001 テスト一郎
01 002 テスト二郎
02 001 テスト三郎
03 001 テスト四郎


[実行SQL]
SELECT
  *
FROM
  社員マスタ
WHERE
  (所属コード = '01' OR 所属コード = '03') AND
  社員コード = '001'

*上記は比較演算子INを利用すると以下のように書くこともできます

SELECT
  *
FROM
  社員マスタ
WHERE
  所属コード IN ('01', '03') AND
  社員コード = '001'


[結果]
所属コード 社員コード 氏名
01 001 テスト一郎
03 001 テスト四郎

***例2(IN句に複数列を指定した例)***
※※SQLServerでは文法エラーになるっぽい

[社員マスタ]
所属コード 社員コード 氏名
01 001 テスト一郎
01 002 テスト二郎
02 001 テスト三郎
03 001 テスト四郎


[実行SQL]
SELECT
  *
FROM
  社員マスタ
WHERE
  (所属コード, 社員コード) IN (('01', '001'), ('03', '001'))
※INの中は SELECT 列1, 列2 FROM 表1 のようなSELECT句でもいけます

[結果]
所属コード 社員コード 氏名
01 001 テスト一郎
03 001 テスト四郎
<<PR>> ネットワークセキュリティを見直しませんか
価格:300円
現役SEが語るSEの仕事あれこれ-これから就職を希望する人へ-
価格:300円