トップページ > Sql Server 入門 >  Sql Server SELECT文

Sql Server SELECT文

SELECT文とは!?

データベース(SqlServer)から行を取得し、
1 つ以上のテーブルから 1 つ以上の行または列を選択できるようにします。

○ サンプルテーブル(テーブル名:商品)
No 商品    単価
------------------------
2  紙      10
3  ジュース  110
1  手紙    50
4  ラジオ   9000
5  SqlServer 9000

SELECT文ですべての行・列を取得するには!?

○ Sql文
SELECT * FROM 商品

○ 説明
テーブル商品のデータすべてを取得します。
「*」は、行すべての意味となります。

○ 結果
No 商品    単価
------------------------
2  紙      10
3  ジュース  110
1  手紙    50
4  ラジオ   9000
5  SqlServer 9000

SELECT文で指定の列のみを取得するには!?

○ Sql文
SELECT No FROM 商品

○ 説明
テーブル商品のNo行すべてを取得します。

○ 結果
No 
----
2
3
1
4
5

SELECT文に条件を付けて取得するには?(数値)

○ Sql文
SELECT * FROM 商品 WHERE No = 1

○ 説明
Noが「1」のデータを取得します。

○ 結果
No 商品    単価
------------------------
1  手紙    50

SELECT文に条件を付けて取得するには?(文字)

○ Sql文
SELECT No FROM 商品 WHERE 商品 = '紙'

○ 説明
商品が「紙」のデータを取得します。
文字の場合は、両端に「'」を付けます。

○ 結果
No 商品    単価
------------------------
2  紙      10

上位3つだけ取得するには

○ Sql文
SELECT TOP 3 商品

○ 説明
上位の3つだけを取得することが可能です。
TOPには、もう1つメリットがあります。
TOPを指定していると3つ見つかったらSELECTを終了します。

つまり、検索結果が早くなるのです。


○ 結果
No 商品    単価
------------------------
2  紙      10
3  ジュース  110
1  手紙    50

結果を取得する時に昇順と降順を使い分ける

○ Sql文
昇順:SELECT * FROM 商品 ORDER BY NO ASC
降順:SELECT * FROM 商品 ORDER BY NO DESC

○ 説明
結果を取得する時に、??の昇順とか降順に
並べたい場合があります。
その際に使用するものが「ORDER BY 句」です。

○ 結果
結果は、実際に昇順と降順をどちらも
やってみてくださいね!!!

GROUP化して合計値を求める

○ サンプルテーブル(テーブル名:商品)
No 商品    金額
------------------------
2  紙      10
3  ジュース  110
1  紙     50
4  ジュース 9000
5  ジュース 9000

○ Sql文
SELECT SUM(金額) FROM 商品 GROUP BY 商品

○ 説明
GROUP BY句は、名前の通りグループ化してくれます。
同じものを1つにしてくれるのです。

基本的な機能ですが、かなり使えるので覚えておくと良いですよ。

○ 結果
商品    金額
------------------------
紙      60
ジュース  18110

SELECTとSELECTを結合

SELECTとSELECTを結合する場合は、
UNIONを使用します。

○ サンプルテーブル(テーブル名:商品)
No 商品    金額
------------------------
2  紙      10
3  ジュース  110
1  紙     50
4  ジュース 9000
5  ジュース 9000

○ Sql文
SELECT * FROM 商品
UNION
SELECT * FROM 商品

○ 説明
SELECTとSELECTを結合してくれます。
カラムの数と型が同じである必要があります。

何度が使用するタイミングが出てくると思いますよ。

○ 結果
商品    金額
------------------------
2  紙      10
3  ジュース  110
1  紙     50
4  ジュース 9000
5  ジュース 9000
2  紙      10
3  ジュース  110
1  紙     50
4  ジュース 9000
5  ジュース 9000

早く必要なデータを取得する場合は

データ量の多いデータベースから
データを取得する場合は、
パソコンの性能にもよりますが、時間があかります。


データの取得を早くする方法は、
1、インデックスキーを付ける。

2、SELECTにWHERE句で条件文を付ける。
  ※ 条件の付け方によって、速度が変わるので良く考えましょう。

3、取得できるデータ数が分かっている場合は、TOPを使用しましょう。


SQL Serverの場合は、固定メモリにすると
処理速度が速くなります。
ただ、メモリが開放されないので、気をつけましょう。

同時に計算を行ってもらう

同時に計算をすることができます。

○ Sql文
SELECT No + 金額 FROM 商品

○ 説明
「No + 金額」とすることで、
Noと金額の足し算を行った結果が
SELECT文の結果として返されます。

覚えておくと役に立つと思います。

CASE文を使用して取得

○ サンプルテーブル(テーブル名:商品)
No 商品名  金額
------------------------
1  KAMI_A 10
2  KAMI_B 110
3  KAMI_C 50
4  KAMI_D 9000
5  KAMI_E 9000

○ Sql文
SELECT No, =
CASE 商品名
WHEN 'A' THEN 'KAMI_A'
WHEN 'B' THEN 'KAMI_B'
WHEN 'C' THEN 'KAMI_C'
WHEN 'D' THEN 'KAMI_D'
ELSE 'Z'
END
FROM 商品

○ 説明
CASE文により条件を指定することで、条件によりSELECT値を
変更することが可能になります。

○ 結果
No 商品
-------------
1   A
2   B
3   C
4   D
5   Z

 | トップページ |  次のページ Sql Server INSERT文