--[!] 테이블제약조건
--[0] tempdb 사용
Use TempDB
Go
--[1] 실습용테이블생성: 간단한줄공지사항(뉴스) 게시판
-- 글번호, 카테고리, 제목, 링크, 타겟, 작성일
Create Table Categories
(
CategoryID --[!] 카테고리일련번호
Int --[0] 데이터형식
Identity(1, 1) --[1] 자동증가값: 1부터1씩증가
Primary Key, --[2] 기본키(고유한식별자(Identifier)) : 레코드구분하는유일한값
-- 기본키는NOT NULL 포함, UNIQUE도포함
CategoryName --[!] 카테고리이름
VarChar(25)
Not Null --[3] 널값제약: NOT NULL : 반드시값입력, NULL(널허용)
)
Go
Create Table dbo.FrontBoards
(
ItemID --[!] 일련번호
Int Identity(1, 1) Primary Key,
Title
VarChar(150) Not Null
Unique, --[4] 유일키제약: 테이블에서유일한값(중복불가)
Url VarChar(255)
Null, --[5] 널제약: NULL : 값을입력하지않아도무관
[Target] VarChar(10) Null
Check --[6] 체크제약: 주어진데이터만입력허용
(
Target In('_top', '_blank', '_parent', '_self')
),
CreatedDate DateTime
Default(GetDate()), --[7] 기본값제약: 레코드생성시기본값부여
CategoryID Int
References Categories(CategoryID) --[8] 외래키: 다른테이블의기본키와동일한값
)
Go
--[1] 예시데이터입력: 자동증가값체크
Insert Into Categories Values('공지');
insert Categories Values('뉴스');
Select * From Categories Order By CategoryID Asc
--[2] 기본값(Default) 제약조건
Insert Into FrontBoards
Values ('닷넷코리아', 'http://www.dotnetkorea.com', '_blank', Default, 1);
Insert Into FrontBoards(Title, Url, Target, CategoryID)
Values('비주얼아카데미', 'http://www.VisualAcademy.com', '_self', 2);
Select * From FrontBoards
--[3] 널값체크
--Insert Into FrontBoards(Url) Values('http://www.JavaCampus.com');
--[4] 유일키제약조건확인
--Insert Into FrontBoards
--Values ('닷넷코리아', 'http://www.dotnetkorea.com', '_blank', Default, 1);
--[5] 체크제약조건
--Insert Into FrontBoards
--Values ('자바캠퍼스', 'http://www.JavaCampus.com', '_main', Default, 1);
--[6] 외래키(Foreign Key)
--Insert Into FrontBoards
--Values ('자바캠퍼스', 'http://www.JavaCampus.com', '_blank', Default, 3);