본문 바로가기
Database/Oracle

[Oracle SQL] SELECT문 - 기본 문법, 산술 연산자, 별칭

by Amy IT 2022. 5. 7.

SELECT문은 데이터베이스에 저장된 데이터를 검색할 때 사용되는 SQL문으로서, DQL(Date Query Language)라고 합니다. 기본 문법은 다음과 같습니다.

 

SELECT [DISTINCT] {*, column [Alias], ...}
FROM 테이블명;

 

생략 가능한 옵션은 [ ] 으로 표현되었고, 여러 값 중 하나를 필수로 사용해야 하는 내용은 { } 으로 표현되었습니다. SELECT에 해당하는 절을 SELECT절이라고 하고, FROM에 해당하는 절을 FROM절이라고 합니다. 

 

SELECT문은 반환되는 데이터 종류에 따라 Selection, Projection, Join 의 세 가지 처리 기능이 있는데, 그림으로 보자면 다음과 같습니다. 

 

 

Join에 대해서는 이후에 자세히 알아보기로 하고, 이 글에서는 기본적인 SELECT 문법에 대해 알아보겠습니다.

 

 

1. 모든 컬럼 보기 (*)

 

테이블에 저장된 모든 데이터를 볼 수 있습니다.

 

SELECT * FROM 테이블명;
SELECT * FROM dept;

 

 

2. 특정 데이터만 보기

 

2-1. Selection : 질의에 대해 테이블의 행(레코드)을 선택하는 기능입니다.

 

SELECT * FROM 테이블명 WHERE 검색조건;
SELECT * FROM dept WHERE deptno=40;

 

2-2. Projection : 질의에 대해 테이블의 열(컬럼)을 선택하는 기능입니다.

 

SELECT 컬럼명[, 컬럼명2,..., 컬럼명n] FROM 테이블명;
SELECT deptno, dname FROM dept;

 

2-3. Projection  & Selection : 질의에 대해 테이블의 행과 열을 선택하는 기능입니다. 예를 들어 30번 부서의 이름만 알고 싶을 때 다음과 같은 명령을 실행할 수 있습니다. 

 

SELECT dname FROM dept WHERE deptno=30;

 

 

3. 산술 연산자

 

숫자, 날짜 타입의 데이터베이스에 사칙연산이 가능합니다. 해당 컬럼은 가상 컬럼으로 생성되므로 원본 데이터는 그대로 유지됩니다.

 

SELECT sal+100 FROM emp;
SELECT sal-100 FROM emp;
SELECT sal*100 FROM emp;
SELECT sal/100 FROM emp;

 

* dual 테이블 : dummy 테이블, 연습용 테이블로서, 복잡한 연산식이나 현재 날짜 등을 확인하는 데 유용합니다. 

 

SELECT 245*567 FROM dual;

 

dual 테이블을 통해 해당 값이 138915라는 것을 빠르게 확인할 수 있습니다. 시스템의 현재 날짜를 알고 싶을 때는 다음의 명령을 실행할 수 있습니다.

 

SELECT sysdate FROM dual;

 

 

4. 별칭 (alias)

 

사용자가 알아보기 쉽게 컬럼에 별칭을 부여하여 헤딩(heading)에 표현할 수 있습니다. 

 

SELECT 컬럼명 [as] 별칭 FROM 테이블명;
SELECT empno 사원번호, ename 이름, sal 월급 FROM emp;

 

이때 주의할 점은 별칭에 띄어쓰기가 포함되어 있을 경우, 반드시 큰따옴표(" ")로 묶어줘야 한다는 것입니다.

 

SELECT ename "사원 이름", sal "사원 월급", sal*12 "연 봉" FROM emp;

 

다음과 같이 컬럼에 별칭이 새롭게 붙은 것을 확인할 수 있습니다.

 

 

* 큰따옴표와 작은따옴표 

SQL에서 하나의 문자 또는 문자열, 날짜 데이터를 사용할 때 반드시 작은따옴표(' ')를 사용해야 합니다. (ex.  'a' , 'aa' , '22/05/07') 또한, SQL문은 대소문자를 구별하지 않지만, 작은따옴표 안에 들어가는 자료의 내용은 대소문자가 동일해야 합니다.

 

SELECT * FROM dept WHERE loc='DALLAS';

 

SQL에서 큰따옴표(" ")는 별칭을 부여할 때만 사용합니다. 다만 작은따옴표 안에 다시 인용이 들어가야 할 때는 구분을 위해 작은따옴표 안에 큰따옴표를 사용합니다.

 

 

다음 글에서 SELECT문에 대해 이어서 보겠습니다.

 

댓글