[SQL] SELECT문 - 정의, 산술 연산, 별칭, 리터럴
SELECT
o 데이터 조회하는 역할을 하는 언어이다.
o 데이터를 조회한 결과를 Result Set이라고 하는데 SELECT구문에 의해 반환된 행들의 집합을 의미한다.
o Result Set은 0개 이상의 행이 포함될 수 있고 특정 기준에 의해 정렬 가능
o 한 테이블의 특정 컬럼, 행, 행/컬럼 또는 여러 테이블의 특정 행/컬럼 조회 가능
o RESULT SET의 값(리터럴)들은 대소문자를 구분한다. 그 외 명령어 입력 등 영문 입력은 대소문자 구분 X
작성법
SELECT 컬럼 명 [, 컬럼명, …] FROM 테이블 명 [WHERE 조건식]; |
- 대괄호[ ]는 생략이 가능하다.
- 테이블 안에 있는 컬럼들만 작성을 할 수 있다.
- SELECT 컬럼명들을 작성함으로써 여러 개의 컬럼을 한 번에 불러올 수 있다.
SELECT EMP_ID, EMP_NAME, EMP_NO, EMAIL, PHONE, DEPT_CODE,JOB_CODE,
SAL_LEVEL, SALARY, BONUS, MANAGER_ID, HIRE_DATE,ENT_DATE, ENT_YN FROM EMPLOYEE;
또는
SELECT * FROM EMPLOYEE;
|
- SELECT
o 조회하고자 하는 컬럼명을 기술한다.
o 여러 컬럼을 조회하는 경우 컬럼은 쉼표로 구분하고, 마지막 컬럼 다음은 쉼표를 사용하지 않음
o 모든 컬럼 조회 시 컬럼 명 대신 ‘*’ 기호 사용 가능하며 조회 결과는 기술한 컬럼 명 순으로 표시 됨
- FROM
o 조회 대상 컬럼이 포함된 테이블 명 기술
- WHERE
o 행을 선택하는 조건 기술
o 여러 개의 제한 조건을 포함할 수 있으며, 각각의 제한 조건은 논리 연산자로 연결
o 제한 조건을 만족시키는 행들만 Result Set에 포함
컬럼 값 산술 연산
o 컬럼 값에 대해 산술 연산(+,-,*,/)한 결과를 조회할 수 있다.
o 산술연산은 리터럴만 가능한게 아니라 컬럼명을 가지고도 처리가 가능하다.
o 산술연산시에는 자료형이 NUMBER타입이어야 한다.
o NULL값은 연산처리가 되지 않는다.
SELECT EMP_NAME, SALARY * 12, (SALARY + (SALARY*BONUS)) * 12
FROM EMPLOYEE;
SELECT SALARY, SALARY *BONUS -- BOUNS = NULL이기에 결과값 NULL이 출력 됨
FROM EMPLOYEE;
SELECT '20'+30 FROM DUAL; --자동 형변환으로 연산 가능
SELECT '이십'+30 FROM DUAL; --에러, +연산 시 모두 숫자로 연산
|
DUAL
o ORACLE이 제공하는 테스트용 테이블
SELECT 10+20,10-50,2/5,20*40 FROM DUAL;
리터럴
o 임의로 지정한 문자열을 SELECT절에 사용하면 테이블에 존재하는 데이터처럼 활용 가능하다.
o 컬럼을 작성하는 위치에 리터럴 사용 시 모든 열에 리터럴 추가된다.
o 문자나 날짜 리터럴은 ‘ ‘ 기호를 사용하며 리터럴은 Result Set의 모든 행에 반복 표시된다.
SELECT EMP_ID, SALARY, ‘님’, ’100’
FROM EMPLOYEE;
|

컬럼 별칭
o 컬럼 명 또는 컬럼 연산 결과의 명을 별칭을 사용하여 출력되게 할 수 있다.
o 사용 형식 : SELECT 컬럼명 AS 별칭 || 컴럼명 별칭 || 컬럼명 AS “별칭“ FROM 테이블 명
o 숫자 혹은 특수문자가 포함되는 경우에 “ “ 사용하여 감싸준다.
o AS 생략 가능(공백으로 구분)
SELECT EMP_NAME AS 사원명, SALARY*12 “연봉(원)”,
(SALARY + (SALARY*BONUS))*12 AS “총 소득(원)“ FROM EMPLOYEE;
|