오늘보다 더 나은 내일의 나에게_

Oracle 21/12/24 본문

Oracle

Oracle 21/12/24

chan_96 2022. 1. 12. 21:39
728x90

다른 비교 조건

BETWEEN ... AND ... => 두 값 사이(지정한 값 포함)

EX) BETWEEN 2500 AND 3000 (2500 이상 3000 이하의 값)

-주로 숫자나 날짜 값에 대해 사용한다

 

 

BETWEEN 예제

 

 

IN(set)  => 값 목록 중의 값과 일치 / 똑같은 값 여러 개의 동시에(복수 연산자) / 단일 값

-비교대상의 컬럼과 값이 같은 타입 이어야 한다!

IN예제

 

LIKE  => 값의 일부만 알고 있을 때(복수 연산자)

-일부를 알고 있을 때 사용

-문장 전체를 의미 > (%)

-문자 하나를 의미 > (_)

-LIKE라는 연산자 안에서만 %,_의미가 다른 연산자에서는 다르다!

 

LIKE예제

 

**날짜 같은 경우에는 순서에 주의!**

HIRE_DATE가 2006인 예제

 

예제

IS NULL     => 널 값

연산자를 사용하여 NULL이 있는지의 판단!

MANAGER_ID가 NULL인 결과

 


논리 조건

-논리 조건 연산자를 사용하고 뒤에는 무조건 새로운 조건식의 와야 한다.

 

연산자 의미
AND 구성 요소 조건이 모두 TRUE면 TRUE 반환
OR 구성 요소 조건이 하나라도 TRUE면 TRUE를 반환
NOT 뒤따르는 조건이 FALSE면 TRUE를 반환

90번 부서에 근무하는 중에 급여가 5000이상인 사원의 이름과 급여를 출력
AND 예제
OR 예제

NOT 연산자는 BETWEEN, LIKE, NULL 등 다른 SQL 연산자와 함께 사용할 수 있다

***IS 뒤에 NOT 오고, BETWEEN, LIKE, NULL 앞에 NOT이 온다***

컬럼 앞에 NOT이 올 수 있지만 권장하는 방법은 아니다.

 

NOT 예제

 

****연산자에 AND와 OR가 같이 사용되면 AND 먼저 실행된다!****

AND와 OR 동시 사용 예제

 

AND, OR 사용시 괄호 사용 예제

 

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절에 AS별칭 사용 예제

 

 

ORDER BY절에 두 개 이상의 컬럼이 와서 정렬을 할 때(멀티풀 정렬)

내부적으로 그룹화가 일어난다.

ORDER BY 예제


실습 예제


더보기

1. 연봉이 12000 이상되는 사원들의 이름 및 연봉을 출력

1번 문제

2. 사원번호가 176 인 사원의 이름과 부서 번호를 출력하시오

2번 문제

3. 연봉이 150,000에서 200,000의 범위 이외인 사원들의 이름 및 연봉을 출력 / 연봉은 AnnSal로 출력

3번 문제(AS 생략 가능) / AND 연산으로도 가능하나 비효율적

4. 2003/01/01 일부터 2005/05/30일 사이에 고용된 사원들의 이름, 사번, 고용 일자를 출력하시오.

   고용 일자를 역순으로 정렬

    **날짜 형식은 2003/01/01 = 03-01-01 = 030101 도 가능하지만 테이블 형식에 맞게 해 주는 게 좋다**

4번 문제

5. 20번 및 50번 부서에서 근무하는 모든 사원들의 이름 및 부서 번호를 알파벳순으로 출력

5번 문제

6. 20번 및 50번 부서에 근무하며, 연봉이 200,000 ~ 250,000 사이인 사원들의 이름 및 연봉 출력

6번 문제

7. 2006년도에 고용된 모든 사람들의 이름 및 고용일을 조회

   - 칼럼의 형식에 맞춰서 LIKE연산자 사용!( LIKE('2006%') 사용 시 오류! => LIKE('06%') )

7번 문제

8. 매니저가 없는 사람들의 이름 및 업무를 출력

8번 문제

9. 매니저가 있는 사람들의 이름 및 업무, 매니저 번호를 조회

9번 문제

10. 커미션을 받는 모든 사원들의 이름, 연봉 및 커미션을 출력 / 연봉을 역순으로 정령, 연봉은 ANNSAL로 출력

    - 커미션을 받는! => 조건(WHERE COMMISSION_PCT IS NOT NULL)

10번 문제

11. 이름의 네 번째 글자가 a인 사원의 이름을 조회

11번 문제

12. 이름에 a 및 e 글자가 있는 사원의 이름을 조회

12번 문제

13. 급여가 2500, 3500, 7000이 아니며 직업이 SA_REP나 ST_CLERK인 사원의 이름과 급여, 직업을 출력

13번 문제

 

오늘 중요한 내용

**IN 복수 연산자**

728x90

'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
Comments