SQL 8-4. 명시적(Explicit) 기본 기능 개요
관련링크
본문
․ 명식적 기본 기능을 사용하면 열 기본값이 필요한 경우 DEFAULT키워드를 열값으로 사용할 수 있다.
․ 이 기능은 SQL:1999표준을 준수하기 위해 추가되었다.
․ 이 기능을 통해 데이터에 기본값이 적용될 위치 및 시기를 제어할 수 있다.
․ 명시적 기본값은 INSERT 및 UPDATE문에 사용할 수 있다.
① 명시적 기본값
DEFAULT키워드는 INSERT 및 UPDATE문에서 기본 열 값을 지정하는 데 사용할 수 있다.
기본값이 존재하지 않는 경우, 널 값이 사용된다.
예제) 명시적(Explicit) 기본값 사용 : INSERT에 사용된 DEFAULT
오라클 디비 예제 :
UPDATE table
SET column = value [, column = value, ...]
[WHERE condition];
구문 설명 :
table 테이블 이름입니다.
cloumn 테이터를 갱신할 테이블의 열 이름이다.
value 열의 값 또는 서브 쿼리다.
condition 갱신된 행을 식별하며 열 이름,표현식,상수,서브 쿼리 및 비교 연산자로 구성된다.
MSSQL 디비 예제 :
publishers (pub_id, pub_name, country)
VALUES (300, 'Engineering', DEFAULT);
MSSQL 디비 예제 :
publishers
SET country=DEFAULT WHERE pub_id = 9999
(department_id, department_name, manager_id)
VALUES (300, 'Engineering', DEFAULT);
☞설명) 명시적 기본값 사용
열의 기본값으로 지정해 둔 값을 열에 설정하려면 DEFAULT를 지정한다.
해당열에 기본값이 지정되지 않은 경우 널이 설정된다.
예제에서 INSERT문은 MANAGER_ID열에 대해 기본값을 사용한다.
이 열에 정의된 기본값이 없는 경우 널 값이 대신 삽입된다.
예제)
오라클 디비 예제 : UPDATE departments
SET manager_id=DEFAULT WHERE department_id = 10;
☞설명)
예제는 UPDATE문을 사용하여 MANAGER_ID열을 기본값인 부서10으로 설정한다.
이 열에 정의된 기본값이 없는 경우 값을 널로 변경한다.
참고 : 테이블을 생성할 때 기본값을 지정할 수 있다.
create table test (
id int not null,
lname varchar(10) default 'mm',
date datetime
)
insert into test (id) values(123)
select * from test
create table test1 (
id int not null,
lname varchar(10) default 'mm',
date datetime default getdate()
)
insert into test1 (id) values(123)
select * from test1
select * from titles