C# Programming

SQL 2008

SELECT

 

1.目次

1.目次
2.SELECT 文
3.SELECT 構文
4.集計関数
5.あいまいな条件抽出
6.範囲の指定
7. 論理演算子
8.JOIN
 8.1 INNER JOIN
 8.2 LEFT_OUTER_JOIN
 8.3 RIGHT OUTER JOIN
 8.4 FULL_OUTER_JOIN
 8.5 CROSS JOIN

2.SELECT 文

 

操作 T-SQL例
すべてのレコードを表示 SELECT * FROM Production.Product
列名を指定してレコードを検索 SELECT Name AS 名前FROM Production.Product
特定のレコードを検索 SELECT * FROM Production.Product WHERE Name='Blade'
あいまいな列名を指定してレコードを表示 SELECT * FROM Production.Product WHERE Name LIKE 'B%'
ある範囲を表示 SELECT * FROM Production.Product WHERE ProductID BETWEEN '300' AND '400'
重複しないで表示する SELECT DISTINCT Color FROM Production.Product
特定のグループごとに表示 SELECT * FROM Person.Address ORDER BY PostalCode
昇順ソートして表示 SELECT * FROM Person.Address ORDER BY PostalCode
昇順ソートして表示 SELECT * FROM Person.Address ORDER BY PostalCode ASC
降順ソートして表示 SELECT * FROM Person.Address ORDER BY PostalCode DESC
集計 -- 市ごとの件数をカウントする。

SELECT CITY, COUNT(City) FROM Person.Address GROUP BY City

特定の条件で集計 -- 101人以上の人がいる市をリストする。

SELECT CITY, COUNT(City) FROM Person.Address GROUP BY City HAVING COUNT(City) > 100

2つ以上のテーブルの結合  SELECT * FROM Person.Address WHERE CITY='Paris'

UNION

SELECT * FROM Person.Address WHERE CITY='London'

3.SELECT 構文

SELECT select_list
FROM table_source
[ WHERE search_condition ]
[ GROUP BY group_by_expression ]
[ HAVING search_condition ]
[ ORDER BY order_expression [ ASC | DESC ] ]
 

4.集計関数

 

集計関数 T-SQL
AVG 平均値
CHECKSUM ハッシュ値 (チェックサム) 計算
CHECKSUM_AGG グループ内にある値のチェックサムを計算
COUNT グループ内の項目数を返す。int型。
COUNT_BIG グループ内の項目数を返す。bigint型。
GROUPING 追加された列を出力する集計関数
MAX 最大値
MIN 最小値
SUM 合計
STDEV 指定された式にあるすべての値の統計的標準偏差。
STDEV ( [ ALL | DISTINCT ] expression )
STDEVP 指定された式のすべての値を母集団として標準偏差。
STDEVP ( [ ALL | DISTINCT ] expression )
VAR 指定された式のすべての値の統計的変位。
VAR ( [ ALL | DISTINCT ] expression )
VARP 指定した式のすべての値について、母集団に対する統計的変位。
VARP ( [ ALL | DISTINCT ] expression )

5.あいまいな条件抽出

パターンと一致するかどうかを判断します。パターンは、標準の文字とワイルドカード文字を含むことができ。ワイルドカード文字は文字列の任意の部分と一致することができ。= や != などの文字列比較演算子を使用する場合と比べて、ワイルドカード文字を使用する方がより柔軟に比較できる。引数が文字列データ型でない場合、SQL Server 2005 データベース エンジン は可能な限り文字列データ型に変換します。
char および varchar データの ASCII LIKE パターン検索と、 ncharおよびnvarchar のUnicode LIKE パターン検索では、結果が異なる場合があるので注意が必要。

 

LIKE 構文
match_expression [ NOT ] LIKE pattern [ ESCAPE escape_character ]

 

ワイルドカード 説明
% -- 0文字以上の任意の文字列にマッチ

WHERE title LIKE '%computer%'

_

 

-- アンダースコア 任意の1文字にマッチ
[ ] -- 指定した範囲の1文字にマッチ

[a-f]、[abcdef]は、a, b, c, d, e, f のどれか1文字にマッチする。

[^] -- 指定した範囲以外の1文字にマッチ

[^a-f]、[^abcdef]は、a, b, c, d, e, f 以外の1文字にマッチする。

例: Contact テーブルで市外局番 415 を持つすべての電話番号を検索する。

Image

 

6.範囲の指定

 

BETWEEN 構文
test_expression [ NOT ] BETWEEN begin_expression AND end_expression

 

操作 T-SQL例
BETWEEN 範囲指定 SELECT * FROM Production.Product WHERE ProductID BETWEEN '300' AND '400'
> < 範囲指定 SELECT * FROM Production.Product

WHERE '300' <= ProductID AND ProductID <= '400'

NOT BETWEEN 範囲指定 SELECT * FROM Production.Product

WHERE NOT ProductID BETWEEN 300 AND 400

例:

SELECT * FROM Production.Product WHERE ProductID BETWEEN '300' AND '400'

Image

7. 論理演算子

 

ワイルドカード 説明
AND 論理積
OR 論理和
[ ] -- 指定した範囲の1文字にマッチ

[a-f]、[abcdef]は、a, b, c, d, e, f のどれか1文字にマッチする。

[^] -- 指定した範囲以外の1文字にマッチ

[^a-f]、[^abcdef]は、a, b, c, d, e, f 以外の1文字にマッチする。

8.JOIN

 

JOINの種類 説明
INNER JOIN 内部結合
LEFT OUTER JOIN 左外部結合
RIGHT OUTER JOIN 右外部結合
FULL OUTER JOIN 完全外部結合
CROSS JOIN クロス結合

以下の例では、次の2つのテーブルを使用した場合のそれぞれのJOINの結果を示します。

Image

8.1 INNER JOIN

 

Image

8.2 LEFT OUTER JOIN

 

Image

8.3 RIGHT OUTER JOIN

 

Image

8.4 FULL OUTER JOIN

 

Image

.5 CROSS JOIN

 

Image 

この場合、社員テーブルが5行、部署テーブルが6行なので、5X6で30行できる。