SELECT문의 작동

이수보🧑🏻‍💻·2022년 1월 22일
0

오라클

목록 보기
4/11

SELECT

우리가 앞으로 가장 많이 써야하는 SELECT 문

내가 그걸 가장 많이 쓸지 너가 어떻게 알어? 라는 궁금증이 생길 사람도 아마 몇 일 뒤
무의식적으로 SELECT 를 치고 있는 자신을 발견할 것입니다 ㅎㅎ

그만큼 가장 중요하고 자주 쓰기 때문에 사용법을 정확히 숙지하고 있어야 합니다. 또한

테이블에 있는 데이터를 조회하는 명령어이기 때문에 잘못 조회했다가는 큰일 날 수 있습니다.

따라서 우린 SELECT 문의 사용법과 작동 순서를 살펴 보겠습니다.

  • SELECT

SELECT 문의 필수절로는 SELECT와 FROM 이 있습니다. 이 두개만 존재하면 SELECT 문은 수월하게 진행되죠

1. 예제

지금 저희의 DB 에는 MEMBER 라는 테이블이 있다고 가정합시다.
이 MEMBER에는 ID와 PASSWORD 라는 두 개의 컬럼이 존재합니다.


SELECT ID, PASSWORD
 FROM MEMBER

위 예제는 MEMBER 라는 테이블에서 모든 ID와 PASSWORD를 조회합니다.


여기서
SELECT 는 조회한다의 의미
FROM 은 어디에서? 를 뜻합니다.

그렇다면 내가 원하는 결과만을 조회하기 위해서는 어떻게 해야할까요?


  • WHERE
    SELECT ID, PASSWORD
     FROM MEMBER WHERE PASSWORD = '1234'

    위 예제는 MEMBER 테이블에서 PASSWORD가 '1234' 인 행의 ID와 PASSWORD를 조회합니다.

위와 같이 조건을 WHERE 절을 사용하여 조건을 걸어줌으로써 원하는 결과만 조회할 수 있습니다.

또한 조회결과에 대해서 정렬을 걸어줄 수 있습니다.


  • ORDER BY
    SELECT ID, PASSWORD
     FROM MEMBER ORDER BY 1

    위 예제는 조건이 없으므로 모든 ID,PASSWORD에 대해 ID순으로 오름차순 정렬한 결과를 조회합니다. 오름차순(ASC)는 생략되어 있기 때문에 만약 내림차순 하고 싶다면
    ORDER BY 1 DESC를 하면 됩니다.

  • GROUP BY
    SELECT COUNT(ID), PASSWORD
     FROM MEMBER GROUP BY PASSWORD

    위 예제는 조건이 없으므로 모든 ID,PASSWORD에 대해 같은 PASSWORD를 가진 기준으로 특정 컬럼을 그룹화 합니다. 모든 행의 개수를 세는 COUNT와는 다르게 특정 개수만 조회하려 할 때 주로 사용됩니다. 그룹화한 상태에서 조건으로 주려면 HAVING이 사용되고
    무조건 집계함수와 같이 써야합니다.

집계함수 : 값에 대해 특정 연산을 수행하는 함수 ( SUM, AVG, COUNT, MIN, MAX )


  • 작동순서

    1. FROM : 테이블을 가지고 실행하기 위해서 하드디스크에서 주기억장치인 메모리에 올라오는 절
    2. WHERE : 절 이하 특정한 조건을 맞추기위해 (TRUE/FALSE)논리로
    3. 위 조건에서 참이면 *SELECT 절이 실행이 된다.
    4. 집계함수가 사용되었다면 -> GROUP BY
    5. HAVING 은 GROUP BY의 5가지 함수가 사용될 때만 사용
    6. ORDER BY 정렬 즉 SORT 순서화시키다. ASC오름차순 DESC내림차순 기본은 ASC DESC는 반드시 정의
    7. 중복정렬값이 있다면 ORDER BY 절에 두번째 기준을 만들어줌. 위에 처럼

즉 작동 순서를 요약하자면

  • FROM > WHERE > SELECT > GROUP BY > HAVING > ORDER BY > ASC/DESC

0개의 댓글