본문 바로가기

DB/Oracle

Oracle DB #1 데이터형, SELECT문 ,DESC, 특정 데이터만 보기, 산술 연산자

1. SQL의 기본

1) 데이터 딕셔너리 TAB

- 오라클을 설치하면 제공되는 사용자 SCOTT은 학습을 위해서 테이블들이 제공된다. SCOTT이 소유하고 있는 테이블을 살펴보기 위해서 다음과 같은 명령어를 입력해보자.

 

SELECT * FROM TAB;

 

TAB은 TABLE의 약자로서 SCOTT 사용자가 소유하고 있는 테이블의 정보를 알려주는 데이터 딕셔너리이다.

 

2) 테이블 구조를 살펴보기 위한 DESC

- 오라클을 설치하면 학습용으로 제공되는 DEPT 테이블은 부서의 정보를 저장하고 있으며, 이에 대한 구조를 살펴보기 위해서는 desc 명령어를 사용해야 합니다.

 

DESC DEPT

 

- DESC 명령어는 테이블의 칼럼 이름, 데이터 형, 길이와 널 허용 유무 등과 같은 특정 테이블의 정보를 보여준다.

 

3) 오라클의 데이터 형

a. NUMBER(precision, scale)

- NUMBER 데이터 형은 숫자 데이터를 저장하기 위해 제공

- precision은 소수점을 포함한 전체 자리수를 의미하며 scale은 소수점 이하 자리수를 지정

- scale을 생략한 채 precision만 지정하면 소수점 이하는 반올림되어 정수 값만 저장

- precisionscale을 모두 생략하면 입력한 데이터 값만큼 공간이 할당

 

b. DATE

- DATE는 세기, , , , 시간, , 초의 날짜 및 시간 데이터를 저장하기 위한 데이터 형

- 렇듯 날짜 타입 안에는 세기, , , , , , , 요일 등 여러 가지 정보가 들어 있지만 별다른 설정이 없으면 년, , 일만 출력

- 본 날짜 형식은 "YY/MM/DD"형식으로 “년//일”로 출력

- 20051214일은 “05/12/14”로 출력

 

c. CHAR

- 문자 데이터를 저장하기 위한 자료형으로 CHAR가 있습니다. CHAR는 고정 길이 문자 데이터를 저장

- 입력된 자료의 길이와는 상관없이 정해진 길이만큼 저장 영역 차지하며 최소 크기는 1임

 

d. VARCHAR2

- VARCHAR2 데이터 형은 가변적인 길이의 문자열을 저장하기 위해서 제공

- VARCHAR2는 저장되는 데이터에 의해서 저장공간이 할당되므로 메모리 낭비를 줄일 수 있음

 

4) SELECT문

- SELECT문은 데이터를 조회하기 위한 SQL 명령어

- SQL 명령어는 하나의 문장으로 구성되어야 하는데 여러 개의 절이 모여서 문장이 되는 것이고 이러한 문장들은 반드시 세미콜론(;)으로 끝나야 함

- SELECT 문은 반드시 SELECT와 FROM 이라는 2개의 키워드로 구성되어야 함

- SELECT절은 출력하고자 하는 칼럼 이름을 기술함

- 특정 컬럼 이름 대신 * 를 기술할 수 있는데, * 는 테이블 내의 모든 컬럼을 출력하고자 할 경우 사용합니다.

- FROM절 다음에는 조회하고자 하는 테이블 이름을 기술함

- SQL 문에서 사용하는 명령어들은 대문자와 소문자를 구분하지 않는다는 특징

 

SELECT [DISTINCT] {*, column[Alias], . . .}

FROM table_name;

 

5) 산술 연산자

종류
+ SELECT sal + comm FROM emp;
- SELECT sal - 100 FROM emp;
* SELECT sal * 12 FROM emp;
/ SELECT sal / 2 FROM emp;

 

6) NULL

- 오라클에서는 컬럼에 널값이 저장되는 것을 허용하는데  널 값을 제대로 이해하지 못한 채 쿼리문을 사용하면 원하지 않는 결과를 얻을 수 있음.

- 0(zero)도 아니고 빈 공간도 아님

- 미확정(해당 사항 없음), 알 수 없는(unknown) 값을 의미

- 어떤 값인지 알 수 없지만 어떤 값이 존재하고 있음

- ? 혹은 ∞의 의미이므로 연산, 할당, 비교가 불가능

 

7) 컬럼 이름에 별칭 지정하기

a. 컬럼 이름에 별칭 지정하기

select ename, sal*12+nvl(comm, 0)

from emp;

b. AS로 컬럼에 별칭 부여하기

select ename, sal*12+nvl(comm, 0) as Annsal

from emp;

 

c. " "로 별칭 부여하기

select ename, sal*12+nvl(comm, 0) "A n n s a l"

from emp;

 

d. 별칭으로 한글 사용하기

select ename, sal*12+nvl(comm, 0) "연봉"

from emp;

8) Concatenation

- 칼럼과 특정 값 사이에 공백을 생성하기 위해 사용 -> 영 문장 처럼 보이게 하려고!

 

select ename || ' is a ' || job

from emp;

 

9) Distinct

- 중복된 값들을 한 번씩 출력하기 위해 사용

select distinct deptno

from emp;