C# Programming

Image

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

.SELECT 文

 

操作 T-SQL例
すべてのレコードを表示 SELECT * FROM 郵便番号
列名を指定してレコードを検索 SELECT 都道府県 AS 県名 FROM 郵便番号
特定のレコードを検索 -- 郵便番号を番号とする

SELECT 郵便番号 AS 番号 FROM dbo.郵便番号 WHERE 都道府県 = '東京都'

あいまいな列名を指定してレコードを表示 SELECT 都道府県 AS 県名 FROM 郵便番号 WHERE 都道府県 LIKE '%県'
ある範囲を表示 SELECT 郵便番号 FROM 郵便番号 WHERE 郵便番号 BETWEEN '1230000' AND '1239999'
重複しないで表示する SELECT DISTINCT 都道府県 AS 県名 FROM 郵便番号
特定のグループごとに表示 SELECT * FROM 郵便番号 GROUP BY 都道府県名
昇順ソートして表示 --郵便番号で昇順のテーブル

SELECT * FROM 郵便番号 ORDER BY 郵便番号

昇順ソートして表示 --郵便番号で昇順のテーブル

SELECT * FROM 郵便番号 ORDER BY 郵便番号 ASC

降順ソートして表示 --郵便番号で降順のテーブル

SELECT * FROM 郵便番号 ORDER BY 郵便番号 DESC

集計 --都道府県ごとに割り振られている郵便番号の数を集計

SELECT 都道府県, COUNT(郵便番号) FROM dbo.郵便番号 GROUP BY 都道府県

特定の条件で集計 --都道府県ごとに割り振られている郵便番号の数が3000以上のものを集計

SELECT 都道府県, COUNT(郵便番号) FROM dbo.郵便番号 GROUP BY 都道府県 HAVING COUNT(郵便番号) >= 3000

2つ以上のテーブルの結合  --港区と新宿区の郵便番号のテーブル

SELECT * from dbo.郵便番号 WHERE 市区 LIKE '港区'
UNION
SELECT * from dbo.郵便番号 WHERE 市区 LIKE '新宿区'

.SELECT 構文

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例
SUM 合計
COUNT データの個数
MAX 最大値
MIN 最小値
AVG 平均値

.あいまいな条件抽出

 

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文字にマッチする。

 

.範囲の指定

 

BETWEEN 構文
test_expression [ NOT ] BETWEEN begin_expression AND end_expression

 

操作 T-SQL例
BETWEEN 範囲指定 SELECT ID, 都道府県 FROM dbo.都道府県
WHERE ID BETWEEN 10 AND 15
> < 範囲指定 SELECT ID, 都道府県 FROM dbo.都道府県
WHERE ID > 10 AND ID < 15
NOT BETWEEN 範囲指定 SELECT ID, 都道府県 FROM dbo.都道府県
WHERE NOT ID BETWEEN 10 AND 15

 

. 論理演算子

 

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

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

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

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

.JOIN

 

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

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

Image

.1 INNER JOIN

 

Image

.2 LEFT OUTER JOIN

 

Image

.3 RIGHT OUTER JOIN

 

Image

.4 FULL OUTER JOIN

 

Image

.5 CROSS JOIN

 

Image 

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