SAK 図書館

SAK Streets メインストリート 図書館・カフェ 一覧 SAK Streets 検索
| VB | SQL | Perl | PHP | ASP | JSP | C | PC | HP | FAQ | フリーソフト |

PostgreSQL 編10 - 問い合わせ、抽出、ソート、where、like、order by、desc

■抽出問い合わせ(抽出条件、条件抽出)

  ・単純な抽出条件は次のように指定する。
    この例では、key が「a001」のものだけが問い合わされる。

select * from testm
  where key = 'a001'
  order by key
;

   key    | data1 | data2 | data3
----------+-------+-------+-------
 a001     |     1 |     2 |     3

  ・この例では、key が「a001」以外のものだけが問い合わされる。

select * from testm
  where key <> 'a001'
  order by key
;

   key    | data1 | data2 | data3
----------+-------+-------+-------
 a011     |     1 |     2 |     3
 b002     |    10 |    20 |    30
 c003     |   100 |   200 |   300

  ・この例では、data3 が NULL のものだけが問い合わされる。
    (空列検索、NULL 列検索、NULL 検索、NULL 抽出)

select * from testm
  where data3 is null
  order by key
;

  ・この例では、data3 が NULL でないものだけが問い合わされる。
    (NULL 以外)

select * from testm
  where not data3 is null
  order by key
;

  ・範囲抽出条件は次のように指定する。
    この例では、key が「a000」〜「a999」の範囲が問い合わされる。

select * from testm
  where key >= 'a000' and key <= 'a999'
  order by key
;

   key    | data1 | data2 | data3
----------+-------+-------+-------
 a001     |     1 |     2 |     3
 a011     |     1 |     2 |     3

  ・SQL 関数を用いての抽出条件は次のように指定する。
    この例では、key が「a」で始まるものが問い合わされる。

select * from testm
  where substr(key, 1, 1) = 'a'
  order by key
;

  ・substr() を使うより、マッチパターンの like を使う方が便利である。
    この例では、key が「a」で始まるものが問い合わされる。

select * from testm
  where key like 'a%'
  order by key
;

   key    | data1 | data2 | data3
----------+-------+-------+-------
 a001     |     1 |     2 |     3
 a011     |     1 |     2 |     3

  ・like では、ワイルドカードの「%」と一文字マッチ用の「_」が使える。
    この例では、key が先頭はなんでもよいが、それ以降が「001」のものが問
    い合わされる。しかし、最後に「%」がないと抽出されない。
    これは要注意である。

select * from testm
  where key like '_001%'
  order by key
;

   key    | data1 | data2 | data3
----------+-------+-------+-------
 a001     |     1 |     2 |     3

  ・between では、値の範囲を指定できる。
    この例では、data3 が 10 〜 100 のものが問い合わされる。

select * from testm
  where data3 between 10 and 100
  order by key
;

   key    | data1 | data2 | data3
----------+-------+-------+-------
 b002     |    10 |    20 |    30

  ・and では、条件を共に満たす抽出がてきる。
    この例では、data1 と data2 が 10 より上のものだけが問い合わされる。

select * from testm
  where data1 > 10 and data2 > 10
  order by key
;

   key    | data1 | data2 | data3
----------+-------+-------+-------
 c003     |   100 |   200 |   300

  ・or では、各条件を満たす抽出がてきる。
    この例では、data1 か data2 のどちらが 10 より上のものが問い合わさ
    れる。

select * from testm
  where data1 > 10 or data2 > 10
  order by key
;

   key    | data1 | data2 | data3
----------+-------+-------+-------
 b002     |    10 |    20 |    30
 c003     |   100 |   200 |   300

  ・and と or の組み合わせは、優先順位を () で必ず指定するようにする。
    この例では、data1 か data2 のどちらが 10 より上のもので、key の先頭
    が「c」で始まるものだけが問い合わされる。

select * from testm
  where (data1 > 10 or data2 > 10) and key like 'c%'
  order by key
;

   key    | data1 | data2 | data3
----------+-------+-------+-------
 c003     |   100 |   200 |   300

■ソート(並べ換え、並べ替え)

  ・order by 句でソート順が指定できる。
    この例では、key の昇順に問い合わされる。

select * from testm
  order by key
;

   key    | data1 | data2 | data3
----------+-------+-------+-------
 a001     |     1 |     2 |     3
 a011     |     1 |     2 |     3
 b002     |    10 |    20 |    30
 c003     |   100 |   200 |   300

  ・desc を指定すると降順になる。
    この例では、key の降順に問い合わされる。

select * from testm
  order by key desc
;

   key    | data1 | data2 | data3
----------+-------+-------+-------
 c003     |   100 |   200 |   300
 b002     |    10 |    20 |    30
 a011     |     1 |     2 |     3
 a001     |     1 |     2 |     3

  ・ソートオーダは複数項目指定できる。
    この例では、data1 の大きい順で key の昇順に問い合わされる。

select * from testm
  order by data1 desc, key
;

   key    | data1 | data2 | data3
----------+-------+-------+-------
 c003     |   100 |   200 |   300
 b002     |    10 |    20 |    30
 a001     |     1 |     2 |     3
 a011     |     1 |     2 |     3

■PostgreSQL 編、JAVA Servlet、JSP 編資料
■MySQL 編資料
■SQL 基礎編資料
■SQL 基礎実地編資料
■SQL チューニング編資料
■Oracle PL/SQL 編資料
| VB | SQL | Perl | PHP | ASP | JSP | C | PC | HP | FAQ | フリーソフト |

SAK Streets メインストリート 図書館・カフェ 一覧 SAK Streets 検索



Copyright (C) 1999-2017 Y.SAK