본문 바로가기
DB/SQL(오라클)

오라클(SQL) select 문 예시

by redbear0077 2021. 3. 12.
반응형

 select 문

테이블 다운로드

 

    -자료 검색 명력
    -SQL에서 가장 많이 사용되는 명령어
(사용형식)

 SELECT [DISTINCT]*|[컬럼명1 [AS] ["]컬럼별칭["],]--[]는 안에있는 것들은 생략이가능하다
           [컬럼명2 [AS] ["]컬럼별칭["],]
                        .
                        .
           [컬럼명n [AS] ["]컬럼별칭["]]--결과로 어떤걸 출력할지 결정한다. (컬럼명N)
         FROM 테이블명
       [WHERE 조건1
         [AND 조건 2.....]]
    [GROUP BY 컬럼명1[,컬럼명2,....]]
      [HAVING 조건1[,조건2,....]]--5개 이상의 조건이 들어가면 사용
    [ORDER BY 컬럼인덱스|컬럼명1[ASC|DESC] [,--ASC오름차순, DESC내림차순
              컬럼인덱스|컬럼명2,....];

1. SELECT 절
    -실행되는 순서는 가장 늦게 실행( 실행되는순서 FROM > WHERE > SELECT)
    -검색할 컬럼에 관련된 절
    (사용형식)
     SELECT [DISTINCT]*|[컬럼명1 [AS] ["]컬럼별칭["],]--[]는 안에있는 것들은 생략이가능하다
           [컬럼명2 [AS] ["]컬럼별칭["],]
                         .
           [컬럼명n [AS] ["]컬럼별칭["]]
    .[DISTINCT] : 중복된 자료를 배제하여 결과를 출력함


사용예)외원테이블에서 회원들의 주소지의 종류를 모두 조회하시오
    ALIAS는 거주지(광역시 또는 도)

(DISTINCT미사용)

SELECT SUBSTR(MEM_ADD1,1,2)
        FROM MEMBER
   

 (DISTINCT미사용)

SELECT DISTINCT SUBSTR(MEM_ADD1,1,2) 
       FROM MEMBER;

사용예)회원테이블에서 회원들이 가지고 있는 취미(MEM_LIKE)들을 조회하시오

SELECT DISTINCT MEM_LIKE AS 취미
  FROM MEMBER;

.'컬럼별칭' : 컬럼에 부여하는 별도의 이름
                 해당 컬럼의 제목이나 SUBQUERY사용시 컬럼의 값을   
                 참조하기 위하여 사용됨
    .컬럼별칭예 특수문자(공백이나 기호, 예약어)가 사용될 때에는 " "로 
     묶어 사용해야 함
    .'AS'는 생략 가능(기술하는 것이 가독성을 위하여 권장됨)
    .컬럼별칭은 해당 SELECT 무의 WHERE절 등에 사용할 수 없음

사용예) 제목줄로 사용
    사원테이블(EMPLOYEES)에서 영업실적(COMMISSION_PCT)가 NULL이 아닌
    사원들의 영업실적에 따른 보너스를 조회하시오
    보너스=급여*영업실적코드
    ALIAS는 사원번호,사원명,영업실적코드,본봉,보너스이다.

SELECT EMPLOYEE_ID AS 사원번호,
       EMP_NAME AS "사원명",
       COMMISSION_PCT AS "영업실적 코드",
       SALARY AS 본봉,
       SALARY*COMMISSION_PCT AS 보너스
FROM   EMPLOYEES
WHERE  COMMISSION_PCT IS NOT NULL;

사용예) 제목줄로 사용
    사원테이블(EMPLOYEES)에서 영업실적(COMMISSION_PCT)가 NULL이 아닌
    사원들의 영업실적에 따른 보너스를 조회하되 보너스가 3000이상인사람 조회하시오
    보너스=급여*영업실적코드
    ALIAS는 사원번호,사원명,영업실적코드,본봉,보너스이다.

SELECT EMPLOYEE_ID AS 사원번호,
       EMP_NAME AS "사원명",
       COMMISSION_PCT AS "영업실적 코드",
       SALARY AS 본봉,
       SALARY*COMMISSION_PCT AS 보너스
FROM   EMPLOYEES
WHERE  COMMISSION_PCT IS NOT NULL
AND    SALARY*COMMISSION_PCT>= 3000
ORDER  BY 5 DESC;

GROUP 함수 사용

사용예)회원테이블(MEMBER)에서 성별 마일리지 합계를 조회하시오

SELECT CASE WHEN SUBSTR(MEM_REGNO2,1,1)='1' OR
                 SUBSTR(MEM_REGNO2,1,1)='3' THEN '남성회원'
            ELSE '여성회원' END AS "구분",
            SUM(MEM_MILEAGE) AS "마일리지 합계"
  FROM MEMBER
  GROUP BY CASE WHEN SUBSTR(MEM_REGNO2,1,1)='1' OR
                     SUBSTR(MEM_REGNO2,1,1)='3' THEN '남성회원' ELSE '여성회원' END;

사용예) 장바구니테이블 (CART)에서 2005년 6월 회원별 구매액을 조회하되
       구입금액이 50만원 이상인 회원정보를 조회하시오
       ALIAS 는 회원번호,회원명,구입액이다.

SELECT A.CART_MEMBER AS 회원번호,
       B.MEM_NAME AS 회원명,
       SUM(A.CART_QTY*C.PROD_PRICE) AS 구매액
       --(SELECT
  FROM CART A, MEMBER B, PROD C--(SELECT(SELECT))
 WHERE A.CART_MEMBER=B.MEM_ID --조인조건
   AND A.CART_PROD=C.PROD_ID --조인조건
   AND SUBSTR(A.CART_NO,1,8)>='20050601' AND SUBSTR(A.CART_NO,1,8)<='20050630'
   --AND A.CART_QTY>=(SELECT)
 GROUP BY A.CART_MEMBER,B.MEM_NAME
HAVING SUM(A.CART_QTY*C.PROD_PRICE)>=500000
 ORDER BY 3 DESC;
반응형