2월 18일 배운 것 정리
컬럼 구조의 추가 및 제거
컬럼 구조의 추가 및 제거를 할 때에는 ALTER 를 사용한다.
ALTER TABLE TBL_EMP
ADD SSN CHAR(13);
SSN 컬럼을 추가하고 있다.
--○ 다시 SSN 컬럼 구조적으로 제거
ALTER TABLE TBL_EMP
DROP COLUMN SSN;
--==>> Table TBL_EMP이(가) 변경되었습니다.
※ NULL 처리
SELECT NULL, NULL+2, 10-NULL, NULL*2, 2/NULL
FROM DUAL;
--==>> (NULL) (NULL) (NULL) (NULL)
NULL 은 상태의 값을 의미하며, 물리적으로는 실제 존재하지 않는 값이기 때문에
연산에 NULL 값이 포함될 경우, 그 결과는 무조건 NULL 이 나온다.
SELECT ENAME, JOB, SAL, COMM
FROM TBL_EMP
WHERE COMM IS NULL;
NULL 인 값을 검색하기 위해서는 IS NULL 을 사용한다.
→ NULL 은 실제 존재하는 값이 아니기 때문에 일반적인 연산자를 활용하여 비교할 수 없다.
○ NVL( )
→ 첫 번째 파라미터 값이 NULL 이면, 두 번째 파라미터 값을 반환한다.
→ 첫 번째 파라미터 값이 NULL 이 아니면, 그 값을 그대로 반환한다.
SELECT ENAME "사원명", NVL(COMM, 0) "수당"
FROM TBL_EMP;
COMM 이 NULL 값이라면 0을 반환하고, NULL 이 아니라면 COMM 값을 반환하는 것.
○ NVL2( )
→ 첫 번째 파라미터 값이 NULL 이 아닌 경우, 두 번째 파라미터 값을 반환하고
첫 번째 파라미터 값이 NULL 인 경우, 세 번째 파라미터 값을 반환한다.
SELECT ENAME "사원명", NVL2(COMM, '청기올려', '백기올려') "수당확인"
FROM TBL_EMP;
--==>>
/*
SMITH 백기올려
ALLEN 청기올려
WARD 청기올려
JONES 백기올려
:
*/
○ COALESCE( )
→ 매개변수 제한이 없는 형태로 인지하고 활용한다.
→ 맨 앞에 있는 매개변수부터 차례로 NULL 인지 아닌지 확인하여
NULL 이 아닐 경우 반환하고,
NULL 인 경우에는 그 다음 매개변수의 값을 반환한다.
NVL( ) 이나 NVL( )2 와 비교하여 모든 경우의 수를 고려할 수 있다는 특징을 갖는다.
SELECT NULL "COL1"
, COALESCE(NULL, NULL, NULL, 30) "COL2"
, COALESCE(NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100) "COL3"
, COALESCE(NULL, 10, NULL, NULL, NULL, NULL, NULL, 100) "COL4"
FROM DUAL;
--==>> (null) 30 100 10
NULL 아닌 값이 나올 때까지 값을 반환하는 것 !
'공부 > Oracle' 카테고리의 다른 글
ORACLE DB :: UPPER( ), LOWER( ), INITCAP( ) (0) | 2022.03.03 |
---|---|
ORACLE DB :: NULL 이 아닌 값만 얻어오기 (0) | 2022.03.01 |
ORACLE DB :: ROW_NUMBER( ) 와 SEQUENCE, INNER JOIN, OUTER JOIN (0) | 2022.02.27 |
ORACLE :: ROLLUP, CUBE, GROUPING SETS, HAVING절 (0) | 2022.02.24 |
ORACLE :: WHERE 조건절, IN, CREATE, DESCRIBE, COMMENT (0) | 2022.02.23 |