Postgresql_DB_가이드

테이블 쿼리

구일칠구 2022. 7. 18. 00:50

테이블에서 데이터를 검색하기 위해 테이블이 쿼리 됩니다. 이를 위해 SQL SELECT 문을 사용합니다. 명령문은 선택 목록(반환할 열을 나열하는 부분), 테이블 목록(데이터를 검색할 테이블을 나열하는 부분) 및 선택적 제한(제한 사항을 지정하는 부분)으로 나뉩니다. . 예를 들어, table 의 모든 행을 검색하려면 다음 weather을 입력하십시오.

SELECT * FROM 날씨;

다음 *은 " 모든 열 " 의 약어입니다 . 따라서 다음과 같은 결과가 나타납니다.

SELECT 도시, temp_lo, temp_hi, prcp, 날짜 FROM 날씨;

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

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

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

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

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

     도시 | 임시 평균 | 데이트
---------------+----------+------------
샌프란시스코 | 48 | 1994-11-27
샌프란시스코 | 50 | 1994-11-29
헤이워드 | 45 | 1994-11-29
(3줄)

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

원하는 행을 지정하는 절을 추가하여 쿼리를 " 정규화 " 할 수 있습니다. WHERE이 WHERE절에는 Boolean(truth value) 표현식이 포함되며 Boolean 표현식이 true인 행만 반환됩니다. 일반적인 부울 연산자( AND, OR, 및 NOT)는 제한에서 허용됩니다. 예를 들어 다음은 비오는 날 샌프란시스코의 날씨를 검색합니다.

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

결과:

     도시 | temp_lo | temp_hi | 가격 | 데이트
---------------+---------+---------+--------+--------- ------
샌프란시스코 | 46 | 50 | 0.25 | 1994-11-27
(1줄)

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

SELECT * FROM 날씨
도시별 주문
     도시 | temp_lo | temp_hi | 가격 | 데이트
---------------+---------+---------+--------+--------- ------
헤이워드 | 37 | 54 | | 1994-11-29
샌프란시스코 | 43 | 57 | 0 | 1994-11-29
샌프란시스코 | 46 | 50 | 0.25 | 1994-11-27

이 예에서는 정렬 순서가 완전히 지정되지 않았으므로 샌프란시스코 행을 어느 순서로든 가져올 수 있습니다. 그러나 다음을 수행하면 항상 위에 표시된 결과를 얻을 수 있습니다.

SELECT * FROM 날씨
ORDER BY 도시, temp_lo;

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

SELECT DISTINCT 도시
날씨에서;
     도시
---------------
헤이워드
샌프란시스코
(2줄)

여기서도 결과 행 순서가 다를 수 있습니다. DISTINCT와 ORDER BY함께 사용하면 일관된 결과를 얻을 수 있습니다 . [3]

SELECT DISTINCT 도시
날씨에서
도시별 주문


SELECT * 필요 없는 쿼리에 유용하지만

이전 버전의 PostgreSQL 을 포함한 일부 데이터베이스 시스템에서는 의 구현이DISTINCT자동으로 행을 정렬하므로ORDER BY불필요합니다. 그러나 이것은 SQL 표준에 의해 요구되지 않으며 현재 PostgreSQLDISTINCT 은 행이 정렬되도록 하는것을 보장하지 않습니다

'Postgresql_DB_가이드' 카테고리의 다른 글

4.2. 값 표현식  (0) 2022.07.18
첨자  (0) 2022.07.18
행으로 테이블 채우기  (0) 2022.07.17
새 테이블 생성  (0) 2022.07.17
SQL 언어  (0) 2022.07.17