다른 DB만 쓰다가 MSSQL을 처음 써보게 되면서 마주한 nvarchar.. 

이 친구는 또 뭘까..?

 

varchar

흔히 우리가 알고 있는 varchar는 가변 문자열이자 byte수를 기준으로 하여

영문이나 숫자, 특수문자는 1byte로 처리되며 한글이나 중국어는 2byte로 처리되는 것!

nvarchar

이에 반해 nvarchar는 유니코드 지원 가변 문자열로 글자수를 기준으로 하여

영문, 숫자 등 할 것 없이 모든 문자열을 무조건 2byte로 처리한다고 한다..!

따라서, 다국어를 지원할 일이 있으면 nvarchar를 사용하는게 좋다고 한다..^^

반응형

 

 

Q.

학생 테이블에서 성별이 '여'인 학생들의 이름과 성별을 '여학생'이라는 뷰로 정의하는 SQL문을 작성하시오.

(단, 뷰에 대한 수정, 삽입 연산이 실행될 경우 WHERE 절 조건에위배될 경우는 실행을 거부한다.)

 

A. 

CREATE VIEW 여학생(이름, 성별)

AS

SELECT 이름, 성별 FROM 학생 WHERE 성별='여'

WITH CHECK OPTION;

 

 

여기서 WITH CHECK OPTION은 

해당 제약조건 안에서만 insert, delete, update가 가능하다는 것인데

 

즉,

INSERT INTO 여학생 VALUES('김여자', '남'); 와 같이 

위의 view에 수정, 삽입 등의 연산이 실행될 경우 WITH CHECK OPTION의 조건에 어긋나

오류가 나며 실행이 되지 않는다.

반응형

+ Recent posts