BETWEEN AND (~부터 ~ 까지)
o 비교하려는 값이 지정한 범위에 포함되면 TRUE를 리턴하는 연산자 상한 값과 하한 값의 경계도 포함된다.
급여를 3500000보다 많이 받고 6000000보다 적게 받는 직원 이름과 급여 조회 |
|
SELECT EMP_NAME, SALARY FROM EMPLOYEE WHERE SALARY >= 3500000 AND SALARY <= 6000000; |
SELECT EMP_NAME, SALARY FROM EMPLOYEE WHERE SALARY BETWEEN 3500000 AND 6000000; |
LIKE (~로 시작,포함,끝나는 단어)
o 특정 패턴의 문자 값을 조회하는 기능으로 비교하려는 값이 특정 패턴을 만족하면 TRUE를 리턴 하는 연산자이다.
o ‘%’와 ‘_’를 와일드카드로 사용한다.
o 사용 형식 : SELECT 컬럼명 FROM 테이블명 WHERE 컬럼명 LIKE 패턴;
% : 0개 이상의 임의의 문자 (0개 포함) |
_ : 1개의 임의의 문자 표시 |
LIKE '%안녕' : 안녕(O), ,아아아아안녕(O), 안 녕(X) -> 안녕으로 끝나는 문자열만 조회 LIKE '홍%' : 홍으로 시작하는 문자열 LIKE '%병%' : 병을 포함하고 있는 문자열 |
LIKE '_안녕' : 안녕(X) 하안녕(O) 1안녕(O) -> 안녕으로 끝나는 3글자 문자열 LIKE '___' : 3글자 문자열 LIKE '_종_' : 가운데 종을 포함하는 3글자 문자열 |
사원 이름에 ‘이’가 포함된 사원을 조회 |
핸드폰의 앞 네 자리 중 첫 번호가 7인 |
SELECT * FROM EMPLOYEE WHERE EMP_NAME LIKE ‘%이%’; |
SELECT EMP_NAME, PHONE FROM EMPLOYEE WHERE PHONE LIKE ‘_ _ _7%’; |
o 와일드 카드 문자와 패턴의 특수문자가 동일한 경우 어떤 것을 패턴으로 결정하는지 구분할 수 없다.
o 데이터로 처리할 와일드 카드 문자 패턴 기호 앞에 임의의 특수문자를 사용하고 ESCAPE로 등록하여 처리한다.
EMAIL ID 중 ‘_’의 앞이 3자리인 직원 이름, 이메일 조회 | |
SELECT EMP_NAME, EMAIL FROM EMPLOYEE WHERE EMAIL LIKE ‘_ _ _#_%’ ESCAPE ‘#’; |
SELECT EMP_NAME, EMAIL FROM EMPLOYEE WHERE EMAIL LIKE ‘_ _ _^_%’ ESCAPE ‘^’; |
NOT LIKE
o LIKE와 반대되는 개념으로 지정한 특정 패턴에 만족하지 않는 데이터를 출력한다.
‘이’씨 성이 아닌 직원 사번, 이름, 이메일 조회 |
|
SELECT EMP_ID, EMP_NAME, EMAIL FROM EMPLOYEE WHERE EMP_NAME NOT LIKE ‘이%’; |
SELECT EMP_ID, EMP_NAME, EMAIL FROM EMPLOYEE WHERE NOT EMP_NAME LIKE ‘이%’; |
IS NULL과 IS NOT NULL (NULL인지 아닌지)
o NULL 여부를 비교하는 연산자
o NULL값은 아무 의미 없는 공값으로 연산처리가 되지 않는다.
o IS NULL : 컬럼에 있는 NULL값을 조회하는 연산자
IS NOT NULL : 컬럼에 있는 NULL이 아닌 값을 조회하는 연산자
부서 배치를 받지 않은 직원 조회 |
부서 배치를 받지 않았지만 보너스를 지급받는 직원 조회 |
SELECT * FROM EMPLOYEE WHERE AND DEPT_CODE IS NULL; |
SELECT EMP_NAME, BONUS, DEPT_CODE FROM EMPLOYEE WHERE DEPT_CODE IS NULL AND BONUS IS NOT NULL; |
IN / NOT IN (~이거나)
o 비교하려는 값 목록에 일치하는 값이 있으면 TRUE를 반환하는 연산자
o 다중행 서브 쿼리를 비교할 때 이용한다.
부서가 D5 또는 D6인 부서원들의 이름, 부서코드 조회 |
|
SELECT EMP_NAME, DEPT_CODE FROM EMPLOYEE WHERE DEPT_CODE=‘D6’ OR DEPT_CODE=‘D8’; |
SELECT EMP_NAME, DEPT_CODE FROM EMPLOYEE WHERE DEPT_CODE IN (‘D6’, ‘D8’); |
'DB' 카테고리의 다른 글
[SQL] 집합 연산 - UNION, UNION ALL, INTERSECT, MINUS, GROUPING SET (0) | 2021.03.08 |
---|---|
[SQL] 함수 명령어 정리- 문자, 숫자, 날짜, 형변환, 그룹 (0) | 2021.03.08 |
[SQL] SELECT문 명령어 - DISTINCT, WHERE, 연산자 (0) | 2021.02.27 |
[SQL] SELECT문 - 정의, 산술 연산, 별칭, 리터럴 (0) | 2021.02.27 |
[SQL] SQL 개념 및 종류(DDL,DML,DQL,DCL,TCL) (0) | 2021.02.27 |