위의 예시 테이블을 이용하여 기본 문법을 알아보도록 하자.
1. SELECT FROM
- 데이터베이스 SQL문을 작성할 때에 가장 기본이 되는 것은 SELECT 문과 FROM 문이다.
- SELECT는 조회할 열을 선택하는 것이고 FROM은 이 열이 어떤 테이블인지 조회하는 구문이다.
select * from emp;
애스터리스크(*)은 전체를 선택한다는 의미이다.
위 구문은 emp 테이블의 모든 열을 선택한다는 의미이므로 결과1과 같이 테이블의 전체 정보가 출력되었다.
select ename, empno, sal from emp;
결과 2에서는 모든 정보가 아닌 emp테이블에서 이름, 사원번호, 급여만 조회되는 것을 알 수 있다.
select문에서 ename과 empno, sal을 선택했기 때문이다.
조회할 데이터가 아주 많을 경우에는 단순히 위의 예시처럼 조회를 하면 알아보기 힘든 경우가 있다.
이 때 오름차순, 내림차순, 중복제거 등을 이용하면 훨씬 보기에 좋을 것이다.
2. DISTINCT (중복 제거)
- 조회한 데이터의 내용에서 불필요한 중복을 제거하고 특정 데이터 종류만 확인
위의 예시 테이블에서 각 직책 별 부서 번호를 조회하고 싶다고 가정해보자.
select job, deptno from emp;
라고 했을 때
결과 3처럼 모든 직책에 대한 부서번호가 나오게 된다.
이를 DISTINCT 를 이용하면
select distinct job, deptno from emp;
위와 같이 중복되는 부분은 삭제하고 중복되지 않은 결과들만 모아서 출력해준다.
이를 조금 더 한 눈에 알아보기 쉽게 하기 위해서 오름차순, 내림차순 정렬을 사용해보자.
3. ORDER BY
- ORDER BY 구문은 선택한 열을 정렬할 때 사용한다.
- ORDER BY 정렬하려는 열 이름(여러 열 지정 가능) [정렬 옵션];
옵션을 지정하지 않을 경우에는 기본값으로 오름차순 정렬이 사용된다.
select distinct job, deptno from emp order by job;
위 결과에서 직업 순으로 정렬한다는 의미이다.
별다른 옵션이 지정되지 않았으므로 JOB 내의 이름들이 A-Z 순으로 오름차순 정렬이 된 것을 볼 수 있다.
반대로 DEPTNO(사원번호) 순으로 정렬할 수도 있다.
select distinct job, deptno from emp order by deptno;
결과 6에서는 DEPTNO가 낮은 수부터 큰 수 순으로 정렬이 된 것을 볼 수 있다.
여러 열을 지정하거나 내림차순으로 정렬도 가능하다.
select distinct job, deptno from emp order by job asc, deptno desc;
직업을 오름차순으로, 사원번호를 내림차순으로 정렬 해보자.
결과 7에서 알 수 있듯이 직업은 A-Z 순이지만 같은 CLECK 직업의 DEPTNO(부서번호)는 30-10 순으로 내림차순 정렬 된 것을 알 수 있다.