2. 데이터 제한 및 정렬
특정 데이터만 검색하고, 데이터를 정렬해서 출력한다.
Where 절
where 를 사용하여 특정 행만 검색 할 수 있다.
select ename, sal
from emp
where sal = 3000;
|
문자열 및 날짜를 검색하는 방법
날짜값은 형식을 구분하기 때문에 해당 나라의 날짜 형식에 맞춰서 데이터를 검색해야 한다.
select *
from nls_session_parameters;
|
[실행 결과]
NLS_DATE_FORMAT RR/MM/DD
오라클 연산자의 종류 3가지
1. 산술 연산자 : +, -, *, /
2. 비교 연산자 : >, < >=, <=, =, !=, <>, ^=
3. 논리 연산자 : and, or, not
between .. and .. (두 값 사이, 경계값 포함), in / set (리스트 중 일치하는 값 검색), like (일치하는 문자 패턴 검색), is null (null 값 여부)
select ename, sal
from emp
where sal >= 3000;
|
실행순서 : from (테이블명) → where (검색조건) → select (컬럼명)
같지 않다의 비교연산자는 !=, <>, ^= 가 있다.
기타 비교 연산자 between .. and ..
두 값의 범위 내에 있는 값을 검색하며, 경계값 또한 포함하여 검색한다.
select ename, sal
from emp
where sal >= 1000 and sal <= 3000;
|
월급이 1000에서 3000 사이인 사원들의 이름과 월급을 출력한다.
like
like 는 '~일 것 같은' 의 의미. %(와일드카드)는 이 자리에 무엇이 와도 관계 없고 철자의 갯수가 몇 개든 상관없다는 의미이다.
like 와 % 는 같이 쓰여야 하며, % 를 와일드카드로 인식하려면 = 연산자가 아닌 like 연산자를 사용해야 한다.
_ 는 철자의 갯수가 하나가 와야 할 때 사용한다. 철자의 갯수가 두 개라면 _ 를 두 개를 써준다.
select ename
from emp
where ename like 'S%';
|
S로 시작하는 이름을 검색한다.
in
하나의 값을 비교하여 검색할 때는 = 연산자를 사용하지만 여러 개의 값을 비교하여 검색할 때는 in 연산자를 사용한다.
select ename, empno
from emp
where empno in(7788, 7902);
|
사원번호가 7788, 7902 인 사원의 사원번호와 이름을 검색한다.
is null
- null 값을 검색할 때 사용하는 연산자
- null 값은 알 수 없는 값이므로 =로 비교 할 수 없기 때문에 is null 로 비교한다.
select ename, comm
from emp
where comm is null;
|
커미션이 null 인 사원들의 이름과 커미션을 출력한다.
논리 연산자
- AND : 구성 요소 조건이 모두 참인 경우 TRUE 를 반환한다.
- OR : 구성 요소 조건 중 하나가 참인 경우 TRUE 를 반환한다.
- NOT : 조건이 거짓인 경우 TRUE 를 반환한다.
<진리표>
and | true | false | null |
true | T | F | null |
false | F | F | F |
null | null | F | null |
or | true | false | null |
true | T | T | T |
false | T | F | null |
null | T | null | null |
not | true | false | null |
true | F | T | null |
연산자 우선순위
- 산술 연산자 → 연결 연산자 → 비교조건 → is (not) null, like, (not), in → (not) between → 같지 않음 → not 논리 조건 → and 논리 조건 → or 논리 조건
order by
- 데이터를 정렬하는 절
select ename, sal
from emp
order by sal desc;
|
월급에 의해서 내림차순으로 정렬한다.
- 실행순서는 from → select → order by 이며, order by 절은 항상 마지막에 실행된다.
- select 에 쓰여진 순서대로 order by 에서 숫자로 대체 가능 (1부터 시작)
select ename, sal
from emp
order by 2 desc;
|
치환 변수
- 값만 다르게해서 동일한 컬럼의 결과를 반복해서 봐야할 때 유용한 키워드
- 기호 &를 치환변수로 사용한다.
select empno, ename, sal
from emp
where empno=&empno;
|
- 치환 변수는 단순한 반복 SQL 을 간단하게 처리하고 싶을 때 유용하다.
열 이름, 표현식 텍스트 지정
select empno, ename, &컬럼
from emp
where &조건
order by &정렬컬럼;
|
이중 && 치환변수 사용
- 매번 값을 입력 할 필요없이 변수 값을 재사용하려는 경우 사용한다.
select ename, job, &&컬럼
from emp
order by &컬럼;
|
- 다시 실행하면 묻는 창이 없어지면서 바로 실행된다. 다시 물어보는 창이 나오게 하려면
define
undefine 컬럼
|
을 실행시킨 후 select 문장을 드래그 한 후 실행한다.
verify 명령어
- 치환변수로 값을 넣어서 실행할 때 나오는 결과 중에 아래의 내용이 출력되지 않게 하는 명령어
- SQL Developer 에서는 실행되지 않는다.