Database/개념정리

[DataBase] Oracle SQL 기본 문법 - 1 (SELECT, FROM)

Sehyeok20 2021. 2. 2. 09:49
반응형

예시 테이블

위의 예시 테이블을 이용하여 기본 문법을 알아보도록 하자.

 

1. SELECT FROM

 - 데이터베이스 SQL문을 작성할 때에 가장 기본이 되는 것은 SELECT 문과 FROM 문이다.

 - SELECT는 조회할 열을 선택하는 것이고 FROM은 이 열이 어떤 테이블인지 조회하는 구문이다.

 

select * from emp;

결과1

애스터리스크(*)은 전체를 선택한다는 의미이다.

위 구문은 emp 테이블의 모든 열을 선택한다는 의미이므로 결과1과 같이 테이블의 전체 정보가 출력되었다.

 

select ename, empno, sal from emp;

결과2

결과 2에서는 모든 정보가 아닌 emp테이블에서 이름, 사원번호, 급여만 조회되는 것을 알 수 있다.

select문에서 ename과 empno, sal을 선택했기 때문이다.

 

조회할 데이터가 아주 많을 경우에는 단순히 위의 예시처럼 조회를 하면 알아보기 힘든 경우가 있다.

이 때 오름차순, 내림차순, 중복제거 등을 이용하면 훨씬 보기에 좋을 것이다.

 

2. DISTINCT (중복 제거)

 - 조회한 데이터의 내용에서 불필요한 중복을 제거하고 특정 데이터 종류만 확인

 

위의 예시 테이블에서 각 직책 별 부서 번호를 조회하고 싶다고 가정해보자.

select job, deptno from emp;

라고 했을 때

결과 3

결과 3처럼 모든 직책에 대한 부서번호가 나오게 된다.

이를 DISTINCT 를 이용하면

select distinct job, deptno from emp;

결과 4

위와 같이 중복되는 부분은 삭제하고 중복되지 않은 결과들만 모아서 출력해준다.

 

이를 조금 더 한 눈에 알아보기 쉽게 하기 위해서 오름차순, 내림차순 정렬을 사용해보자.

 

3. ORDER BY

 - ORDER BY 구문은 선택한 열을 정렬할 때 사용한다.

 - ORDER BY 정렬하려는 열 이름(여러 열 지정 가능) [정렬 옵션];

옵션을 지정하지 않을 경우에는 기본값으로 오름차순 정렬이 사용된다.

 

select distinct job, deptno from emp order by job;

위 결과에서 직업 순으로 정렬한다는 의미이다.

 

결과 5

별다른 옵션이 지정되지 않았으므로 JOB 내의 이름들이 A-Z 순으로 오름차순 정렬이 된 것을 볼 수 있다.

 

반대로 DEPTNO(사원번호) 순으로 정렬할 수도 있다.

select distinct job, deptno from emp order by deptno;

결과 6

결과 6에서는 DEPTNO가 낮은 수부터 큰 수 순으로 정렬이 된 것을 볼 수 있다.

 

여러 열을 지정하거나 내림차순으로 정렬도 가능하다.

select distinct job, deptno from emp order by job asc, deptno desc;

직업을 오름차순으로, 사원번호를 내림차순으로 정렬 해보자.

결과 7

결과 7에서 알 수 있듯이 직업은 A-Z 순이지만 같은 CLECK 직업의 DEPTNO(부서번호)는 30-10 순으로 내림차순 정렬 된 것을 알 수 있다.

반응형