ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • SQL 4. SQL 활용_연산자 및 함수(1)
    SYNC 기술면접 준비 2023. 11. 13. 23:27

    연산자 및 함수

    연산자 : 비교, 논리, 특수, 산술, 집합 연산자

     

    USE PRACTICE;

    /************************************연산자***********************************/
    /***************비교 연산자***************/
    /* = : 같음 */
    SELECT * 
    FROM CUSTOMER
    WHERE GENDER = 'MAN';

    /* <> : 같지 않음 */
    SELECT * 
    FROM CUSTOMER
    WHERE GENDER <> 'MAN'; -- 성별이 남자가 아닌 것을 출력하게 된다.

    /* >= : ~보다 크거나 같음 */  
    SELECT * 
    FROM CUSTOMER
    WHERE YEAR(JOIN_DATE) >= 2019;

    /* <= : ~보다 작거나 같다. */ 
    SELECT * 
    FROM CUSTOMER
    WHERE YEAR(JOIN_DATE) <= 2019;

    /* > : ~보다 크다 */ 
    SELECT * 
    FROM CUSTOMER
    WHERE YEAR(JOIN_DATE) > 2019;

    /* < : ~보다 작다 */ 
    SELECT * 
    FROM CUSTOMER
    WHERE YEAR(JOIN_DATE) < 2020;

     
    /***************논리 연산자***************/
    /* AND : 앞, 뒤 조건 모두 만족 */
    SELECT  *
    FROM  CUSTOMER
    WHERE  GENDER = 'MAN' AND  ADDR = 'Gyeonggi';

    /* NOT : 뒤에 오는 조건과 반대 */ 
    SELECT  *
    FROM  CUSTOMER
    WHERE  NOT GENDER = 'MAN' AND ADDR = 'Gyeonggi'; -- 남자가 아니고, 주소가 Gyeonggi 인 것

    /* OR : 하나라도 만족 */    
    SELECT  *
    FROM  CUSTOMER
    WHERE  GENDER = 'MAN' or  ADDR = 'Gyeonggi';

    /***************특수 연산자***************/  
    /* BETWEEN a AND b : a와 b의 값 사이 */
    SELECT  *
    FROM  CUSTOMER
    WHERE  YEAR(BIRTHDAY) BETWEEN 2010 AND 2011;

    /* NOT BETWEEN a AND b : a와 b의 값 사이가 아님 */
    SELECT  *
    FROM  CUSTOMER
    WHERE YEAR(BIRTHDAY) not BETWEEN 2010 AND 2011; -- 사이의 값이 아닌 것

    /* IN (List) : 리스트 값 */ 
    SELECT  *
    FROM  CUSTOMER
    WHERE  YEAR(BIRTHDAY) IN (2010,2011); -- in 조건 안에 부합하는 애들만 출력

    /* NOT IN (List) : 리스트 값이 아님 */  
    SELECT  *
    FROM  CUSTOMER
    WHERE  YEAR(BIRTHDAY) not IN (2010,2011);

    /* LIKE ‘비교문자열’ */   
    SELECT  *
    FROM  CUSTOMER
    WHERE  ADDR LIKE 'D%'; /* ~로 시작하는 */

    SELECT  *
    FROM  CUSTOMER
    WHERE  ADDR LIKE '%N'; /* ~로 끝나는 */
     
    SELECT  *
    FROM  CUSTOMER
    WHERE  ADDR LIKE '%EO%'; /* ~를 포함하는 */

    /* NOT LIKE ‘비교문자열’ */   
    SELECT  *
    FROM  CUSTOMER
    WHERE  ADDR NOT LIKE '%EO%'; /* ~를 제외하는 */ 
     
    /* IS NULL : NULL */   
    SELECT  *
    from  CUSTOMER AS A
    LEFT JOIN  SALES AS B
    ON  A.MEM_NO = B.MEM_NO
    WHERE  B.MEM_NO IS NULL; -- b.mem_no가 null인 값 출력
     
    /* 확인 */ 
    SELECT  *
      FROM  SALES
     WHERE  MEM_NO = '1001736';
     
    /* IS NOT NULL : NOT NULL */   
    SELECT  *
    from  CUSTOMER AS A
    LEFT JOIN  SALES AS B
    ON  A.MEM_NO = B.MEM_NO
    WHERE  B.MEM_NO IS Not NULL;

    /***************산술 연산자***************/
    SELECT  *, A.SALES_QTY * PRICE AS 결제금액 -- 곱셈
    FROM  SALES AS A
    LEFT JOIN PRODUCT AS B
    ON  A.PRODUCT_CODE = B.PRODUCT_CODE;

     /***************집합 연산자***************/
    union : 2개 이상 테이블의 중복된 행들을 제거 하여 집합

    union all : 2개 이상 테이블의 중복된 행들을 제거 없이 집합

    >>> 열 개수와 데이터 타입이 일치할 때 사용이 가능하다.

     

     

     

    CREATE TEMPORARY TABLE SALES_2019
    SELECT  *
      FROM  SALES
     WHERE  YEAR(ORDER_DATE) = '2019';
     
    select * from SALES_2019;

    /* 1235행 */
    SELECT  *
      FROM  SALES_2019;

    /* 3115행 */
    SELECT  *
      FROM  SALES;
      
    /* UNION : 2개 이상 테이블 중복된 행 제거 하여 집합(* 열 개수와 데이터 타입 일치) */
    select * 
    from SALES_2019
    union 
    select *
    from SALES;

    /* UNION ALL: 2개 이상 테이블 중복된 행 제거 없이 집합(* 열 개수와 데이터 타입 일치) */
    SELECT 3115 + 1235;
    select * 
    from SALES_2019
    union all
    select *
    from SALES;





    'SYNC 기술면접 준비' 카테고리의 다른 글

    SQL 4. SQL 활용_데이터 마트  (0) 2023.11.14
    SQL 4. SQL 활용_연산자 및 함수(2)  (1) 2023.11.14
    SQL 3. SQL 문법_총정리  (0) 2023.11.13
    SQL 3. SQL 문법_SUB QUERY  (1) 2023.11.13
    SQL 3. SQL 문법_JOIN  (0) 2023.11.13
Designed by Tistory.