SQL 연습1

수랜드·2020년 11월 23일
0
post-thumbnail

데이터 베이스 설계 - 연습

저는 축구를 좋아해서 축구에 관한 DB를 만들어 보려고 합니다.

우선 필요한 테이블을 정리해 보겠습니다.

크게 클럽,선수로 나뉩니다.

다음 클럽 테이블에 들어갈 내용으로는 클럽 이름,창단일,소속 리그,연고지,홈 구장,감독,상징,선수 등이 있습니다.

DDL문 (클럽 테이블)

CREATE table "CLUBS" (
"CLUB_ID" NUMBER(6,0) NOT NULL,
"FOUNDING_DATE" DATE NOT NULL,
"NAME" VARCHAR2(100) NOT NULL,
"LEAGUE" VARCHAR2(100) NOT NULL,
"OINTMENT" VARCHAR2(100) NOT NULL, //연고지
"HOME" VARCHAR2(100) NOT NULL,
"COACH" VARCHAR2(100) NOT NULL,
constraint "CLUBS_PK" primary key ("CLUB_ID")
)

선수 테이블에 들어갈 내용으로는 이름,나이(출생년도),국적,키,몸무게,통산 골,어시스트,클럽 등이 있습니다.

DDL문 (선수 테이블)

CREATE table "PLAYERS" (
"PLAYER_ID" NUMBER(7,0) NOT NULL,
"NAME" VARCHAR2(100) NOT NULL,
"BIRTH_DATE" DATE NOT NULL,
"NATION" VARCHAR2(100) NOT NULL,
"HEIGHT" NUMBER(4,1) NOT NULL,
"WEIGHT" NUMBER(4,1) NOT NULL,
"GOALS"  NUMBER(10,0),
"ASSIST" NUMBER(10,0),
"CLUB_ID" NUMBER(6,0) NOT NULL,
constraint "PLAYERS_PK" primary key ("PLAYER_ID")
);

//선수 테이블은 부모 테이블인 클럽 테이블에 외래키를 지정해줌
ALTER TABLE "PLAYERS" ADD CONSTRAINT "PLAYERS_FK"
FOREIGN KEY ("CLUB_ID")
REFERENCES "CLUBS" ("CLUB_ID");

두 테이블 모두 시퀀스를 만들어 줍니다.

시퀀스란? 자동으로 순차적으로 증가하는 순번을 반환하는 데이터베이스 객체입니다. 보통 PK값에 중복값을 방지하기위해 사용합니다.

create sequence "PLAYERS_SEQ"
start with 1
increment by 1
maxvalue 9999999
minvalue 1
nocache
nocycle
noorder

create sequence "CLUBS_SEQ"
start with 1
increment by 1
maxvalue 999999
minvalue 1
nocache
nocycle
noorder
profile
신입 개발자 입니다...

0개의 댓글