$bash

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