Where 절
: 행을 제한하는 조건절
-문자열, 날짜값은 '문자' 로 표현
날짜 : 한국(RR/MM/DD), 미국(DD-MON-RR)
-영문자는 대소문자를 구분함
비교연산자
= > >= < <= 같지않다 : !=,^=,<>
논리연산자
and : 두 조건이 모두 참일 경우 TRUE
or : 두 조건 중 하나라도 참일 경우 TRUE
not : FALSE 경우 TRUE, TRUE 경우 FALSE
논리연산자 우선순위 : 1.not 2.and 3.or
(not) between 하한값 and 상한값
: 범위 조건을 사용하면 값의 범위에 따라 행을 추출
-초과,미만 표현 X
-숫자/문자/날짜 모두 사용 가능
select 열이름
from 테이블명
where 열이름 between ... and ... ;
In (조건1,조건2,...)
: 각 목록의 값과 일치하는 값을 추출할때 사용
is (not) null
: null값을 체크하는 연산자
like
: 문자 패턴을 찾는 연산자
'S%' : S 뒤에 0개 이상 아무 글자.
'S_' : S 뒤에 1개 아무 글자.
-like 추출해야하는 데이터에 % _가 겹칠 시 escape 식별자 사용해야한다.
-escape '부호' : escape 식별자를 부호로 선언. 부호 바로 다음은 문자로 인식.
select 열이름
from 테이블명
where 열이름 like 'HR\%\_' escape '\';
[문제4] employees 테이블에서 급여(salary)가 3000 보다 작거나 같은 사원들의 last_name, salary를 출력해주세요.
select last_name, salary
from employees
where salary <= 3000 ;
[문제5] employees 테이블에서 급여가 2500 ~ 3500 인 사원들의 last_name, salary를 출력해주세요.
select last_name, salary
from employees
where salary between 2500 and 3500 ;
[문제6] employees 테이블에 있는 데이터 중에 job_id 가 SA로 시작되고 salary는 10000이상을 받는 사원들의 모든 정보를 출력해주세요.
select *
from employees
where job_id like 'SA%'
and salary >= 10000 ;
[문제7] last_name의 세번째 문자가 'a' 또는 'e'가 포함된 모든 사원들의 last_name을 출력해주세요.
select last_name
from employees
where last_name like '__a%'
and last_name like '__e%' ;
[문제8] employees 테이블에 있는 데이터에서 job_id컬럼의 값이 SA로 시작하고 10000 이상의 salary(급여)를 받고 2005년도에 입사한(hire_date) 모든 사원들의 정보를 출력하세요.
select *
from employees
where job_id like 'SA%'
and salary >= 10000
and hire_date between '2005/01/01' and '2005/12/31' ;
[문제9] employees 테이블에서 job_id 컬럼의 값이 SA_REP 또는 AD_PRES 사원들 중에 급여가 10000 초과한 사원들의 모든 정보를 출력하세요.
select *
from employees
where job_id in ('SA_REP', 'SA_REP')
and salary > 10000 ;
'SQL' 카테고리의 다른 글
[Oracle] 단일행 함수 - 날짜함수 (0) | 2021.12.22 |
---|---|
[Oracle] 단일행 함수 - 숫자함수 (0) | 2021.12.22 |
[Oracle] 단일행 함수 - 문자함수 (0) | 2021.12.22 |
[Oracle] sort 정렬 (0) | 2021.12.22 |
[Oracle] 기본 이해하기 (0) | 2021.12.21 |