BETWEEN AND : 조건식에서 사용되는 구문
=> 0이상 ~ 이하인 범위에 대한 조건을 제시하는 구문
[표현법]
비교대상컬럼명 : BETWEEN 최소값 AND 최댓값
= > 해당 컬럼의 값이 최소값 이상이고 최대값 이하인 경우
BETWEEN을 사용하지 않은 예 :
SELECT EMP_NAME, EMP_ID, SALARY
FROM employee
WHERE SALARY >= 3500000 AND SALARY <= 60000000;
-- BETWEEN을 사용한 예
SELECT EMP_NAME, EMP_ID, SALARY
FROM employee
WHERE SALARY BETWEEN 3500000 AND 6000000;
논리 부정 연산자 : NOT
SELECT EMP_NAME, EMP_ID, SALARY
FROM employee
WHERE SALARY NOT BETWEEN 3500000 AND 6000000;
IN : 비교대상컬럼값이 제시한 값들 중에 일치하는 값이 있는 경우 조회하는 연산자
[표현법]
비교대상컬럼명 IN('값1', '값2', '값3' )
LIKE : 비교하고자 하는 컬럼의 값이 제시한 특정 패턴에 만족할 경우 조회
특정 패턴 : ' % ' , '_'를 와일드카드로 사용
ex)
비교대상 컬럼명 LIKE '문자%' = > 비교대상 컬럼의 값에 문자로 시작되는 것을 조회
비교대상 컬럼명 LIKE '%문자' = > 비교대상 컬럼의 값이 문자로 끝나는 것을 조회
비교대상 컬럼명 LIKE '%문자%' = > 비교대상 컬럼의 문자 포함되는 것을 조회 (키워드 검색)
' _ ' 1글자
ex)
비교대상 컬럼명 LIKE ' _문자 ' => 비교대상 컬럼의 값에서 문자 앞에 무조건 한글자가 올 경우 조회
비교대상 컬럼명 LIKE ' __문자 ' => 비교대상 컬럼의 값에서 문자 앞에 무조건 두글자가 올 경우 조회
비교대상 컬럼명 LIKE ' _문자_ ' => 비교대상 컬럼의 값에서 문자 앞뒤에 무조건 한글자가 올 경우 조회
SELECT EMP_NAME, SALARY, HIRE_DATE
FROM employee
WHERE EMP_NAME LIKE '기%'; -- 시작되는 값 조회
SELECT EMP_NAME, EMP_NO, PHONE
FROM employee
WHERE EMP_NAME LIKE '%임%'; -- 키워드 검색
-- 비교대상 컬럼의 문자 포함되는 것을 조회(키워드 검색)
SELECT EMP_ID, EMP_NAME, PHONE, email
FROM employee
WHERE PHONE LIKE '__1%'; -- 사원들 중 연락처의 3번째 자리가 1인 사원의 사번 사원명 연락처 이메일 조회
SELECT EMP_NAME, PHONE
FROM employee
WHERE EMP_NAME LIKE '_수_';
가운데에 '수'가 포함된 글자를 조회
--> 와일드카드로 사용되는 문자와 컬럼에 담긴 문자가 동일하기 때문에 모두 와일드카드로 인식됨
--> 따라서, 구분을 해줘야 함! (=> ESCAPE를 사용하여 등록 후 적용)
-- ESCAPE
SELECT EMP_ID, EMP_NAME, email
FROM employee
WHERE email LIKE '___!_%' ESCAPE '!';
IS NULL, IS NOT NULL : 컬럼값에 NULL이 있을 경우 NULL값을 비교할 때 사용하는 연산자
SELECT EMP_ID, EMP_NAME, SALARY, BONUS
FROM employee
-- WHERE bonus IS not NULL
WHERE NOT bonus IS NULL;
-- 부서 배치를 받지 않았지만, 보너스를 받고 있는 사원의 사원명, 보너스, 부서코드 조회
SELECT EMP_NAME, bonus, DEPT_CODE
FROM employee
-- WHERE bonus IS not NULL
WHERE dept_code IS NULL AND BONUS IS NOT NULL;
* 연산자 우선 순위 :
- 0 : ()
- 1 : 산술연산 : +,-,*,/
- 2 : 연결연산자 : ||
- 3 : 비교연산자 : > < >= <= = != ^= <>
- 4 : IS NULL, IS NOT NULL '패턴' / IN
- 5 : BETWEEN AND
- 6 : NOT
- 7 : AND
- 8 : OR
[표현법]
SELECT : 조회할 컬럼....
FROM : 테이블명
WHERE : 조건식
ORDER BY : 정렬 기준으로 잡은 컬럼 |별칭| 컬럼 순번 [ASC|DESC] 생략이 가능하다
ASC : 오름차순
DESC : 내림차순
NULLS FIRST : 정렬하고자하는 컬럼의 값이 NULL인 경우 해당 데이터를 맨 앞에 배치
[DESC인 경우 기본값]
NULLS LAST : 정렬하고자하는 컬럼의 값이 NULL인 경우 해당 데이터를 맨 뒤에 배치
[ASC인 경우 기본값]
SELECT *
FROM employee
ORDER BY bonus; -- 기본값 (ASC, NULLS LAST)
SELECT *
FROM employee
ORDER BY bonus DESC; -- 기본값 (ASC, NULLS FIST)
SELECT *
FROM employee
ORDER BY bonus DESC, SALARY ASC; -- 기본값 (ASC, NULLS FIST
-- 보너스 값을 내림차순 정렬하는데 같은 값인 경우 급여의 값을 오름차순 정렬하겠다
'ORACLE SQL' 카테고리의 다른 글
SQL 관련 문제 풀이 (0) | 2024.07.19 |
---|---|
SQL 정리 연산자 모음 (0) | 2024.07.19 |
SQL 4일차 형변환 (0) | 2024.07.19 |
SQL 함수 정리 (FUNCTION) 3일차 (0) | 2024.07.19 |
SQL 내용 정리 1일차 완전 기초정리 (0) | 2024.07.16 |