코멘트, 컬럼추가/제거, 테이블 데이터 삭제, NULL 처리/관련 함수

유동현·2022년 10월 8일
0

오라클

목록 보기
3/18

코멘트

✏️테이블과 컬럼에 코멘트

  • 현재 테이블의 코멘트 확인하기
SELECT *
FROM USER_TAB_COMMENTS;
  • 특정테이블에 코멘트 집어넣기
COMMENT ON TABLE 테이블명 IS '코멘트';
  • 특정테이블의 특정 컬럼에 코멘트넣기
COMMENT ON COLUMN 테이블명.컬럼명 IS '코멘트';
  • 특정테이블의 모든 컬럼 코멘트 확인하기
SELECT *
FROM USER_COL_COMMENTS
WHERE TABLE_NAME='테이블명';


컬럼 추가/제거

➕ 컬럼 추가


ALTER TABLE TBL_EMP 
ADD 컬럼명 CHAR(13);
--구조적으로 수정한다 /TABLE을 /테이블명 라는/ 추가해서  /데이터 타입이 CHAR인 컬럼명이라는 이름의 칼럼을

➖ 컬럼 제거

ALTER TABLE 테이블명
DROP COLUMN 컬럼명;
--구조적 수정/ 테이블명 라는 테이블을 / 지운다 COLUMN을 컬럼명이라는/
--컬럼의 입장에서는 제거되는 것이나 테이블의 입장에선 구조적 수정이기에 ALTER

테이블 데이터 삭제

DELETE TABLE 테이블명
--DROP 과의 차이점은 DROP은 테이블 자체를 삭제하나
--DELETE는 데이터만 삭제

Null

👁‍🗨오라클에서 Null의 처리

SELECT NULL, NULL+2, NULL*2, NULL-2, NULL/2
FROM DUAL;
--==>>(NULL) (NULL) (NULL)   (NULL) (NULL)

-- NULL 은 상태의 값을 의미하며.. 실제 존재하지 않는 값이기 때문에
-- 이 NULL 이 연산에 포함될 경우...
-- 그 결과는 무조건 NULL 이다.

테이블에서 NULL값을 조회하는법


SELECT ENAME "사원명",JOB "직종명", SAL "급여", COMM "커미션"
FROM TBL_EMP
WHERE COMM IS NULL;
--NULL은 실제로 존재하는 값이 아니므로
--일반적인 연산자를 활용하여 비교할 수 없다.
--NULL을 대상으로 사용할 수 없는 연산자들
--  >=  ,   <=  ,>  ,<  , !=   [<>, ^=(둘이 같지않다)] 이렇게 못씀

Null값이 아닌값을 조회하는법

--1번째 방법
SELECT ENAME, JOB, SAL, COMM
FROM TBL_EMP
WHERE COMM IS NOT NULL; -- ! = NOT 

-- 2번째 방법
SELECT ENAME, JOB, SAL, COMM
FROM TBL_EMP
WHERE NOT COMM IS NULL; -- ! = NOT

NULL 처리함수

NVL

--○NVL() --첫번째 파라미터가 NULL 이면 두번째 파라미터를 반환
          --첫번째 파라미터가 NULL이 아닐경우 첫번째 파라미터 반환
SELECT NULL "COL1", NVL(NULL,10) "COL2", NVL(5,10) "COL3"
FROM DUAL;
--(NULL)	10	5

NVL2

--○NVL2()
--첫 번째 파라미터 값이 NULL이 아닌 경우, 두번째 파라미터 값을 반환하고
--첫 번째 파라미터 값이 NULL인 경우, 세번째 파라미터 값을 반환한다.

SELECT ENAME "사원명", NVL2(COMM, '청기', '백기') "수당확인"
FROM TBL_EMP;
--NULL인 경우 백기 , 아닌경우 청기

COALESCE

--○ COALESCE()
-->매개변수의 갯수 제한이 없다.
--맨 앞에 있는 매개변수부터 차례로 NULL 인지 아닌지 확인하여
--NULL 이 아닐경우 반환, NULL인 경우 그다음 매개변수의 값을 반환한다.
--NVL() 이나 NVL2() 와 비교하여
--모~~~든 경우의 수를 고려할 수 있다는 특징을 가진다.

SELECT NULL "COL1"
,COALESCE(NULL,NULL,NULL,40) "COL2"
,COALESCE(NULL,NULL,30,NULL,NULL,60) "COL3"
FROM DUAL;
-- (null)  40  30  
--즉 NULL이 아닌값이 나올때까지 찾아보는듯 다만 NULL이 아닌것이 나오면 출력하고 종료

0개의 댓글