The Debugging Chronicles : "코드의 미학"

04 SELECT문의 기본 형식 본문

DBMS/Do it! 오라클로 배우는 데이터 베이스 입문

04 SELECT문의 기본 형식

sweetseonah1004 2024. 7. 28. 23:18
04-1 실습용 테이블 살펴보기

사원 정보가 들어 있는 EMP 테이블

EMP : employee의 약어이며, 사원 데이터를 보관 및 관리하는 테이블이다.

 

 

 

회사 부서 정보가 들어 있는 DEPT 테이블

DEPT : department의 약어이며, 회사를 구성하는 부서 데이터를 관리하는 테이블이다.

DESC 명령어를 사용하여 구성을 확인할 수 있다.

DEPTNO 열은 각 부서 데이터를 구분하는 PK 값이며, EMP 테이블의 외래키로 사용 가능하다.

 

사원들의 급여 정보가 들어 있는 SALGRADE테이블

SALGRADE 테이블은 EMP 테이블에서 관리하는 사원들의급여와 관련된 테이블이다.

 

 

04-2 데이터를 조회하는 3가지 방법 - 설렉션, 프로젝션, 조인

 

행 단위로 조회하는 셀렉션

행 단위로 원하는 데이터를 조회하는 방식이다.

테이블 전체 데이터 중 몇몇 가로줄의 데이터만 선택할 때 사용한다.

 

열 단위로 조회하는 프로젝션

프로젝션

열 단위로 원하는 데이터를 조회하는 방식이다.

 

셀렉션과 프로젝션 함께 사용하기
특정 테이블에서 조회하려는 행과열을 모두 선별할 때 셀렉션과 프로젝션을 함께 사용할 수 있다.

 

 

두개 이상의 테이블을 사용하여 조회하는 조인

조인

두 개 이상의 테이블을 양 옆에 연결하여 마치 하나의 테이블인 것처러 데이터를 조회하는 방식이다.

 

04-3 SQL의 기본 뼈대 ,  SELECT 절과  FROM절

SELECT문 : 데이터베이스에 보관되어 있는 데이터를 조회하는데 사용한다.

FROM : 저장된 테이블 이름을 명시하는데 사용한다.

 

SELECT  [조회할열1이름], [열2이름], [열N이름] 
FROM     [ 조회할테이블이름]; 

 

* 로 테이블 전체 열 출력하기

 

SELECT * FROM EMP;

 

 

 

테이블  부분 열 출력하기

 

SELECT EMPNO, ENAME, DEPTNO
               FROM EMP;

 

 

04-4 중복 데이터를 삭제하는 DISTINCT

 

S ELECT문으로데이터를조회한후DISTINCT를사용하여중복을제거

 

DISTINCT로 열 중복 제거하기(열이 한개인 경우)

SELECT DISTINCT EMPNO FROM EMP;

 

DISTINCT로 열 중복 제거하기(열이 여러개인 경우)

SELECT DISTINCT JOB, DEPTNO FROM EMP;

 

ALL로 중복되는 열 제거 없이 그대로 출력하기

SELECT ALL JOB, DEPTNO FROM EMP;

04-5 한눈에 보기 좋게 별칭 설정하기

SQL문에서는 최종 출력되는 열의 이름을 임의로 지정 가능하며, 이렇게 본래 열 이름 대신에 붙이는 이름을 별칭(alias)라고 한다.

긴 열 이름을 '짧고 간단한 다른 이름'으로 알기 쉽게 출력할 때 별칭을 사용한다.

보안이나 데이터 노출 문제 때문에 별칭을 지정하는 경우도 있다.

 

열과 연산식

· SELECT를 이용하여 데이터를 출력 때, 연산식을 사용하여 출력할 수 있다.

· NULL 값이 들어간 열을 가지고 있는 데이터는 연산식이 계산되지 않는다.

SELECT ENAME, SAL, SAL*12+COMM, COM FROM EMP;

 

 

별칭을 지정하는 방식

ANNSAL 로 하여 별칭을 지정하는 4가지 방식

 

SELECT ENAME, SAL, SAL*12+COMM AS ANNSAL, COM FROM EMP;

 

실무에서 별칭 지정

실무에서는 3번째 방식을 선호하는 경향이 있다. AS가 붙으면 조회해야 할 열이 수백 개가 있더라도 어떤 단어가 별칭일지 알아보기 편하다. 큰 따옴표는 잘 사용하지 않는다. 

String sql ="SELECT ENAME, SAL, SAL*12+COMM SA ANNSAL, COM FROM EMP";

04-6 원하는 순서로 출력 데이터를 정렬하는 ORDER BY

오름차순 사용하기

SELECT * FROM EMP ORDER BY SAL;

 

내림차순 사용하기

SELECT * FROM EMP ORDER BY SAL DESC;

 

각각의 열에 내림차순과 올림차순 동시에 사용하기

 

SELECT * FROM EMP ORDER BY DEPTNO ASC, SAL DESC;

 

ORDER BY 절 사용할 때 주의 사항

흩어져 있는 데이터를 특정 기중에 따라 정렬하는 것은 많은 자원, 비용을 소모하기 때문에 꼭 필요한 경우가 아니라면 사용하지 않는 것이 좋다. ORDER BY절이 존재할 경우 SELECT문을 통해 조회할 데이터를 모두 확정한 상태에서 정렬해야한다