안규 공부방

MS-SQL > Data Integrity - 정의

등록일 : 2017-07-03 19:33 조회수 : 92,973

오늘의 동물 뉴스 입니다.

한마리의 암컷 돌고래를 놓고 범고래와 흰수염고래가 다투는 사건이 있었습니다.
새우의 신고를 받고 멸치떼가 긴급 출동했지만 돌고래는 이미 사망한 상태였습니다.
싸움에서 승리한 흰수염고래는 '사랑한 것도 죄냐?!'라며 고래고래 소리를 질렀습니다.
신고를 한 새우는 등이 터져 병원으로 옮겨졌으나 중태입니다.


안녕하세요.... 귀염둥이  안규랍니다.
 
오늘은 지금가지와는 달리 예제를 위주로 글을 쓰도록 하겠습니다. 그리구, 문법이 아닌
예제로 나오기 때문에 여러분도 지루하지 않고도 금방 하실수 있을꺼란 생각을 해 봅니다.
 
오늘의 주제는 DEFAULT 입니다....
디폴트는 테이블의 컬럼 단위로 정의도며, 컬럼에 말그대로 디폴트로  저장되는 값입니다.
이값은 컬럼에 데이터가 저장될때 구체적인 값을 명시하지 않으면 대신 저장됩니다.
 
1. 문법
[CONSTRAINT constraint_name]
DEFAULT constraint_expression ...
 
2. 고려사항

1) 테이 블에 데이터가 추가될때 자동으로 적용됩니다.
Insert 문에서 Default values 또는 Default 키워드를 사용하면 자동으로 기본값이
저장됩니다.
2) Default Constraints는 컬럼 당 하나만 사용할 수 있습니다.
3) NULL값 허용 컬럼일때 레코드를 추가하면서 명시적으로 NULL값을 지정하면 null값이
저장됩니다.
3) IDENTITY나 timestamp 데이터 타입의 컬럼에는 사용할수 없습니다.
    
그럼 간단한 테스트를 해 보도록 하겠습니다.



위의 그림을 보면 Create table 문법중, Default Constraints 사용법이  나와 있습니다.
문법을 보시면 아시겠지만, 어렵지 않으시지여?
  

	ID INT IDENTITY NOT NULL,
	VALUE INT NOT NULL DEFAULT 1,   <-- 디폴트 값으로 1을 준다,,,
	NAME varchar(20) NULL default 'unknown'  <-- 디폴트 값으로 'unknown'을 입력
	DATE DATETIME NULL DEFAULT CURRENT_TIMESTAMP
   
	CURRENT_TIMESTAMP 는 NILADIC 함수 입니다. 
   
	NILADIC 함수를 표면, 
   
	CURRENT_TIMESTAMP  (사용시간) --> (GETDATE()) 로도 사용할수 있습니다. 
	CURRENT_USER       (소유자)   --> (user_name()) 으로 표현할수 있습니다. 
	SESSION_USER       (현재접속하는 사용자) --> (user_name()) 으로 표현할수 있습니다. 
	SYSTEM_USER        (시스템(sql) 사용자) -> (suser_sname()) 로도 표현할수 있습니다.
	USER_NAME


   
다음과 같은 niladic 함수들이 있습니다.
  
직접 테스트 해보시길 바랍니다.
    
아래의 그림은 이제 직접 데이타를 입력해 보도록 하겠습니다.

  
insert defconst default values
문법은 기본값으로 defconst 테이블에 레코드를 추가하라란 뜻입니다.
  
insert defconst(value) values(10)
value 필드에 10값을 넣었구요.(value 필드를 제외한 모든 필드에 기본값으로 들어 가겠죠?)
  
그다음에 select 했습니다. 어때여?
기본적으로 값들이 제대로 들어 가나여?
  
아래의 그림은 현재 테이블에 Constraints가 얼마나 되어 있는가를 나타내는 그림이랍니다.
테이블에 대한 모든 현황을 뽑아볼수 있습니다.
  


사용명령은 저장 프로시져인 'sp_help'를 이용하면 됩니다.
  
sp_help def_test
이케 하면 def_test란 테이블의 Constraints를 확인해 볼수 있습니다.
  
그러면 만약 update를 할때는 Constraints를 사용할수 있는가?
  
대답은 '그렇다' 입니다.
  
다음의 예를 보도록 하겠습니다.
  
update defconst set value=DEFAULT <-- 기본값인 1이 들어가겠지요. where id=4

위와 같이 사용하시면 됩니다.

오늘은 여기까지만 하기루 하구요...
어떠셨는지요...
전 최선을 다해서 글을 적었는데두,,,,, 한것이 하나두 없는거 같이 허전하군요..
해놓구 보니 역시 별것두 아니구나 하는 생각두 들구요..
  
그러나, 이제 시작인 만큼,,, 좀더 공부하다보면,, 멋진게 하나씩 나오지 않을까
하는 생각을 해 봅니다.
  
오늘 ,,, 짱나네여... 불쾌지수가 상당히 높은거 같은 생각이 들어여,,
에이... 일 못하겠당,, 스타나 한판 해야....헤헤~~~
  
여러분 건강하세요.
 
※ 혹시 도움이 되셨다면 댓글에 한마디 남겨주세요!
작성자   비밀번호
자동글 방지     (자동글 방지 기능입니다.)
내용   댓글달기 
이메일 문의 : cak0280@nate.com  
Copyright 2000 By ENTERSOFT.KR All Rights Reserved.