|
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
|
|
操作 |
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' |
|
|
SELECT select_list FROM table_source [ WHERE search_condition
] [ GROUP BY group_by_expression ] [ HAVING search_condition ]
[ ORDER BY order_expression [ ASC | DESC ] ]
|
|
集計関数 |
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 ) |
|
|
パターンと一致するかどうかを判断します。パターンは、標準の文字とワイルドカード文字を含むことができる。ワイルドカード文字は文字列の任意の部分と一致することができる。=
や != などの文字列比較演算子を使用する場合と比べて、ワイルドカード文字を使用する方がより柔軟に比較できる。引数が文字列データ型でない場合、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 を持つすべての電話番号を検索する。
|
|
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'
|
|
ワイルドカード |
説明 |
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の結果を示します。
|
8.1 INNER JOIN
|
|
8.2 LEFT OUTER JOIN
|
|
8.3 RIGHT OUTER JOIN
|
|
8.4 FULL OUTER JOIN
|
|
|
この場合、社員テーブルが5行、部署テーブルが6行なので、5X6で30行できる。
|