본문 바로가기

자바스프링웹공부(2024)/마이에스큐엘

2024.08.01. select - 2

반응형

[비교연산자] in

- 다중행비교연산자로 우변에 있는 값리스트와 비교해서 하나이상 동일하면 true를 반환함. (=, OR) 성격을 내포함.

select employee_id, last_name, salary, manager_id
from employees
where manager_id in (100, 101, 201);
-- where manager_id = 100 or manager_id = 101 or manager_id = 201; 
-- => 위와 같은 결과를 반환하지만, 이 코드보다 in 이 가독성이 좋고, 코드가 짧아져서 더 좋다.

-- < 결과 >
employee_id, last_name, salary, manager_id
	204 		Baer 	10000 	101
	205 		Higgins 12000 	101
	202 		Fay 	6000 	201

 


[비교연산자] like
- 패턴일치 여부를 비교해주는 연산자.
- like 연산자와 함께 사용되는 기호 1) % : 0개 또는 여러개의 문자가 올 수 있음.
                                                        2) _ : 반드시 하나의 문자가 와야함. 
- (예1) a로 시작되는 문자열 찾기 : (작은따옴표 사용)'a%'
- (예2) a가 포함된 문자열 : '%a%' 
- (예3) a로 끝나는 문자열 : '%a' 
- (예4) 두번째 문자가 a인 문자열 : '_a%'
- (예5) 끝에서 세번쨰 문자가 a인 문자열 : '%a__'

Q. 1997년도에 입사한  사원을 출력하시오.

select employee_id, last_name, hire_date
from employees
where hire_date like '1997%';
-- where hire_date between '1997-01-01' and '1997-12-31';
-- where hire_date >= '1997-01-01' and hire_date <= '1997-12-31';


Q. 1월에 입사한 직원 찾기

select employee_id, last_name, hire_date
from employees
where hire_date like '%01-__';


 [비교연산자4] is null
- 값이 null인지 비교해주는 연산자 
  사용법 : where MANAGER_ID is null;

 


*논리연산자 종류 : and, or, not

[논리연산자1] and
- where 절에 여러개의 조건문 작성시 and 연산자로 나열한 경우
- 모두 만족해야 where절이 true가 될 수 있음.
- or 보다 우선순위가 높다. 

Q. where 절에 and와 or가 함께 사용된 경우.
- 우선순위 : and  (높)>> or(낮)

select employee_id, LAST_NAME, SALARY, DEPARTMENT_ID
from employees
where  DEPARTMENT_ID = 50
or  DEPARTMENT_ID = 30
and SALARY >= 10000;
-- 결과 : DEPARTMENT_ID = 30 and SALARY >= 10000 부터 시작하기 때문에
-- 50은무조건 나오고 30과 10000을 만족시키는 것이 나온다.



Q. or 먼저 출력하고 싶은 때

select employee_id, LAST_NAME, SALARY, DEPARTMENT_ID
from employees
where  	(DEPARTMENT_ID = 50 or  DEPARTMENT_ID = 30)
and 	SALARY >= 10000;
-- where  DEPARTMENT_ID in (50, 30) and SALARY >= 10000;


[논리연산자3] not

 <<비교연산자 정리>>
- =  <->  <>, !=
- >, >=  <->  <, <=
- between <-> not between : A미만 B초과
- in :(=, OR) <-> not in : (<>, AND)
- like  <-> not like : 이 패턴에 만족하지 않느 것 검색.
- is null  <-> is not null


** ORDER BY

-  항상 마지막에 작성한다고 생각하면 됨.

[문법] 	select 컬럼1, 컬럼2, ...
       	from 테이블명
	[ where 조건문 ]
	[ order by 컬럼명 [asc | desc ] ] ;

 

* 위치표기법

select employee_id, last_name, department_id, salary, email
from employees
order by 3 desc; -- select 절에 나열되어 있는 순서대로 위치값이 부여가 돼서 '위치표기법'이라 함
-- order by department_id desc;

select  last_name, salary, commission_pct 
from employees
where COMMISSION_PCT is null
order by 2 desc;
-- order by salary desc;

 

반응형