SQL - SQL?
0x0300 : Study/0x0305 : SQL데이터 형식
문자데이터
// char, nchar, varchar, nvarchar [n 은 유니코드허용. var는 주소같은 값?..]
숫자 데이터
// int(정수) , real(실수) , bit (0 또는 1)
날짜/시각 데이터
// datetime 밀리초까지 나타낸다.
// smalldatetime 분 까지 나타낸다.
기본키
데이터의 무결성을 지키기 위한 제한된 조건
// 특정 데이터를 입력할 때 무조건 입력되는 것이 아니라, 어떠한 조건을 만족했을 때에만 입력되도록 제한하는 것
테이블의 각 행들은 구분할 수 있는 식별자
중복될 수 없고, NULL값이 입력될 수 없음
기본 키로 설정하면 자동으로 클러스터형 인덱스가 생성됨.
// CREATE TABLE userTbl
// ( userID nchar(8) NOT NULL PRIMARY KEY, name nvarchar(10) NOT NULL)
// CREATE TABLE userTbl
// ( userID nchar(8) NOT NULL CONSTRAINT PK_userID PRIMARY KEY, name nvarchar(10) NOT NULL)
Unique
중복되지 않는 유일한 값을 입력해야 함.
primary key 제약조건과 거의 비슷하며 차이점은 Null값을 허용한는 것(대개 후보키에 설정)
// CREATE TABLE userTbl
// ( userID nchar(8) NOT NULL PRIMARY KEY ... email nchar(30) NULL UNIQUE )
외래 키 (foreign key)
두 테이블 간의 관계를 선언함으로써 데이터의 무결성을 보장해 줌
외래키 관계를 설정하게 되면 하나의 테이블이 다른 테이블에 의존하게 됨
'외래키 테이블'에 데이터를 입력할 때는 꼭 '기준 테이블'을 참조해서 입력하므로, '기준 테이블'에 이미 데이터가 존재해야만 함.
// CREATE TABLE userTbl
// ( userID nchar(8) NOT NULL PRIMMARY KEY, ..... ) GO
// CREATE TABLE buyTbl
// ( num int NOT NULL PRIMARY KEY, userid nchar(8) NOT NULL FOREIGN KEY REFERENCES userTbl(userID) )
데이터 무결성 (Integrity)
개체 무결성
// 기본키가 Null 값을 가질 수 없음
// 이렇게 되면 모든 필드는 키필드에 종속 됨
도메인 무결성
// 필드의 유효한 값만을 허용
// 데이터 타입, Null 허용여부 등이 도메인 무결성을 지켜 줌
참조 무결성
// 외래키가 참조하는 기본키는 반드시 존재해야 함
// 외래키가 참조하고 있는 기본키는 임의로 삭제 불가
Check
입력되는 데이터를 점검하는 기능
Check 제약조건이 설정되면 제약조건에 위배되는 데이터는 입력 안됨
// 출생년도가 1900년 이후이고 현재 시간 이전이어야 하는 조건을 지정
// ALTER TABLE userTbl
// ADD CONSTRAINT CK_birthYear
// CHECK
// (birthYear >= 1900 AND birthYear <= YEAR(GETDATE()))
Default
데이터를 입력하지 않았을 때 자동으로 입력되는 값을 정의하는 방법
//단, 값이 직접 명기되면 DEFAULT로 설정된 값은 무시
// CREATE TABLE userTbl
// userID nchar(8) NOT NULL PRIMARY KEY, name nvarchar(10) NOT NULL, brith Year int NOT NULL DEFAULT YEAR (GETDATE())....
'0x0300 : Study > 0x0305 : SQL' 카테고리의 다른 글
SQL - 트랜잭션 작동 및 복구 (1) | 2016.06.15 |
---|---|
SQL - 기초 (0) | 2016.06.15 |