Coding Test

SQL - [DB, Table]

_data 2022. 12. 13. 09:37

DB, Table

지금까지는 DB에서 Query를 했는데 이제는 SQL명령어로 DB와 Table을 생성해보자.

 우선, 데이터 유형을 선택을 하고 저장하는 과정이 필요한데 어떤 데이터 유형을 선택할 것인지 고려해보아야 한다.

예를 들어 전화번호 저장하는데 숫자 유형을 쓸 것인가? Variable Character 형으로 하는 것이 나은 선택일 것이다.

 

 유형 선택에 고민이 든다면 최고의 선례가 잇는 구글링을 하자. 또는 Document를 참조해서 데이터를 저장할 때 어떤 데이터 유형이 있는지 찾아보는 방법도 있다는 것을 기억해두자.

Primary Key

그림 1

[그림 1]을 보면 customer_id가 PK(Primary Key)로 되어있다. 

- 고객 ID로 PK를 두어야 한다. 동명이인이 있을 수 있기 때문이다.

- 결측값은 없어야 한다.

 

Foreign Key

그림 2

[그림 2]를 보면 payment table을 가져온 것을 알 수 있다.

payment_id는 PK로 두고, customer_id는 customer table에 PK로 두었기 때문에 FK(Foreign Key)로 설정해두어야 한다.

 

Constrains

종속성을 시각적으로 확인할 수 있다.

그림 3

[그림 3]은 PostgreSQL, pgAdmin 으로 확인한 모습이다. 

payment table에서 Constrains를 들어가보면 pkey, fkey가 있는데 각각 Primary Key, Foreign Key인 것을 알 수 있다.

그림 4

[그림 4]처럼 Constrains에 있는 Key를 선택해서 Dependencies 탭을 보면 레퍼런스한 테이블을 볼 수 있다.


테이블을 만들 때 알아두어야 제약조건이 있다.

제약조건이란 Table에 있는 데이터 열에 적용되는 규칙이며 Table에 있는 모든 것에 제약을 걸어둘 수 있다.

제약 조건을 걸어두면 DB에 유효하지 않은 데이터가 쓰이지 않도록 방지할 수 있다. 이것은 '정확도'와 '신뢰도'를 보장해준다.

1. NOT NULL 제약조건

NOT NULL규칙을 걸어둘 수 있다.

예를 들어 고객 정보 Table을 만들 때 이메일 항목이 있는데 NOT NULL제한을 걸어두면 고객이 이메일은 꼭 입력을 해야한다.그렇지 않으면 무효칸으로 인식되어 Table에 입력이 거부된다.

2. UNIQUE 제약조건

모든 값이 달라야 한다.

예를 들어 customer_id에 UNIQUE 제약 조건을 걸어두어야 한다.

3. PK키 FK키 제약조건.

Table을 만들 때 실제로 두 키를 규정하는 방법이다.

PK키는 고유하게 식별하고 FK키는 다른 Table 데이터에 제약 조건을 건다. FK를 설정하려면 만들어 놓은 다른 Table과의 관계도 설정해야 한다.