데이터베이스와 테이블 생성하기

Daeun Kim·2022년 11월 9일
0

SQL

목록 보기
14/31
  1. 데이터 유형
    가부 -> true / false
    문자
    숫자
    시간
    ...
    데이터베이스를 생성할 때는 데이터가 어떻게 저장될지를 이해하고 생성해야 함
    https://www.postgresql.org/docs/current/datatype.html
    데이터 종류에 따라 데이터 크기가 다를 수 있는데, 그 크기가 숫자 단위 / 문자 수 등을 한정하기 때문에 중요하다. 위 문서에서 각 데이터 유형별 특성을 확인할 수 있다.
    'How to store phone number in PostgreSQL' 같은 식으로 검색하면 해당 데이터를 저장하는 권장되는 전형적인 세팅을 찾을 수 있다.

SERIAL 데이터 유형은 주문번호처럼 특정한 규칙으로 자동생성되는 고유값을 의미한다. 각 값은 고유값이므로 중간 값이 삭제되는 경우에도 다른 값은 변화하지 않는다.

  1. 기본키 및 외래키
    기본키란 테이블에서 완벽하게 유니크한 값을 가지는 열을 의미한다.
    유니크하기 때문에 JOIN 등에서 대상으로 잡기 좋다.
    대표적으로 주문번호 등이 있다.

외래(기타)키란 다른 표의 행을 고유하게 식별하는 테이블의 필드이다. 다른 테이블과 어떤 관계를 가지고 있느냐에 따라 외래키의 숫자를 결정한다.
propertu
완벽하게 유니크하진 않지만 기본키를 식별하고 구별하는 데 도움이 된다.
대표적으로 고객 아이디 등이 있다.

기본키와 외래키는 무조건적인 것은 아니고, 해당 테이블이 어떤 값을 중점적으로 하고 있느냐에 따라 다르게 설정할 수 있다.

pgadmin에서는 테이블 내의 constraints의 황금키로 기본키를 식별할 수 있다.

혹은 constraints의 property값을 확인함으로서 해당 값이 무엇을 레퍼런스로 하고 있는지도 확인이 가능하다.

  1. 제약 조건
    제약이란 표에 있는 데이터 열에 적용되는 규칙이다.
    조건을 활용함으로서 데이터베이스에 잘못된 값이 입력되지 않도록 관리할 수 있다 (엑셀의 데이터 유효성검사와 유사한것으로 추정)

대표적인 제약 조건은
NOT NULL -> 빈값이 없게
UNIQUE -> 열 내의 모든 값이 유니크하게
=> UNIQUE (열 목록)
CHECK -> 행의 모든 값이 특정한 조건을 만족할 것 (20 이하 등)
=> CHECT (condition)
REFERENCES -> 모든 값이 특정 열에 있어야 함
PRIMARY KEY-> 열 내의 모든 값이 유니크하게, 기본적으로는 한개로 설정되나 다중 기본키도 가능하다.
=> PRIMARY KEY (열 목록)

  1. 테이블 생성
CREATE TABLE 테이블이름 
(열이름1 TYPE 열 데이터 유형,열이름2 TYPE 열 데이터 유형, 테이블 조건) 
INHERITS 다른 테이블 (다른 테이블과 연결될 경우)

CREATE TABLE players (player_id SERIAL PRIMARY KEY, age SMALLINT NOT NULL)

CREATE TABLE account(
	user_id SERIAL PRIMARY KEY, 
	username VARCHAR(50) UNIQUE NOT NULL,
	password VARCHAR(50) NOT NULL,
	email VARCHAR(250) UNIQUE NOT NULL,
	created_on TIMESTAMP NOT NULL,
	last_login TIMESTAMP
	)
    
CREATE TABLE account_job(
user_id INTEGER REFERENCES account (user_id),
job_id INTEGER REFERENCES job (job_id),
hire_date TIMESTAMP
)

데이터 베이스에 쿼리툴을 실행하여 테이블 생성의 쿼리를 입력하면 신규 테이블이 생성됨

테이블 이름은 중복되어 생성될 수 없다.
필요시 기존 테이블 이름 등을 수정하는 것이 필요하다.

profile
공부하는 것들을 적는 블로그.

0개의 댓글