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만 지정하면 소수점 이하는 반올림되어 정수 값만 저장
- precision과 scale을 모두 생략하면 입력한 데이터 값만큼 공간이 할당
b. DATE
- DATE는 세기, 년, 월, 일, 시간, 분, 초의 날짜 및 시간 데이터를 저장하기 위한 데이터 형
- 이렇듯 날짜 타입 안에는 세기, 년, 월, 일, 시, 분, 초, 요일 등 여러 가지 정보가 들어 있지만 별다른 설정이 없으면 년, 월, 일만 출력
- 기본 날짜 형식은 "YY/MM/DD"형식으로 “년/월/일”로 출력
- 2005년 12월 14일은 “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;
'DB > Oracle' 카테고리의 다른 글
Oracle DB #6 조인 , 서브 쿼리 (0) | 2021.05.31 |
---|---|
Oracle DB #5 SQL 주요 함수, 그룹 함수 (0) | 2021.05.30 |
Oracle DB #4 SQL 주요 함수 (0) | 2021.05.29 |
Oracle DB #3 SELECT로 특정 데이터 추출(IN 연산자, LIKE 연산자 , IS NULL , ORDER BY) , SQL 주요 함수 (0) | 2021.05.28 |
Oracle DB #2 SQL *Plus 명령어, 특정 데이터 추출하기 (WHERE 조건, 논리 연산자, BETWEEN AND 연산자) (0) | 2021.05.27 |