본문 바로가기

Database/MS-SQL

T-SQL 에서 테이블 생성

반응형
테이블 생성 구문

테이블 생성 구문 형식

CREATE TABLE

    [ database_name . [ schema_name ] . | schema_name . ] table_name

        ( { <column_definition> | <computed_column_definition> }

        [ <table_constraint> ] [ ,...n ] )

    [ ON { partition_scheme_name ( partition_column_name ) | filegroup

        | "default" } ]

    [ { TEXTIMAGE_ON { filegroup | "default" } ]

[ ; ]


제약 조건 (기본키제약조건)

데이터의 무결성을 지키기 위한 제한된 조건
즉 특정데이터를 입력할 때 무조건 입력되는것이 아니라 어떠한 조건을 만
쪽했을때에만 입력되도록 제한하는것

* 기본키 제약 조건
테이블의 각 행들을 구분할 수있는 식별자
중복될 수 없고 NULL 값이 입력될 수 없다
기본키로 설정하면 자동으로 클러스터형 인덱스가 생성됨
기본키는 하나의 열 또는 열개의 열을 합쳐서 설정할 수는 있으나 한개만 설정할 수있다

기본키 1개이상 잢을수있다 ㅋㅋ 관련 그림


기본키 설정 예

–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,






코딩하는거 실무에서 많이 쓴단다 알아놓으면 좋아~! 위에 그럼~!!



제약조건 외래 키(Foreign Key)

외래 키(Foreign Key) 제약 조건

두테이블간의 관계를 선언함으로써 데이터의 무결성을 보장해줌
하나의 테이블이 다른테이블을 의존하게 된다
외래키 테이블에 데이터를 입력할 때는 꼭 기준 테이블을 참조해서 입력해야하므로
기준 테이블에 이미 데이터가 존재해야만 한다~!!


위의 그림을 보면 구문 분석이라는 아이콘이있다 이 아이콘은 쿼리 실행하기전에
체크하는것이다 유용할것이다~!!


제약 조건 3 Unique

Unique 제약 조건 (유니크 제약조건) // 디아블로 유니크 아이템 생각해
중복되지 않는 유일한 값을 입력해야 함
Primary Key 제약 조건과 거의 비슷하며 차이점은 NULL 값을 허용(단 1개만)

유니크설정은 매우 간단하다
–CREATE TABLE userTbl
(
userID  nchar(8) NOT NULL PRIMARY KEY,
......
  email  
nchar(30) NULL  UNIQUE
)
–CREATE TABLE userTbl
(
userID  nchar(8) NOT NULL PRIMARY KEY,
  ......
  email  
nchar(30) NULL 
  CONSTRAINT
AK_email  UNIQUE
)

제약 조건 4 Check 제약 조건

Check 제약 조건 
입력되는 데이터를 점검하는 기능
check 제약조건이 설정되면 제약조건에 위배되는 데이터는 입력 안됨
예로 출생년도가 1900년 이후이고 현재시간이전이어야하는 조건을 지정

ex) 대학교 학년 1학년에서 4학년까지만 제한 5가 포함된 그쪽 줄은 데이터를 넣을수없다
Check 설정 예

ALTER TABLE userTbl

  ADD CONSTRAINT CK_birthYear

  CHECK 

          (birthYear >= 1900 AND birthYear <= YEAR(GETDATE()))

NULL 값 허용
기본 개념
–NULL값을 허용하려면 ‘NULL’ 을 허용하지 않으려면 ‘NOT NULL’을 사용.
–Primary Key의 경우 생략하면 자동으로 ‘NOT NULL’이 된다.









.




NULL 과 빈칸은 구분한다



제약조건 5 Default

기본개념  데이터를 입력하지 않았을때 자동으로 입력되는 값을 정의하는 방법
단 값이 직접 명기되면 DEFAULT로 설정된 값은 무시된다
예로 출생년도를 입력하지 않으면 그냥 현재의 연도를 입력하고 
주소를 특별히 입력하지 않았아면 서울이 입력되도록하는것