2.5. 테이블 쿼리#

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

SELECT * 날씨에서;

여기*는의 약어입니다.모든 열. [2]따라서 다음과 같은 결과가 나올 것입니다:

날씨에서 도시, temp_lo, temp_hi, prcp, 날짜를 선택하세요.

출력은 다음과 같아야 합니다:

도시 | 임시_로 | 임시_안녕 | PRCP |    날짜
---------------+---------+---------+------+------------
 토토 |      46 |      50 | 0.25 | 1994-11-27
 토토 |      43 |      57 |    0 | 1994-11-29
 헤이워드 |      37 |      54 |      | 1994-11-29
(3행)

선택 목록에 단순한 열 참조뿐만 아니라 표현식을 작성할 수 있습니다. 예를 들어 다음과 같이 할 수 있습니다.

도시 선택, (temp_hi+temp_lo)/2 AS temp_avg, 날짜 FROM 날씨;

이것은 다음을 제공해야 합니다:

도시 | 평균 온도 |    날짜
---------------+----------+------------
 토토 |       48 | 1994-11-27
 토토 |       50 | 1994-11-29
 헤이워드 |       45 | 1994-11-29
(3행)

어떻게 되는지 주목하세요AS절은 출력 열의 레이블을 다시 지정하는 데 사용됩니다. (그AS절은 선택사항입니다.)

쿼리는 다음과 같습니다.자격을 갖춘a를 추가하여어디에서12692_12744어디절에는 부울(진리 값) 표현식이 포함되어 있으며 부울 표현식이 true인 행만 반환됩니다. 일반적인 부울 연산자(그리고, 또는아님)은 자격에 허용됩니다. 예를 들어 다음은 비오는 날 샌프란시스코의 날씨를 검색합니다.

SELECT * 날씨에서
    WHERE 도시 = '샌프란시스코' AND prcp  0.0;

결과:

도시 | 임시_로 | 임시_안녕 | PRCP |    날짜
---------------+---------+---------+------+------------
 토토 |      46 |      50 | 0.25 | 1994-11-27
(1행)

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

SELECT * 날씨에서
    도시별로 주문하세요.
도시 | 임시_로 | 임시_안녕 | PRCP |    날짜
---------------+---------+---------+------+------------
 헤이워드 |      37 |      54 |      | 1994-11-29
 토토 |      43 |      57 |    0 | 1994-11-29
 토토 |      46 |      50 | 0.25 | 1994-11-27

이 예에서는 정렬 순서가 완전히 지정되지 않았으므로 토토 행을 어느 순서로든 얻을 수 있습니다. 하지만 그렇게 하면 항상 위에 표시된 결과를 얻게 됩니다.

SELECT * 날씨에서
    도시별로 주문, temp_lo;

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

특정 도시 선택
    날씨로부터;
도시
---------------
 헤이워드
 토토
(2행)

여기에서도 결과 행 순서가 다를 수 있습니다. 다음을 사용하여 일관된 결과를 보장할 수 있습니다.독특그리고주문 기준함께:[3]

특정 도시 선택
    날씨로부터
    도시별로 주문하세요.


[2]그동안선택 *즉석 쿼리에 유용하며, 테이블에 열을 추가하면 결과가 변경되므로 프로덕션 코드에서 잘못된 스타일로 널리 간주됩니다.

[3]이전 버전을 포함한 일부 데이터베이스 시스템에서PostgreSQL, 구현독특행을 자동으로 정렬하는 등주문 기준불필요합니다. 그러나 이는 SQL 표준에서는 요구되지 않으며 현재는PostgreSQL보장하지 않음독특행이 정렬됩니다.

수정사항 제출

문서에 올바르지 않은 내용이 있으면 일치하지 않습니다. 특정 기능에 대한 경험이 있거나 추가 설명이 필요한 경우 이용해주세요이 양식문서 문제를 보고합니다.