본문 바로가기
IT 개발

[Oracle DB] 실행 순서와 연산자 종류를 모두 알아보기

by gorokeya 2021. 4. 24.

 

기본형식 (순서)

 

select 칼럼명 (5) 

from 테이블명 (1) 

where 조건절 (2) 

group by 칼럼명 (3) 

having 조건절 (4) 

order by 칼럼명 asc/desc (6) 

 

 

// 실행 순서는 from부터 having까지 1~4번으로 실행되고 그다음 select, order by 순으로 실행된다.

// order by로 그룹을 정렬해주며 뒤에있는 asc는 오름차순, desc는 내림차순이다.

참고로 asc 오름차순은 1,2,3- 으로 생각해서 작은 값이 가장 먼저 나오게 정렬이 되며

desc는 반대로 3,2,1- 순으로 출력되어 큰 값이 먼저 정렬된다.

 

 

ALIAS (as) 사용해서 칼럼 이름 붙이기

구문 : select 칼럼1 as '칼럼 1 이름', 칼럼 2 as '칼럼 2 이름' from 테이블명; 

 

위처럼 작성해도 되지만 as와 큰 따옴표는 생략이 가능하여

 

select 칼럼 1 칼럼 1 이름, 칼럼 2 칼럼 2 이름 from 테이블명;

 

이렇게 작성도 가능하다.

대신 지정해주는 칼럼이름에 공백(띄어쓰기)이 있으면 안 된다 -> ( 칼럼 이름 O / 칼 럼 이 름 X )

 

 

 

연산자의 종류

 

1) 산술 연산자 (+,-,/,*) 

2) 비교 연산자 (=, !=, >, <, >=, <=) 

3) 논리 연산자 (and, or, not) 

4) SQL 연산자 (in, any, all, between, like, is null, is not null, exists) 

5) 결합 연산자 (||) 

 

 

1. 산술 연산자 (+,-,/,*)

 

Q. 부서번호가 7 번인 사원들의 급여를 10% 인상된 금액으로 출력하세요.

sal = 급여, emp = 테이블명, deptno = 부서 번호라는 가정하에

위처럼 산술 연산자 * 를 이용해서 연산이 가능하다.

 

 

 

2. 비교 연산자 (=,!=, >, <, >=, <=)

 

Q. 급여가 5000 이상인 사원들의 모든 정보를 출력하세요.

5000 이상의 데이터를 불러와야함으로 조건절에 >= 비교 연산자를

이용해서 데이터를 가져올 수 있다.

 

 

 

3. 논리 연산자 (and, or, not)

 

Q.  직업이 PROGRAMMER 이거나 MANAGER 인 사원의 부서 번호를 출력하세요.

or 연산자를 선택하여 둘 중 하나라도 조건에 맞으면 결과가 나오도록 출력한다.

(and는 조건 모두 만족해야 출력, not은 조건을 만족하지 않는 결과를 출력 )

 

 

 

4. SQL 연산자 (in, any, all, between, like, is null, is not null, exists)

 

IN 

구문 : select 칼럼명 from 테이블명 where 칼럼명 in (값1, 값 2); 

 

// or을 사용할때와 같은 결과를 출력하며 where 조건절에 있는 칼럼명에서

값 1 또는 값 2를 찾아select에서 지정한 칼럼명 결과를 출력해준다.

 

ANY와 ALL 

구문 : select 칼럼명 from 테이블명 where 칼럼명 all 또는 any (100,200,300); 

 

// any와 all은 사용하는 구문은 같지만any는 조건을 비교할 때 어느 하나라도 맞으면 true이며

괄호() 안의 값에서 가장 작은 값을 선택하게 되고,all은 조건이 모두 맞아야 true이며 괄호()안에서 가장 큰 값을 선택한다.

 

BETWEEN

구문: select 칼럼명 from 테이블 where 칼럼명 between 값 1 and 값 2; 

 

// 두 값 사이의 데이터를 얻어온다.

 

IS NULL, IS NOT NULL 

구문: select 칼럼명 from 테이블명 where 칼럼명 is null 또는 is not null; 

 

// 조건절에 있는 칼럼의 값에서 null인 값을 출력하고 싶을 땐 is null, 그와 반대는 is not null을 사용한다.

 

LIKE 

구문: select 칼럼명 from 테이블명 where 칼럼명 like '찾고싶은 문자'; 

 

 

// %와 _를 이용해서 찾을 문자열의 위치를 지정할 수 있다.

 

'%J' 는 문자열 끝에 J가 들어갔을 경우반대로 'J%'는 문자열 제일 첫 번째에 J가 위치한 값을 찾는다.

J가 포함 된 모든 문자를 출력하고 싶을 땐 '% J%'로 작성한다.

정확한 위치를 지정하고 싶을 땐 _ 를 사용하여 세 번째 글자가 J인 문자열을 찾는다면 '__J%'로 작성하면 된다.

 

EXISTS

구문: select 칼럼명 from 테이블명 where exists (select 칼럼명 from 테이블명 where 칼럼명='조건'); 

 

// where 조건절에 부합하는 걸 찾아 데이터가 존재하면 출력해준다. 

 

 

5. 결합 연산자 (||)

구문: select 칼럼명 || '문자열' || 칼럼명 || '문자열' from emp; 

 

// 자바스크립트의 백틱, 따옴표 등을 이용하여 변수와 문자열을 연결해주는 것처럼

칼럼과 문자열을 연결하여 하나의 데이터로 출력해준다.

 

 

반응형