- 오라클(ORACLE) 을 처음 시작하면서 , 오라클 이 무엇인가에 대해 궁금했다. 오라클 은 관계형 데이터베이스 관리시스템(Relation DataBase Management System) 이다. 그렇다면, 관계형 데이터베이스 란 무엇인가? 관계형 데이터베이스는 데이터를 열(Column , =Field) 과 행 (Row) 으로 이루어진 테이블(Table) 형태로 저장하는 것을 의미한다.
간단히 설명하자면, 우리는 오라클을 통해서 테이블 형태로 저장된 데이터들을 꺼내볼 수 있다는 것 같다.
- 그렇다면, 나는 수업을 통해서 오라클을 어떻게 이용하여 , 데이터 베이스를 다룰 수 있는 지 공부하고 있다.
오라클에서 중요한 특징은 어떠한 테이블(또는 뷰) 에서 데이터 정보를 꺼내와 보는 명령어인 'SELECT' 의 처리 순서이다.
SELECT 컬럼명, 컬럼명 , ... ---5
FROM 테이블명 (또는 뷰명 ) ---1
WHERE 조건절 ---2
GROUP BY 절 ---3
HAVING 그룹함수조건절 ---4
ORDER BY 절 ---6
이처럼 SELECT 명령어는 다음과 순서를 따르기 때문에, 작성할 때 또한 이를 반드시 유념해서 작성할 필요가 있다. 그중에서도 중요한 것은 WHERE 조건절이라고 할 수 있다. WHERE 조건절이 뜻하는 것은 해당 테이블명( 또는 뷰명) 에서 조건에 만족하는 행(ROW)을 메모리(RAM)에 로딩(올리는 것 )을 해주는 것이다. 예시를 살펴보면 다음과 같다.
SELECT employee_id AS "사원번호" , last_name AS "이름",
salary AS "봉급" , department_id AS "부서번호"
-- AS(Alias) 는 별칭, 별명을 의미한다. AS는 생략가능하고, " " (큰따옴표) 또한 생략해서 사용가능하다.
FROM employees
WHERE department_id = 30 ;
-- 위의 코드가 의미하는 바는 다음과 같다.
-- employees 테이블에서 부서번호가 30번인 사원들만의 사원번호, 이름, 봉급, 부서번호를 나타내시오.
다음으로 살펴볼 것은 NULL 처리해주는 함수이다. NULL 은 존재하지 않는 것을 의미한다. 우선, NULL에 대해서 자세히 알기 위해서는 DESCRIBE 명령어에 대해서 알아야할 필요가 있다.
DESCRIBE department ;
-- DESCRIBE departments == DESC departments
-- departments 테이블의 컬럼(COLUMN)의 정보를 알려주는 명령어이다.
-- 실행하면 다음과 같이 나온다.
--이름 널? 유형
--DEPARTMENT_ID(부서번호) NOT NULL NUMBER(4) ==> 숫자 타입 (-9999~9999)
--DEPARTMENT_NAME(부서명) NOT NULL VARCHAR2(30)
-- ==> 문자열(String)과 같은 의미.=> 최대 30Byte 까지 입력가능함.
--MANAGER_ID(부서장의 사원번호) NUMBER(6) ==> NUMBER(X)=> X는 입력할 수 있는 범위를 의미.
--LOCATION_ID(부서주소) NUMBER(4)
여기서 뜨는 NOT NULL이 의미하는 것은 필수로 값이 들어와야 함( 반드시 데이터를 입력해야한다는 뜻) 이다. 다시 말하자면, NULL 값이 들어오지 못함을 의미한다. 즉, 컬럼이 NOT NULL 이 없는 경우에, NULL 을 처리해주는 함수가 사용할 경우에 유용하다는 것이다.
NULL은 존재하지 않는 것이므로 ,사칙연산 ( + , - , * , / ) 에 NULL 이 들어가게 된다면 , 그 결과는 무조건 NULL이다. 그렇기에 이러한 것을 방지하기 위해 , NVL( NULL을 처리해주는 함수) 를 사용하는 것이다. 사용 방법은 다음과 같다.
SELECT NVL ( '이순신' , '거북선') , NVL ( NULL , '거북선' )
-- 이순신 거북선 // (아래와 같이 호출된다.)
NVL2('이순신','거북선','구국영웅') , NVL2(null , '거북선','구국영웅' )
-- 거북선 구국영웅 // (아래와 같이 호출된다.)
FROM dual ;
-- dual 은 SELECT 다음에 나오는 값들을 화면에 보여주는 위한 용도로 쓰이는 가상테이블이다.
-- NVL ( A , B ) 는 A가 NULL 인 경우에 , B가 호출 된다.
-- NULL 이 아닌 경우에는 원래 A에 입력된 데이터 값이 출력된다.
-- NVL2 ( A, B, C ) 는 A가 NULL 인 경우에는 C가 호출된다.
-- A가 NULL 이 아닌 경우에는 B가 호출된다.
다음과 같이 NULL 을 처리해주는 함수를 이용해서, 컬럼들끼리 사칙연산을 할 경우에 , NULL 값이 단순히 NULL 로 처리되는 것이 아니라, 자신이 원하는 데이터 값을 줘서 다양하게 표현 할 수 있다.
''국비지원'의 시작' 카테고리의 다른 글
오라클 비긴즈 03 ( VIEW ) (0) | 2023.02.07 |
---|---|
오라클 비긴즈 02 ( 기타함수 (CASE WHEN ... 함수 , DECODE 함수 ) ) (0) | 2023.02.06 |
자바 비긴즈 15 ( Block , Final , Interface ) (0) | 2023.01.25 |
자바 비긴즈 14 ( StringBuilder) (0) | 2023.01.19 |
자바 비긴즈 12 ( 객체 지향 프로그래밍의 4가지 특징) (0) | 2023.01.19 |