✏️테이블과 컬럼에 코멘트
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는 데이터만 삭제
SELECT NULL, NULL+2, NULL*2, NULL-2, NULL/2
FROM DUAL;
--==>>(NULL) (NULL) (NULL) (NULL) (NULL)
-- NULL 은 상태의 값을 의미하며.. 실제 존재하지 않는 값이기 때문에
-- 이 NULL 이 연산에 포함될 경우...
-- 그 결과는 무조건 NULL 이다.
SELECT ENAME "사원명",JOB "직종명", SAL "급여", COMM "커미션"
FROM TBL_EMP
WHERE COMM IS 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
--○NVL() --첫번째 파라미터가 NULL 이면 두번째 파라미터를 반환
--첫번째 파라미터가 NULL이 아닐경우 첫번째 파라미터 반환
SELECT NULL "COL1", NVL(NULL,10) "COL2", NVL(5,10) "COL3"
FROM DUAL;
--(NULL) 10 5
--○NVL2()
--첫 번째 파라미터 값이 NULL이 아닌 경우, 두번째 파라미터 값을 반환하고
--첫 번째 파라미터 값이 NULL인 경우, 세번째 파라미터 값을 반환한다.
SELECT ENAME "사원명", NVL2(COMM, '청기', '백기') "수당확인"
FROM TBL_EMP;
--NULL인 경우 백기 , 아닌경우 청기
--○ 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이 아닌것이 나오면 출력하고 종료