■■■ DEFAULT 표현식 ■■■
1. INSERT 와 UPDATE문에서 사용자가 전달하는 특정 값이 아닌
기본값을 입력하도록 처리할 수 있다.
2. 형식 및 구조
컬럼명 데이터타입 DEFAULT 기본값
3. INSERT 명령 시 해당 컬럼에 입력될 값을 할당하지 않거나
DEFAULT 키워드를 활용하여 기본 값을 입력하도록 할 수 있다.
4. DEFAUT 키워드와 다른 제약(NOT NULL 등) 표기가 같이 오는 경우
DEFAULT 키워드를 먼저 표기(작성)할 것을 권장한다.
*/
-- ● DEFAULT 표현식 실습
-- 테이블 생성
CREATE TABLE TBL_BOARD
(SID NUMBER PRIMARY KEY -- 게시판 테이블 생성
,NAME VARCHAR2(30) -- 게시물 번호 식별자 (자동 증가)
,CONTENTS VARCHAR2(2000) -- 게시물 작성자
,WRITEDAY DATE DEFAULT SYSDATE -- 게시물 내용
,COMMENTS NUMBER DEFAULT 0 -- 게시물 작성일(현재 날짜 자동 입력)
,COUNTS NUMBER DEFAULT 0 -- 게시물 댓글 개수(기본값 0)
); -- 게시물 조회 수(기본값 0 )
--==>>Table TBL_BOARD이(가) 생성되었습니다.
--SID를 자동으로 증가 값으로 운영하려면 시퀀스 객체가 필요하다.
--자동으로 입력되는 컬럼은 사용자가 입력해야하는 항목에서 제외시킬 수 있다.
-- 시퀀스 생성
CREATE SEQUENCE SEQ_BOARD
NOCACHE;
--==>> Sequence SEQ_BOARD이(가) 생성되었습니다.
-- 세션설정 변경
ALTER SESSION SET NLS_DATE_FORMAT='YYYY-MM-DD HH24:MI:SS';
-- 게시물 작성
INSERT INTO TBL_BOARD(SID, NAME, CONTENTS, WRITEDAY, COMMENTS, COUNTS)
VALUES (SEQ_BOARD.NEXTVAL, '이상화', '오라클에서 DEFAULT 표현식을 실습중입니다.'
, TO_DATE('2021-04-06 11:01:13','YYYY-MM-DD HH24:MI:SS'),0,0);
--===>>1 행 이(가) 삽입되었습니다.
INSERT INTO TBL_BOARD(SID, NAME, CONTENTS, WRITEDAY, COMMENTS, COUNTS)
VALUES (SEQ_BOARD.NEXTVAL, '소서현', '계속 실습 중입니다.', SYSDATE,0,0);
--===>>1 행 이(가) 삽입되었습니다.
INSERT INTO TBL_BOARD(SID, NAME, CONTENTS, WRITEDAY, COMMENTS, COUNTS)
VALUES (SEQ_BOARD.NEXTVAL, '이희주', '힘껏 실습 중입니다.', DEFAULT,DEFAULT,DEFAULT);
--===>>1 행 이(가) 삽입되었습니다.
INSERT INTO TBL_BOARD(SID, NAME, CONTENTS)
VALUES (SEQ_BOARD.NEXTVAL, '이희주', '힘껏 실습 중입니다.');
--===>> 1 행 이(가) 삽입되었습니다.
SELECT *
FROM TBL_BOARD;
/*
이상화 오라클에서 DEFAULT 표현식을 실습중입니다. 2021-04-06 11:01:13 0 0
소서현 계속 실습 중입니다. 2021-04-07 09:30:16 0 0
이희주 힘껏 실습 중입니다. 2021-04-07 09:30:54 0 0
이희주 힘껏 실습 중입니다. 2021-04-07 09:32:28 0 0
*/
COMMIT;
--===>>커밋 완료.
-- ● DEFAULT 표현식 확인(조회)
SELECT *
FROM USER_TAB_COLUMNS
WHERE TABLE_NAME='TBL_BOARD';
/* DATA_DEFAULT
TBL_BOARD SID NUMBER (NULL)
TBL_BOARD NAME VARCHAR2 (NULL)
TBL_BOARD CONTENTS VARCHAR2 (NULL)
TBL_BOARD WRITEDAY DATE SYSDATE
TBL_BOARD COMMENTS NUMBER 0
TBL_BOARD COUNTS NUMBER 0
*/
-- 테이블 생성 이후 DEFAULT 표현식 추가 / 변경
ALTER TABLE 테이블명
MODIFY 컬럼명[자료형] DEFAULT 기본값;
-- 테이블 생성 이후 DEAULT 표현식 제거(삭제)
ALTER TABLE 테이블명
MODIFY 컬럼명[자료형] DEFAULT NULL;
최근에는 조회수를 내부적으로 같은 IP 로그기록 안에서 유효한 카운팅 뽑아내도록 설계를 해둔다 같은 PC에서 정해진 시간안에 또 클릭했을 때 안올라가도록 만든다. 계속 클릭해도 일정수 올라간 다음에 올라가지 않는다. 계속 11로 머물러 있습니다. 그러니까 예전이랑은 다른 방식으로 처리가 되기는 합니다.
'📚Study Note > ORACLE' 카테고리의 다른 글
[ ORACLE ] DELETE │ VIEW (0) | 2021.04.08 |
---|---|
[ ORACLE ] UPDATE : 테이블에서 기존 데이터를 변경 + 업데이트 실수를 백업테이블로 다시 수정하기 (0) | 2021.04.07 |
[ ORACLE ] NOT NULL(NN:CK:C) (0) | 2021.04.07 |
[ ORACLE ] FOREIGN KEY(FK : F: R) (0) | 2021.04.07 |
[ ORACLE ] CHECK(CK : C) (0) | 2021.04.06 |