개발 1도 모르는 사람

[Oracle & SQL] DQL 명령어 정리 (1) 본문

Oracle & SQL/SQL

[Oracle & SQL] DQL 명령어 정리 (1)

지구젤리귀여워 2023. 10. 13. 11:40
728x90

DQL (Data Query Language) 명령어 설명  [ 안에서 세부적으로 조건을 지정해줄 때 사용하는 명령어 ]

  [검색], [조회] 명령어. EX) SELECT ( SELECT와 관련된 검색, 조회 명령어 = DQL )

  데이터베이스에서 [검색] 하고 [조회] 하는데 사용
  DQL SELECT 문을 사용해서 데이터를 검색하고 필터링 하며 원하는 정보를 추출하는데 사용

  종류 :
  SELECT : 테이블에서 데이터를 선택하고 반환
           필드 목록, 테이블, 조건 및 정렬을 지정할 수 있음
  FROM : SELECT 문에서 데이터를 검색할 대상 테이블을 지정
      예제코드 ) SELECT * FROM 테이블명;

  WHERE : 검색 결과를 필터링하기 위한 조건을 지정 
          특정 조건을 충족하는 행만 반환
      예제코드 ) SELECT 보기원하는 열 FROM 테이블명 WHERE 조건작성; EX) C_ID = '1'; 

  GROUP BY : 검색 결과를 그룹화하고 그룹 단위로 데이터를 집계할 때 사용    -- COUNT(*) 와 자주쓰인다
      예제코드 ) SELECT 열이름, AVG(열이름) AS 표시하고싶은 열의 이름 
                FROM 테이블명
                GROUP BY 집계할 열이름;

  HAVING   : GROUP BY와 함께 사용되며, 그룹화된 데이터에 대한 조건 지정
             조건을 충족하는 그룹만 반환
      예제코드 ) SELECT 열이름, AVG(열이름) AS 표시하고싶은 열의 이름 
                FROM 테이블명
                GROUP BY 집계할 열이름;
                HAVING AVG(열이름) > 10.0;   --조건 지정

  ORDER BY : 검색 결과를 정렬하기 위해 사용 (오름차순)
             정렬할 열 및 정렬 순서를 지정
      예제코드 ) SELECT 열이름 
                FROM 테이블명 
                ORDER BY 열이름 DESC; ASC;
        --ASC : 오름차순 (Default 값)
        --DESC : 내림차순

  UNION    : SQL두 개 이상의 SELECT 문 결과를 결합해서 하나의 결과 집합으로 반환하는 연산자 

                    --타입이 같아야 집합가능
                    UNION 종복된 행을 제거하고 중복 된 행을 포함하지 않는 결과를 생성


      --Employee 테이블에서 직원의 이름과 연봉 추출 --SALGRADE 테이블에서 급여 등급을 추출하여 합치기
        SELECT ENAME, SALARY FROM EMPLOYEE       --직원 이름과 연봉 추출
        UNION     -- 두개의 select 결과를 합침     --이 결과를 중복 행을 제거하고 정렬된 상태로 반환
        SELECT 'SALGRADE' AS ENAME, GRADE AS SALARY FROM SALGRADE; --급여 등급 추출

      
      예제코드 ) SELECT 열이름 FROM 테이블1
                UNION
                SELECT 열이름 FROM 테이블2;
      예제코드 2) SELECT column1, column2,...
                 FROM table1
                 UNION
                 SELECT column1, column2,....
                 FROM '테이블명'