The Debugging Chronicles : "코드의 미학"
04 SELECT문의 기본 형식 본문
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;
별칭을 지정하는 방식
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문을 통해 조회할 데이터를 모두 확정한 상태에서 정렬해야한다
'DBMS > Do it! 오라클로 배우는 데이터 베이스 입문' 카테고리의 다른 글
10 데이터 처리를 추가, 수정, 삭제하는 데이터 조작어 (1) | 2024.07.30 |
---|---|
06 데이터 처리와 가공을 위한 오라클 함수 (0) | 2024.07.29 |
05 더 정확하고 다양하게 결과를 출력하는 WHERE절과 연산자 (0) | 2024.07.28 |
01 데이터베이스 / 02 관계형 데이터 베이스와 오라클 데이터 베이스 (0) | 2024.07.27 |