IT

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

letsgojieun 2021. 4. 24. 01:17

 

기본형식 (순서)

 

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; 

 

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

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

 

 

반응형