내용 정리

 

SELECT문은 데이터베이스에 보관되어 있는 데이터를 사용자의 입맛에 맞게 꺼내오기 위해서 사용한다.

 

각종 조건문(WHERE, ORDER BY, FROM 등)을 사용하여

 

조회하고 싶은 데이터를 보기 쉽게 조회가 가능하다.

 

 

 

먼저 실습용 테이블을 살펴보면

 

DESC 명령을 사용하여 테이블의 구성 정보를 확인할 수 있다.

 

1
DESC EMP;           -- EMP는 사원 테이블

 

 

테이블을 구성하는 컬럼(열) 명과 컬럼에 대한 정보들이 표출된다.

 

EMPNO(사원 번호)가 기본키(PK)이며 4자리 숫자로 구성된다.

 

여기서 VARCHAR2형식의 데이터는 가변형 문자열이며

 

문자열의 데이터가 10byte보다 작다면 데이터의 공간도 작다는 것을 말한다.

 

*저장 공간을 무조건 10byte할당하는 자료형은 고정형 저장 방식이다.

 

 

 

SQL의 기본 뼈대, SELECT절과 FROM절

 

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

 

FROM 절은 조회할 데이터가 저장된 테이블을 명시

 

 

기본 문법

SELECT [조회할 열1 이름], ..., [조회할 열N 이름]

FROM [조회할 테이블 이름]; 

 

전체 열을 조회하려면 *를 사용하면 된다.

 

또한 마지막에 ;(세미콜론)을 써주어 SQL문이 끝났다는 걸 명시해주어야 한다.

 

1
SELECT * FROM EMP;

 

이 명령어의 뜻은

 

EMP 테이블의 모든 데이터의 모든 열 정보를 출력한다는 뜻이다.

총 14개의 데이터가 EMP 테이블에 저장되어 있다.

 

 

그렇다면 테이블의 모든 열이 아닌

 

EMPNO, ENAME, DEPTNO의 정보만 출력하고 싶다면?

 

 

1
SELECT EMPNO, ENAME, DEPTNO FROM EMP;

 

위의 SQL문과 같이 SELECT절에 데이터를 가져오고 싶은 열의 이름을 입력하면 된다.

 

 

1
SELECT DEPTNO FROM EMP;

 

어떠한 부서 번호들이 EMP 테이블에 저장되어 있는지 확인하기 위해서

 

위와같은 SQL문을 사용하면

 

아래와 같은 정보를 얻을 수 있다.

 

10, 20, 30 총 3개의 부서 번호가 있는데 

 

불필요하게 중복된 부서 번호가 여러 번 출력된다.

 

이때 DISTINCT 명령어를 통해 중복을 제거할 수 있다.

 

 

1
SELECT DISTINCT DEPTNO FROM EMP;

 

 

 

검색할 칼럼이 2개 일 때 DISTINCT 명령어를 사용하면

 

2개의 칼럼 모두 중복이 되어야 제거가 된다.

 

아래의 명령어의 경우 직급이 같아도 부서 번호가 다르면 출력이 된다.

 

1
SELECT DISTINCT JOB, DEPTNO FROM EMP;

 

 

 

DISTINCT와 반대는 ALL로 중복을 제거하지 않고

 

모든 열을 출력 한다.

 

하지만 ALL은 DEFAULT 값으로 생략하면 자동 적용이 된다.

 

1
SELECT ALL JOB, DEPTNO FROM EMP;
1
SELECT JOB, DEPTNO FROM EMP;

 

위와 아래의 결과는 같다는 뜻이다.

 

 

별칭 설정하기

 

SQL문에서는 최종 출력되는 열 이름을 사용자가 지정할 수 있다.

 

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

 

위와 같은 명령을 수행하면 다음과 같이 테이블이 조회된다.

 

SAL*12+COMM(추가 수당)은 1년의 총급여이다.

 

위와 같이 사용자가 계산식을 만들어 새로운 열로 확인할 수 있다.

(실제 테이블에는 위와 같은 열은 존재하지 않는다.)

 

SMITH, JONES 등 의 경우는 COMM의 값이 NULL 값이기 때문에 

 

1년의 총급여가 출력되지 않았다.

 

 

 

하지만

 

위와 같은 테이블은 계산식이 길어지면 어떠한 의미인지 알 수 없고

 

계산식도 그대로 노출되기 때문에 별칭을 지정한다.

 

별칭은 AS(alias)라는 명령어를 통해 지정한다.

 

1
SELECT ENAME, SAL, SAL*12+COMM AS "연간 총 급여", COMM FROM EMP;

 

 

별칭을 지정하면 사용자가 지정한 이름으로 열 이름이 나타난다.

 

 

데이터 정렬

 

데이터를 조회할 때 오름차순 또는 내림차순으로 데이터를 정렬할 수 있다.

 

ORDER BY 명령을 통해 데이터를 정렬 할 수 있으며

 

오름차순 - ASC(ascending)  기본 설정 (default)

내림차순 - DESC(descending)

 

의 명령어를 사용한다.

 

 

오름차순

ASC는 생략 가능

 

1
SELECT * FROM EMP ORDER BY SAL (ASC);

 

 

내림차순

 

1
SELECT * FROM EMP ORDER BY SAL DESC;

 

 

* 꼭 필요한 경우가 아니면 사용 권장하지 않는다.

 

정렬은 컴퓨터의 자원을 많이 사용하기 때문.

+ Recent posts