데이터를 조회하는 SELECT 키워드를 알아보기 전에, 데이터의 종류와 표기법에 대해 정리해보겠습니다.
값이 되지 않은 경우 NULL로 표기됩니다.
0이나 공백과는 다릅니다.
NULL을 포함한 연산은 결과가 항상 NULL 입니다.
literal 표기법이라고 합니다.
데이터의 값 자체를 표현하는 문법은 프로그래밍 언어마다 다릅니다.
SQL의 표기법은 다음과 같습니다.
VARCHAR2 : '문자열' (따옴표 안에 표기)
NUMBER : 10
DATE : 'YYYY(RR,YY)/MM/DD' (따옴표 안에 표기)
그런데 2021년을 21(YY, RR)로 조회하면 서버 환경설정에 따라 1921년으로 잘못 인식될 수 있습니다. 그러니 YYYY로 명확히 적어주는 편이 좋습니다.
VARCHAR2 타입으로 취급되기 때문에, 필요할 경우 DATE 타입으로 변환하는 함수 TO_DATE()를 사용해야 합니다.
TO_DATE('1981/03/01', 'YYYY/MM/DD')
DML(Data Manipulation Language)는 SELECT(조회), INSERT(생성), DELETE(삭제), UPDATE(갱신) 키워드로 구성됩니다.
이 네 가지 키워드를 CRUD(CREAT, READ, UPDATE, DELETE)라고 줄여 부르기도 합니다.
이 글에서는 데이터를 조회하는 SELECT 키워드에 대해 정리해보겠습니다.
SELECT * | { column | [DISTINCT] column [alias], ....}
FROM table [alias]
[ORDER BY column]
회사의 직원 정보가 담긴 emp 테이블의 전체 데이터를 불러오려면,
SELECT *
FROM emp;
직원의 이름과 사번을 불러오려면,
SELECT ename, empno
FROM emp;
SELECT 절을 작성하다보면 컬럼의 이름이나 컬럼에 담긴 데이터의 타입을 확인해야 할 때가 있습니다.
좌측의 SQL DEVELOPER에서 테이블 객체를 직접 클릭하여 정보를 조회할 수도 있지만, 아래의 방법이 더 좋은 것 같습니다.
SELECT *
FROM emp;
DESC emp;
단순히 컬럼을 조회하는 것 뿐 아니라, 연산자를 사용해서 컬럼의 데이터 값을 변경할 수도 있습니다.
연산자가 들어간 표현을 Expression이라고 부릅니다. 컬럼을 expression으로 가공해 조회해도, 데이터 수정은 일어나지 않습니다.
VARCHAR2(문자열)와 NUMBER(숫자), DATE(날짜)에 적용할 수 있는 연산자에 대해 알아보겠습니다.
문자열에 다른 문자열을 붙일 수 있습니다.
emp 테이블의 직원 이름 칼럼에 ', Hello'를 붙여보겠습니다.
|| (수직선 두 개)SELECT ename || ', Hello'
FROM emp;
CONCAT()SELECT CONCAT(ename, ', Hello')
FROM emp;
+, -, /, *+와 - 연산자만 사용할 수 있습니다.()SELECT empno + 10
FROM emp;
SELECT hiredate + 10
FROM emp;
조회되는 컬럼 또는 Expression 뒤에 컬럼의 이름을 지정해줄 수 있습니다.
Expression을 사용할 경우, 복잡한 Expression이 컬럼명이 되기 때문에 별칭 [alias]를 지정해주는 게 좋습니다.
직원 사번에 10을 더해 조회한 컬럼에 empno_plus라는 별칭 붙여보겠습니다.
SELECT empno + 10 empno_plus
FROM emp;
SELECT empno + 10 AS empno_plus
FROM emp;
SELECT empno + 10 "empno_plus"
FROM emp;