[비교연산자] 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;
'자바스프링웹공부(2024) > 마이에스큐엘' 카테고리의 다른 글
2024.08.05. join (0) | 2024.08.05 |
---|---|
2024.08.01. MySQL Workbench를 이용한 ERD 만들기 ( 리버스 모델링 ) (0) | 2024.08.01 |
2024.07.31. MySQL SELECT(조회) - 1 (0) | 2024.07.31 |
테이블 삽입/수정/삭제 (0) | 2024.07.29 |
2024.07.22. DB 오리엔테이션 (0) | 2024.07.28 |