-
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