where 절 쿼리
* 이 장에서 다룰 내용
1. WHERE 조건
2. 비교 연산자
01. WHERE 조건과 비교 연산자
■ 원하는 로우만 얻으려면 다음과 같이 로우를 제한하는 조건을 SELECT 문에 WHERE 절을 추가하여 제시해야 합니다.
형식 | SELECT * [column1, column2, .., column^n] FROM table_name WHERE 조건절; |
■ 조건절은 다음의 세부분으로 구성이 됩니다.
조건절의 구성 | WHERE SAL >= 3000; ①컬럼 ②연산자 ③비교대상값 |
01-1. 연산자의 우선순위
우선순위 | 연산자 |
1 | 산술연산자 (*, /, +, -) |
2 | 연결 연산자(||) |
3 | 비교연산자(<, >, <=, =>, <>(!=), =) |
4 | IS NULL, LIKE, IN |
5 | BETWEEN |
6 | NOT 논리 연산자 |
7 | AND 논리 연산자 |
8 | OR 논리 연산자 |
■ 비교 연산자
select empno, ename, sal from emp where sal = 3000;
-- sal이 3000인 경우에만 검색하라.
select empno, ename, sal from emp where sal > 3000;
-- sal이 3000보다 큰 경우에 대해서 검색하라.
select empno, ename, sal from emp where sal < 3000;
-- sal이 3000보다 미만인 경우에 대해서 검색하라.
select empno, ename, sal from emp where sal >= 3000;
-- sal이 3000 이상인 경우에 대해서 검색하라.
select empno, ename, sal from emp where sal <= 3000;
-- sal이 3000 이하인 경우에 대해서 검색하라.
select empno, ename, sal from emp where sal <> 3000;
-- sal이 3000이 아닌것에 대해서 검색하라.
■ 연산자 우선순위 비교해보기
select empno, ename, sal from emp where sal < 3000 + 1;
3000이 1증가되고 sal과 비교, 연산자 우선순위가 산술연산자가 더 높음.
02. DOS 프롬프트로 나가게 하는 HOST
select * from emp where deptno=10;
emp의 모든 컬럼을 선택하고 deptno가 10인 데이터를 검색하시오.
* 탄탄히 다지기
select empno, ename, sal from emp where sal <= 1500;
-- sal이 1500이하인 사원의 사원번호와 사원 이름을 출력하라.
03. 문자 데이터 조회
■ 이전 예제에서 비교 연산자를 하기 위해서 다루었던 컬럼들은 수치 형태로 선언되었습니다. 이번에는 급여가 아닌 사원 이름 같은 문자 데이터를 조회해 봅시다.
■ 다음은 이름이 FORD인 사원이 사원번호(EMPNO)과 사원이름(ENAME)과 급여(SAL)을 출력하는 예제입니다.
예 | SELECT EMPNO, ENAME, SAL FROM EMP WHERE ENAME = 'FORD'; -- 사원 이름이 FORD인 경우 출력. |
■ SQL에서 문자열이나 날짜는 반드시 단일 따옴표(singlequotation)안에 표시해야 합니다.
■ SQL문에 사용되는 키워드인 SELECT나 FROM 이나 WHERE등은 대소문자를 구별하지 않지만 테이블 내에 저장된 데이터 값은 대소문자를 구분하기에 WHERE ENAME ='ford'와 같이 기술하면 사원이름이 FORD인 사원을 찾을 수 없습니다.
* 탄탄히 다지기
select empno, ename, sal from emp where ename = 'SCOTT';
04. 날짜 데이터 조회
■ 1982년 1월 1일 이후에 입사한 사원을 조회하려면 어떻게 해야할까요? 날짜는 문자열과 마찬가지로 단일 따옴표 안에 기술해야 합니다.
■ 다음은 1982년 1월 1일 이후에 입사한 사원을 출력하는 예제입니다.
select * from emp where hiredate <= '1982/01/01';
select * from emp where hiredate <= '1982-01-01';
select * from emp where hiredate <= '8211'; -- 이 경우엔 리터럴이 형식 문자열과 일치하지 않음.
-- hiredate가 1982년 1월 1일보다 작거나 같은 데이터만 출력하시오.
학습정리.
■ 원하는 로우만 얻으려면 다음과 같이 로우를 제한하는 조건을 SELECT 문에 WHERE 절을 추가하여 제시해야합니다.
형식 | SELECT * [column1, column2, .., column^n] FROM table_name WHERE 조건절; |
■ 조건절은 다음의 세부분으로 구성이 됩니다.
1. 컬럼명
2. 연산자
3. 값
■ 조건연산자 종류
'Study > OracleDB' 카테고리의 다른 글
9강 오라클 SQL Like, sort 정렬 (4) | 2022.09.06 |
---|---|
8강 오라클 논리연산자, Between in (1) | 2022.09.06 |
6강 오라클 SQL 연산자 (0) | 2022.09.05 |
5강 오라클 select 모든 기능 특정열 선택 (0) | 2022.09.05 |
4강 오라클 select기능과 타입 (0) | 2022.09.05 |