성장일기 : 문과생의 개발 여정 (งᐖ)ว ( ᐛ )و

테이블생성 Quiz >> 1:N 관계의 개체들을 테이블로 생성해보기 본문

백엔드개발/DATABASE

테이블생성 Quiz >> 1:N 관계의 개체들을 테이블로 생성해보기

hyemi_flora 2023. 11. 7. 10:05

1101 수업내용_

/*

Quiz >>  1:N 관계의 개체들을 테이블로 생성해보세요

09_JOIN_1대N 관계.txt
0.00MB

*/

 

CREATE TABLE onlinelibraries (

    library_id VARCHAR2(10) primary key,

    book_name VARCHAR2(100),

    book_location VARCHAR2(5),

    book_price NUMBER(10),

    author VARCHAR2(20),

    publisher VARCHAR2(10), -- 도서 출판사

    publish_date DATE,

    book_category VARCHAR2(10)

);

 

 

CREATE TABLE readers(

    reder_id VARCHAR2(10) primary key,

    reader_name VARCHAR2(5),

    library_id VARCHAR2(10)

);

 

 

 

 

 

/*

테이블이름 : 축구팀

컬럼명 : 소속팀, 팀이름, 감독, 경기장번호, 주장....

컬럼타입 : number, varchar2, varchar2, number, number

기본키컬럼 : team_id

외래키 커럼 : 주장

 

테이블이름 : 축구선수

컬럼명 : 선수번호(pk), 이름, 나이, 포지션, 국적(fk), 소속팀번호(fk)....

컬럼타입 : number, varchar2, number

기본키컬럼 : 선수번호

외래키 커럼 : 국적, 소속팀번호

*/

CREATE TABLE SoccerStadium (

    stadium_id NUMBER(5),

    stadium_name VARCHAR2(30),

    stadium_address VARCHAR2(100)

);

 

CREATE TABLE SoccerTeam(

    team_id NUMBER(5),

    team_name VARCHAR2(30),

    team_owner VARCHAR2(10),

    home_stadium_id NUMBER(5), --  SoccerStadium과의 1:1관계 외래키사용

    team_leader_id NUMBER(8) -- SoccerPlayer player_id 와의 1:1관계 외래키 사용

);

 

CREATE TABLE SoccerPlayer(

    player_id NUMBER(8),

    player_eng_name VARCHAR2(25), -- 영어는 한 글자가 1바이트 차지

    player_kor_name VARCHAR2(40), -- 한글은 한 글자가 3바이트 차지

    player_position VARCHAR2(3),

    player_back_number NUMBER(2),

    country_id CHAR(2), -- countries 테이블에서 가져올 fk 외래키

    team_in NUMBER(5) -- SoccerTeam 테이블에서 가져올 fk 외래키

);