SELECT 문(SQL Server Compact)

데이터베이스의 행을 검색하고 하나 또는 여러 테이블에서 하나 이상의 행이나 열을 선택할 수 있습니다. 이 문은 쿼리를 표현하는 데 사용되는 기본 SQL 생성자입니다. SELECT는 데이터를 수정, 삽입 또는 삭제하지 않습니다.


SELECT select_list 
[ FROM table_source ]
[ WHERE search_condition ] 
[ GROUP BY group_by_expression ] 
[ HAVING search_condition ] 
[ ORDER BY order_expression [ ASC | DESC ] ] 

SELECT 문은 시스템에 대한 쿼리를 기술합니다. 쿼리를 실행하더라도 데이터는 업데이트되지 않습니다. 쿼리 결과는 동일한 구조의 행으로 이루어진 테이블로 표시되며 각 행은 동일한 열 집합을 갖습니다. SELECT 문은 이 결과 테이블에 존재할 열과 테이블을 채울 행을 정확히 정의합니다. SELECT 문은 시스템에 쿼리 실행 방법을 알려 주지 않습니다. 대신 시스템이 내부의 비용 기반 최적화 모듈을 사용하여 최적의 방법으로 쿼리를 실행합니다. 결과는 다음과 같은 정식 실행 전략을 따릅니다. 유일한 차이점은 테이블 행의 순서이지만 이 순서는 ORDER BY 절에 지정된 정렬 순서와 일치합니다.

실행 전략

  1. FROM 절에서 테이블 조인을 생성합니다. 명시적인 JOIN 구문을 사용하면 JOIN 결과가 확실해집니다. FROM 절에 쉼표로 구분된 테이블 이름 목록이 있으면 암시적으로 테이블의 제품 간 조인을 나타냅니다.

  2. WHERE 절이 있는 경우 1단계에서 얻은 행에 검색 조건을 적용하면 조건을 만족시키는 행만 보존됩니다.

  3. SELECT 절에 집계 식이 없고 GROUP BY 절이 없으면 7단계로 이동하십시오.

  4. GROUP BY 절이 있으면 2단계에서 얻은 행을 몇 개의 그룹으로 나누십시오. 이때 각 그룹의 모든 행은 모든 그룹화 열에서 동일한 값을 가져야 합니다. GROUP BY 절이 없으면 모든 행을 하나의 그룹에 넣으십시오.

  5. HAVING 절이 지정되어 있는 경우 4단계에서 생성된 그룹별로 HAVING 절을 적용하십시오. HAVING 절을 만족시키는 그룹만 보존됩니다.

  6. 5단계에서 생성된 그룹의 경우 SELECT 절에서 해당 그룹에 대해 선택 목록을 평가하여 정확히 하나의 결과 행을 생성합니다.

  7. SELECT 절에 DISTINCT 키워드가 있으면 6단계의 결과에서 중복되는 행을 제거하십시오.

  8. ORDER BY 절이 있으면 정렬 식에 지정된 대로 7단계의 결과를 정렬하십시오.

표시: