2.5. 테이블 쿼리#

테이블에서 데이터를 검색하려면 테이블이입니다.Queried.SQL select이를 수행하는 데 사용됩니다. 이 명령문은 선택 목록 (반환 할 열을 나열하는 부분), 테이블 목록 (데이터를 검색 할 테이블을 나열하는 부분) 및 선택적 자격 (제한 사항을 지정하는 부분)으로 나뉩니다. 예를 들어, 테이블의 모든 행을 검색하려면날씨, 유형 :

선택 *에서 날씨에서;

여기*속기입니다.모든 열. [2]따라서 같은 결과가 다음과 같습니다.

City, Temp_lo, Temp_hi, PRCP, 날씨에서 날짜; 선택

출력은 :이어야합니다.

도시 | temp_lo | temp_hi | prcp |    날짜
---------------+---------+--------+-------+------------
 샌프란시스코 |      46 |      50 | 0.25 | 1994-11-27
 샌프란시스코 |      43 |      57 |    0 | 1994-11-29
 헤이워드 |      37 |      54 |      | 1994-11-29
(3 줄)

선택 목록에 간단한 열 참조뿐만 아니라 표현식을 쓸 수 있습니다. 예를 들어, 당신은 할 수 있습니다 :

City, (temp_hi+temp_lo)/2는 temp_avg로 날씨에서 날짜;

이것은 주어야합니다 :

도시 | temp_avg |    날짜
---------------+----------+------------
 샌프란시스코 |       48 | 1994-11-27
 샌프란시스코 |       50 | 1994-11-29
 헤이워드 |       45 | 1994-11-29
(3 줄)

어떻게as조항은 출력 열을 레이블하는 데 사용됩니다. (그만큼as조항은 선택 사항입니다.)

쿼리가 될 수 있습니다자격을 갖춘a를 추가하여여기서어떤 행을 원하는지 지정하는 조항. 그만큼여기서절은 부울 (진실 가치) 표현식을 포함하며 부울 표현이 참을 수있는 행만 반환됩니다. 일반적인 부울 연산자 (and, 또는not)는 자격에 허용됩니다. 예를 들어, 다음은 비오는 날에 샌프란시스코의 날씨를 검색합니다.

날씨에서 * 선택
    여기서 도시 = '샌프란시스코'및 prcp 0.0;

결과 :

도시 | temp_lo | temp_hi | prcp |    날짜
---------------+---------+--------+-------+------------
 샌프란시스코 |      46 |      50 | 0.25 | 1994-11-27
(1 행)

정렬 된 순서로 쿼리 결과를 반환하도록 요청할 수 있습니다 :

날씨에서 *를 선택하십시오
    도시 주문;
도시 | temp_lo | temp_hi | prcp |    날짜
---------------+---------+--------+-------+------------
 헤이워드 |      37 |      54 |      | 1994-11-29
 샌프란시스코 |      43 |      57 |    0 | 1994-11-29
 샌프란시스코 |      46 |      50 | 0.25 | 1994-11-27

이 예에서는 정렬 순서가 완전히 지정되지 않았으므로 샌프란시스코 행을 순서대로 얻을 수 있습니다. 하지만 당신은 항상 위에 표시된 결과를 얻을 수 있습니다 :

날씨에서 *를 선택하십시오
    도시별로 주문, temp_lo;

쿼리 결과에서 중복 행을 제거하도록 요청할 수 있습니다.

별도의 도시를 선택하십시오
    날씨에서;
도시
-----------------
 헤이워드
 샌프란시스코
(2 줄)

여기서 다시, 결과 행 순서가 다를 수 있습니다. 사용하여 일관된 결과를 보장 할 수 있습니다별도의and주문 by함께 :[3]

별도의 도시를 선택하십시오
    날씨에서
    도시 주문;


[2]while선택 *| 캐프 오프 쿼리에 유용합니다. 테이블에 열을 추가하면 결과가 변경되므로 프로덕션 코드에서는 나쁜 스타일로 간주됩니다..

[3]이전 버전의를 포함한 일부 데이터베이스 시스템에서PostgreSQL, 구현별도의자동으로 행을 주문합니다주문 by불필요합니다. 그러나 이것은 SQL 표준과 현재에 의해 요구되지 않습니다PostgreSQL별도의행을 주문하게합니다.

정정 제출

문서에 올바른 것이없는 것이 있으면 일치하지 않습니다. 특정 기능에 대한 귀하의 경험 또는 추가 설명이 필요합니다. 사용이 양식문서 문제를보고하려면