반응형
1. 숫자 자료형 Select시 사용하는 Where조건
1) 일치 / 불일치 하는 값 가져오기
# 일치
WHERE EMPLOYEE_ID = 101;
# 불일치
WHERE EMPLOYEE_ID != 105
WHERE EMPLOYEE_ID <> 105
2) 범위의 값을 가져오기
WHERE EMPLOYEE_ID > 105 AND EMPLOYEE_ID <= 110;
# BETWEEN 값1 AND 값2도 같은기능을 함. (<=, >=와 같음. <, >가 아님)
WHERE EMPLOYEE_ID BETWEEN 106 AND 110;
3) 여러값 중에 일치 / 불일치하는 값을 가져오기
WHERE EMPLOYEE_ID IN(105, 106, 107);
|
값이 105,106,107인 행을 가져오기 |
WHERE EMPLOYEE_ID NOT IN (105, 106, 107);
|
값이 105,106,107이 아닌 행을 가져오기 |
WHERE EMPLOYEE_ID IN (
SELECT e1.EMPLOYEE_ID FROM EMPLOYEES e1 WHERE ROWNUM <= 10 ); |
Select의 결과에 해당하는 행을 가져오기 |
2. 문자 자료형 Select시 사용하는 Where조건
1) 일치 / 불일치(문자열의 경우 싱글쿼테이션으로 감싸주어야한다.)
# 일치
WHERE FIRST_NAME = 'Steven';
# 불일치
WHERE FIRST_NAME != 'Steven';
WHERE FIRST_NAME <> 'Steven';
2) 패턴 검색(LIKE)
※ 언더바 ( _ )의 경우 문자 하나를 의미하며, 퍼센트는 (%)없거나 하나이상을 의미함
※ 숫자자료형에서도 같은 방식으로 사용가능
WHERE FIRST_NAME LIKE 'S%';
|
S로 시작함 |
WHERE FIRST_NAME LIKE '%s';
|
s로 끝남 |
WHERE FIRST_NAME LIKE '%am%';
|
am이 포함됨 |
WHERE FIRST_NAME LIKE '%m%e%';
|
m이 포함되고 e가 포함되며, m과 e사이에 길이제한 없는 임의 의 문자가 오거나 오지 않음. |
WHERE FIRST_NAME LIKE 'J____';
|
J로 시작하는 5문자 |
WHERE FIRST_NAME LIKE 'J____%';
|
J로 시작하는 5문자 이상 |
WHERE FIRST_NAME LIKE '_e%_';
|
2번째 문자가 e로 시작하는 3문자 이상 |
3) 정규 표현식 사용 (REGEXP_LIKE)
※ 코딩시 자주 사용하는 정규표현식을 SQL에서도 사용가능
WHERE REGEXP_LIKE(LAST_NAME, '*[e]{2}*[y]$');
|
0개이상문자반복후, 문자e가 2번반복후 0개이상문자반복후 문자 y로 끝나는 값 |
WHERE REGEXP_LIKE(EMPLOYEE_ID, '*[1]{2}');
|
0개이상문자반복후, 숫자1이 2번반복하는 값 |
3. 날짜 / 시간 자료형 Select 시 사용하는 Where 조건
1) 일치 / 불일치(TO_DATE를 사용해서 날짜형식으로 변경해주어야함.)
※ 현재 날짜 : SYSDATE
※ 날짜 데이터를 Where에 수동입력으로 지정하기 위해서는 문자열을 TO_DATE함수를 사용하여 날짜형식을 데이터로 변환해야함.
WHERE HIRE_DATE = TO_DATE('2003-06-17 00:00:00', 'YYYY-MM-DD HH24:MI:SS');
|
값이 2023-06-17인 행을 가져오기 |
WHERE HIRE_DATE != TO_DATE('2003-06-17', 'YYYY-MM-DD');
|
값이 2023-06-17이 아닌 행을 가져오기 |
2) 범위의 값을 가져오기
WHERE HIRE_DATE > TO_DATE('2003-06', 'YYYY-MM') AND HIRE_DATE < TO_DATE('2008-06', 'YYYY-MM')
|
값이 2003-06 ~ 2008-06 사이의 행을 가져오기 |
WHERE HIRE_DATE
BETWEEN TO_DATE('20030601000000', 'YYYYMMDDHH24MISS') AND TO_DATE('20050601000000', 'YYYYMMDDHH24MISS'); |
값이 2003-06-01 ~ 2008-06-01 사이의 행을 가져오기 |
반응형
'데이터베이스 > SQL' 카테고리의 다른 글
JOIN 정리 (0) | 2023.07.22 |
---|---|
GROUP BY 절 정리 (0) | 2023.07.22 |
댓글