[Oracle/sql] 프로그래머스 sql문제 정리

2021. 8. 4. 14:45

1. SELECT

count(*) = 집계
count(컬럼명)
ROWNUM
ROWNUM() over( 정렬 )

 

2. ORDER BY

ORDER BY (컬럼명) (ASC -오름차순 기본)
ORDER BY (컬럼명) DESC - 내림차순
ORDER BY NAME, DATETIME DESC - 여러개 정렬



3. GROUP BY

SELECT [GROUP BY 절에 지정된 컬럼1] [GROUP BY별로 집계할 값] 
FROM [테이블 명] 
GROUP BY [ 그룹으로 묶을 컬럼 값 ]
HAVING [조건 추가] ;



4. WHERE

WHERE (컬럼명) = '문자' 
WHERE (컬럼명) = 숫자


1) 비교연산자 사용 = , >= , <= , < , >

2) 논리연산자 NOT, AND, OR 사용

3)IN , NOT IN연산자의 사용
- 여러 값을 OR 관계로 묶어 나열하는 조건을 WHERE  절에 사용할 때 씀
WHERE NAME IN('Lucy', 'Ella', 'Pickle', 'Rogan', 'Sabrina', 'Mitty')
WHERE NAME NOT IN('Lucy', 'Ella', 'Pickle', 'Rogan', 'Sabrina', 'Mitty')

4) (컬럼명) Like ('%문자열') or ('문자열%') or ('%문자열%')

5) UPPER() 와 LOWER() 
WHERE UPPER(컬럼명) = 'APPLE'

6) case when else end 문
CASE WHEN SEX_UPON_INTAKE LIKE '%Neutered%' THEN 'O' 
            WHEN SEX_UPON_INTAKE LIKE '%Spayed%' THEN 'O'
            ELSE 'X' 
        END AS 중성화

 

4) BETWEEN A AND B

 

5. SUM , MAX, MIN

SELECT MIN(컬럼명)
SELECT MAX(컬럼명)

 

 

6. IS NULL, IS NOT NULL, DISTINICT, NVL

사용법: (컬럼명) IS NULL / (컬럼명) IS NOT NULL

함수명(컬럼명,다른 컬럼 혹은 값)

 

7. 변환형 함수
TO_CHAR : 숫자나 날짜를 문자열로 변환
TO_NUMBER : 문자를 숫자로 변환
TO_DATE : 문자를 날짜로 변환

SELECT

TO_CHAR(SYSDATE, 'YYYY-MM-DD'), --현재날짜 /
TO_CHAR(SYSDATE, 'YYYY-MM-DD'), --현재날짜 -
TO_CHAR(SYSDATE, 'YYYY'), --현재년도
TO_CHAR(SYSDATE, 'MM'), --현재 월
TO_CHAR(SYSDATE, 'DD'), --현재 일
TO_CHAR(SYSDATE, 'DAY'), --현재 요일
TO_CHAR(SYSDATE, 'HH24:MI:SS'), --현재시간 포맷 (24시간)
TO_CHAR(SYSDATE, 'HH:MI:SS') --현재시간 포맷 (12시간)

FROM
DUAL
 

level connect by

 

SELECT LEVEL

FROM DUAL

CONNECT BY LEVEL<24

 

join

없어도 나와야대는곳에 (+) 하면 아우터조인

 

DATETIME끼리 연산가능

 

UNION =합집합

INTERSECT =교집합

MINUS = 차집합

 

 

 

BELATED ARTICLES

more