SQL 관련 정리

pnlkc·2023년 1월 24일
0
post-thumbnail
post-custom-banner

SQL 기본 형식

SELECT 찾을 열1, 찾을 열2
FROM 검색할 테이블
WHERE 조건
ORDER BY 조건


-- 예시)
SELECT WAREHOUSE_ID, WAREHOUSE_NAME
FROM FOOD_WAREHOUSE
WHERE ADDRESS LIKE '%경기도%'
ORDER BY WAREHOUSE_ID

정렬 (ORDER BY)

ORDER BY 조건 ASC  -- 오름차순
ORDER BY 조건 DESC  -- 내림차순
ORDER BY 조건1, 조건2  -- 조건1이 동일하면 조건2로 정렬

그룹 묶기 (GROUP BY)

GROUP BY 열 이름 HAVING 조건


-- 예시)
GROUP BY NAME HAVING COUNT(*) > 1

특정 문자열 포함 조건 (like)

WHERE 조건 like '%찾고자 하는 문자열%'  -- %는 다른 문자가 추가되도 되는 위치를 표시


-- 예시)
WHERE ADDRESS like '경기도%'  -- '경기도'로 시작하는 문자열만 검색

특정 조건에 따른 값 반환 (CASE...END)

SELECT 찾을 열1
     , 찾을 열2
     , CASE 
         WHEN 조건1 THEN1
         WHEN 조건2 THEN2
         ELSE3
       END


-- 예시)
SELECT WAREHOUSE_ID
     , WAREHOUSE_NAME
     , ADDRESS
     , CASE 
           WHEN FREEZER_YN is NULL THEN 'N' 
           ELSE FREEZER_YN 
       END

한 테이블과 다른 테이블 합치기 (JOIN ... ON)

FROM 테이블1
JOIN 테이블2
ON 테이블1.= 테이블2.-- 예시)
FROM BOOK b
JOIN AUTHOR a
ON b.AUTHOR_ID = a.AUTHOR_ID

시간 포맷 (DATE_FORMAT)

DATE_FORMAT(열 이름, "%Y-%m-%d")
  • Y, m, d = 년, 월, 일
  • H = 시간

반올림 (ROUND)

ROUND(숫자 또는 열 이름, 반올림할 자릿 수)


-- 예시)
ROUND(AVG(DAILY_FEE), 0)

평균 (AVG)

AVG(평균을 구할 열)


-- 예시)
AVG(DAILY_FEE)

범위 검색하기 (BETWEEN A AND B)

-- 예시)
DATE_FORMAT(DATETIME, '%H') BETWEEN 9 AND 18

날짜 사이 간격 구하기 (DATEDIFF)

DATEDIFF(종료일, 시작일) + 1

-- 예시)
DATEDIFF(END_DATE, START_DATE) + 1
profile
안드로이드 개발 공부 블로그
post-custom-banner

0개의 댓글