WHERE

2024. 5. 31. 19:01SQL

WHERE절
    - 테이블에서 조건을 충족하는 행을 조회할 때 사용
    - WHERE 절에는 조건식(TRUE / FALSE)만 작성
    
비교 연산자 : >, <, <=, >=, =, !=(같지않다), <>(같지않다)
논리 연산자 : AND, OR, NOT

사용 방법
    SELECT 컬럼명 FROM 테이블명 WHERE 조건식;
    -> 지정된 테이블의 모든 행에서 컬럼명이 일치하는 컬럼값 조회

 

급여가 300만원 초과한 사원의 이름, 급여, 부서 코드

 

 

NULL, NOT NULL

컬럼값이 존재하지 않을 경우 "IS NULL;"
컬럼값이 존재할 경우 "IS NOT NULL;"

 

부서코드(DEPT_CODE)가 없는 사원 조회

 

 

BETWEEN
    - 사용 방법
        1. 컬럼명 BETWEEN A AND B;
           컬럼 값이 A 이상 B 이하면 TRUE
        
        2. 컬럼명 NOT BETWEEN A AND B;
           컬럼 값이 A이상 B 이하면 FALSE
           컬럼의 값이 A미만 또는 B 초과시 TRUE

 

SALARY가 300만~500만 사이인 사원들 조회

 

컬럼명 IN(값1, 값2, 값3, ...)
    컬럼의 값이 ()값과 일치하면 TRUE
    
컬럼명 NOT IN(값1, 값2, 값3, ...)
    컬럼의 값이 ()값과 일치하면 FALSE
    컬럼의 값이 ()값과 불일치하면 TRUE
    
WHERE OR 사용해서 값1, 값2, 값3, .. 과 같은 표시를 하기도 함

 

 

LIKE
    - 비교하려는 값이 특정한 패턴을 만족시키면 조회하는 연산자
    - 사용 방법
        WHERE 컬럼명 LIKE '패턴';
        
        % : 포함
        - %A 앞은 어떤 문자열이든 포함하고 마지막은 A로 끝나는 문자열
            EX) %륨 : 검색창에 륨으로 끝나는 단어를 검색한 것과 비슷
            
        - %A% : 앞과 뒤는 어떤 문자열이든 관계없이 중간에 A가 들어가는 문자열
            EX) %로% : 검색창에 로가 중간에 들어간 단어를 검색한 것과 비슷
            
        - A% A로 시작하고 끝은 상관없는 문자열
            EX) 림% : 림으로 시작하는 단어를 검색한 것과 비슷
            
        글자 수
        - A_ : A뒤에 아무거나 한 글자만 있는 문자열
            EX)AB, A1, A가
               가_ : 가로 시작하는 두 글자 단어만 검색
               나__ : 나로 시작하는 세 글자 단어만 검색
        
        _A : A앞에 아무거나 한 글자만 있는 문자열
            EX)BA, 1A, 가A
               _가 : 가로 끝나는 두 글자 단어만 검색
               __나 : 나로 끝나는 세 글자 단어만 검색

         * _ 개수에 따라 요구하는 글자 수가 달라짐 -> _ _ _ A : A 앞에 3글자가 있는 문자열

 

글자에 '하'가 들어가는 사원

 


ESCAPE : LIKE 의미를 벗어나 단순 문자열로 인식
--> 적용 범위 : 특수문자 뒤 한 글자


SELECT EMP_ID EMP_NAME, EMAIL FROM EMPLOYEE WHERE EMAIL LIKE '___#_%' ESCAPE '#';

ESCAPE '#' : 구분 기준 설정, ___LIKE 3글자만 찾으라는 의미로 구분짓는 것
_% -> _로 된 글자 찾기

___#_% __@%
_를 @ 처럼 사용하길 원해서 중간에 #를 넣어준 것

___#_% __돈%
_를 돈처럼 사용하길 원해서 중간에 #를 넣어준 것

LIKE '_#@%' ESCAPE '#' 에서 문자 그대로 @를 의미

구분짓고 싶을 때
LIKE '___^_%' ESCAPE '^';
LIKE '___*_%' ESCAPE '*';

 

DUAL(DUmmy tAbLe)
dummy : 실제로 사용되지 않는 데이터
더미테이블 : 실제로 존재하지는 않는 테이블
    -> 테이블을 만들기는 번거롭고, 테스트나 사용은 해봐야할 때
    -> 단순히 데이터를 조회하거나 확인할 때 사용

 

현재 시각 출력

'SQL' 카테고리의 다른 글

INSERT, UPDATE, DELETE  (0) 2024.05.31
함수  (0) 2024.05.31
SELECT  (0) 2024.05.31
TABLE 설정  (0) 2024.05.31
DDL, DML  (0) 2024.05.31