오늘보다 더 나은 내일의 나에게_
Oracle 21/12/24 본문
다른 비교 조건
BETWEEN ... AND ... => 두 값 사이(지정한 값 포함)
EX) BETWEEN 2500 AND 3000 (2500 이상 3000 이하의 값)
-주로 숫자나 날짜 값에 대해 사용한다
IN(set) => 값 목록 중의 값과 일치 / 똑같은 값 여러 개의 동시에(복수 연산자) / 단일 값
-비교대상의 컬럼과 값이 같은 타입 이어야 한다!
LIKE => 값의 일부만 알고 있을 때(복수 연산자)
-일부를 알고 있을 때 사용
-문장 전체를 의미 > (%)
-문자 하나를 의미 > (_)
-LIKE라는 연산자 안에서만 %,_의미가 다른 연산자에서는 다르다!
**날짜 같은 경우에는 순서에 주의!**
IS NULL => 널 값
연산자를 사용하여 NULL이 있는지의 판단!
논리 조건
-논리 조건 연산자를 사용하고 뒤에는 무조건 새로운 조건식의 와야 한다.
연산자 | 의미 |
AND | 구성 요소 조건이 모두 TRUE면 TRUE 반환 |
OR | 구성 요소 조건이 하나라도 TRUE면 TRUE를 반환 |
NOT | 뒤따르는 조건이 FALSE면 TRUE를 반환 |
NOT 연산자는 BETWEEN, LIKE, NULL 등 다른 SQL 연산자와 함께 사용할 수 있다
***IS 뒤에 NOT 오고, BETWEEN, LIKE, NULL 앞에 NOT이 온다***
컬럼 앞에 NOT이 올 수 있지만 권장하는 방법은 아니다.
****연산자에 AND와 OR가 같이 사용되면 AND 먼저 실행된다!****
ORDER BY
- ASC : 오름차순, 기본값(생략 가능)
- DESC : 내림차순
=> ORDER BY 절은 SELECT 문의 가장 끝에 온다.
사용 방법 => ORDER BY 컬럼명 (ASC OR DESC)
컬럼명 대신 SELECT문의 컬럼순서대로의 숫자를 쓸 수 있으나 권장되는 사용방법이 아니다!
오름차순일 경우 NULL이 최상단에 위치
내림차순일 경우 NULL이 최하단에 위치
***ORDER BY절에 AS별칭 사용 가능***
실행 순서
SELECT --------------3
FROM --------------1
WHERE -------------2
ORDER BY ----------4
ORDER BY절에 두 개 이상의 컬럼이 와서 정렬을 할 때(멀티풀 정렬)
내부적으로 그룹화가 일어난다.
실습 예제
1. 연봉이 12000 이상되는 사원들의 이름 및 연봉을 출력
2. 사원번호가 176 인 사원의 이름과 부서 번호를 출력하시오
3. 연봉이 150,000에서 200,000의 범위 이외인 사원들의 이름 및 연봉을 출력 / 연봉은 AnnSal로 출력
4. 2003/01/01 일부터 2005/05/30일 사이에 고용된 사원들의 이름, 사번, 고용 일자를 출력하시오.
고용 일자를 역순으로 정렬
**날짜 형식은 2003/01/01 = 03-01-01 = 030101 도 가능하지만 테이블 형식에 맞게 해 주는 게 좋다**
5. 20번 및 50번 부서에서 근무하는 모든 사원들의 이름 및 부서 번호를 알파벳순으로 출력
6. 20번 및 50번 부서에 근무하며, 연봉이 200,000 ~ 250,000 사이인 사원들의 이름 및 연봉 출력
7. 2006년도에 고용된 모든 사람들의 이름 및 고용일을 조회
- 칼럼의 형식에 맞춰서 LIKE연산자 사용!( LIKE('2006%') 사용 시 오류! => LIKE('06%') )
8. 매니저가 없는 사람들의 이름 및 업무를 출력
9. 매니저가 있는 사람들의 이름 및 업무, 매니저 번호를 조회
10. 커미션을 받는 모든 사원들의 이름, 연봉 및 커미션을 출력 / 연봉을 역순으로 정령, 연봉은 ANNSAL로 출력
- 커미션을 받는! => 조건(WHERE COMMISSION_PCT IS NOT NULL)
11. 이름의 네 번째 글자가 a인 사원의 이름을 조회
12. 이름에 a 및 e 글자가 있는 사원의 이름을 조회
13. 급여가 2500, 3500, 7000이 아니며 직업이 SA_REP나 ST_CLERK인 사원의 이름과 급여, 직업을 출력
오늘 중요한 내용
**IN 복수 연산자**
'Oracle' 카테고리의 다른 글
Oracle 12/12/29 (0) | 2022.01.12 |
---|---|
Oracle 21/12/28 (0) | 2022.01.12 |
Oracle 21/12/27 (0) | 2022.01.12 |
Oracle 21/12/23 (0) | 2022.01.12 |
Oracle 21/12/22 (0) | 2022.01.12 |