Oracle SQL # 2. SELECT

Su Yeon·2021년 3월 21일

Oracle SQL

목록 보기
2/6

데이터

데이터를 조회하는 SELECT 키워드를 알아보기 전에, 데이터의 종류와 표기법에 대해 정리해보겠습니다.


1. 데이터 종류

  1. VARCHAR2 : 문자열
    ex. VARCHAR2(10 BYTE) - 10바이트까지 담을 수 있는 문자열이라는 뜻
    숫자와 문자열이 합쳐진 경우도 VARCHAR2로 봄
  2. NUMBER : 숫자
    ex. NUMBER (4, 0) - 4자리, 소수점은 없는 숫자라는 뜻
  3. DATE : 날짜

2. NULL

값이 되지 않은 경우 NULL로 표기됩니다.
0이나 공백과는 다릅니다.
NULL을 포함한 연산은 결과가 항상 NULL 입니다.


3. 데이터 표기법

literal 표기법이라고 합니다.
데이터의 값 자체를 표현하는 문법은 프로그래밍 언어마다 다릅니다.
SQL의 표기법은 다음과 같습니다.

  1. VARCHAR2 : '문자열' (따옴표 안에 표기)

  2. NUMBER : 10

  3. DATE : 'YYYY(RR,YY)/MM/DD' (따옴표 안에 표기)
    그런데 2021년을 21(YY, RR)로 조회하면 서버 환경설정에 따라 1921년으로 잘못 인식될 수 있습니다. 그러니 YYYY로 명확히 적어주는 편이 좋습니다.
    VARCHAR2 타입으로 취급되기 때문에, 필요할 경우 DATE 타입으로 변환하는 함수 TO_DATE()를 사용해야 합니다.

	TO_DATE('1981/03/01', 'YYYY/MM/DD') 


SELECT

DML(Data Manipulation Language)는 SELECT(조회), INSERT(생성), DELETE(삭제), UPDATE(갱신) 키워드로 구성됩니다.
이 네 가지 키워드를 CRUD(CREAT, READ, UPDATE, DELETE)라고 줄여 부르기도 합니다.

이 글에서는 데이터를 조회하는 SELECT 키워드에 대해 정리해보겠습니다.


1. SELECT절 작성법

SELECT * | { column | [DISTINCT] column [alias], ....}
FROM table [alias]
[ORDER BY column]

회사의 직원 정보가 담긴 emp 테이블의 전체 데이터를 불러오려면,

SELECT *
FROM emp;

직원의 이름과 사번을 불러오려면,

SELECT ename, empno
FROM emp;

2. 컬럼 정보 확인

SELECT 절을 작성하다보면 컬럼의 이름이나 컬럼에 담긴 데이터의 타입을 확인해야 할 때가 있습니다.

좌측의 SQL DEVELOPER에서 테이블 객체를 직접 클릭하여 정보를 조회할 수도 있지만, 아래의 방법이 더 좋은 것 같습니다.

  1. 컬럼 전체를 조회
SELECT *
FROM emp;
  1. DESC 키워드를 활용해 정보를 조회 (DESC는 Describe의 약자)
DESC emp; 	

3. Expression 표현식

단순히 컬럼을 조회하는 것 뿐 아니라, 연산자를 사용해서 컬럼의 데이터 값을 변경할 수도 있습니다.

연산자가 들어간 표현을 Expression이라고 부릅니다. 컬럼을 expression으로 가공해 조회해도, 데이터 수정은 일어나지 않습니다.


연산자의 종류

VARCHAR2(문자열)와 NUMBER(숫자), DATE(날짜)에 적용할 수 있는 연산자에 대해 알아보겠습니다.

1. VARCHAR2 연산

문자열에 다른 문자열을 붙일 수 있습니다.
emp 테이블의 직원 이름 칼럼에 ', Hello'를 붙여보겠습니다.

  1. || (수직선 두 개)
SELECT ename || ', Hello'
FROM emp;
  1. CONCAT()
    두 개의 문자열만 입력받아 결합하고 반환하는 함수
    두 개 이상의 문자열 결합 시, CONCAT(CONCAT())식으로 중첩
SELECT CONCAT(ename, ', Hello')
FROM emp;
2. NUMBER, DATE 연산
  1. 일반적 사칙연산 : +, -, /, *
    컬럼의 행 값에 더하기, 빼기, 나누기, 곱하기를 할 수 있습니다.
    DATE 타입의 경우는 +- 연산자만 사용할 수 있습니다.
    그렇게 더하고 뺀 값은 년-월-일 중 '일'에 적용됩니다.
  1. 우선순위 연산자 : ()
    사칙연산 시 우선순위를 지정할 수 있습니다.
  • 직원 사번, 입사일에 각각 10씩 더해보겠습니다.
SELECT empno + 10 
FROM emp;
SELECT hiredate + 10	
FROM emp;

4. 컬럼명 변경

조회되는 컬럼 또는 Expression 뒤에 컬럼의 이름을 지정해줄 수 있습니다.
Expression을 사용할 경우, 복잡한 Expression이 컬럼명이 되기 때문에 별칭 [alias]를 지정해주는 게 좋습니다.

직원 사번에 10을 더해 조회한 컬럼에 empno_plus라는 별칭 붙여보겠습니다.

  • 컬럼명, 표현식 뒤에 한 칸을 뛰고 별칭을 입력합니다.
    대소문자 모두 대문자로 출력됩니다.
SELECT empno + 10 empno_plus	 
FROM emp;
  • 컬럼명, 표현식과 별칭 사이에 키워드 'AS'를 입력할 수도 있습니다.
SELECT empno + 10 AS empno_plus	 
FROM emp;
  • 소문자로 출력하고 싶다면 "" (쌍따옴표)안에 입력합니다.
SELECT empno + 10 "empno_plus" 
FROM emp;

0개의 댓글