🪩/기타

[SQL] 제약 조건 연습 문제

S0 2024. 1. 29. 16:05

 

~오늘의 수강 과목~

1. Node.js 숙련 1주차 (이용우 튜터님)

_ SQL 제약 조건


 

1 : N

-- 1 : n
-- 1개의 출판사는 n개의 책이름을 가질 수 있다

CREATE TABLE Publisher (
    publisherId int(11) NOT NULL AUTO_INCREMENT PRIMARY KEY,
    publisherName varchar(255) NOT NULL,
    publisherAddress varchar(255) NOT NULL
);

CREATE TABLE Books (
    bookId int(11) NOT NULL AUTO_INCREMENT PRIMARY KEY,
    publisherId int(11) NOT NULL,
    bookName varchar(255) NOT NULL,
    FOREIGN KEY (publisherId) REFERENCES Publisher (publisherId) -- 왼쪽이 현재테이블, 오른쪽이 퍼블리셔 테이블
);

 

 

 

1 : 1

-- 1 : 1
-- 1개의 별은 1개의 세부정보를 가질 수 있다

CREATE TABLE Star (
    starId int(11) NOT NULL AUTO_INCREMENT PRIMARY KEY
)

CREATE TABLE StarInfo (
    starInfoId int(11) NOT NULL AUTO_INCREMENT PRIMARY KEY,
    starId int(11) NOT NULL UNIQUE, -- UNIQUE 속성 추가
    name varchar(255) NOT NULL,
    magnitude varchar(255) NOT NULL,
    distance varchar(255) NOT NULL,
    FOREIGN KEY (starId) REFERENCES Star (starId)
)

 

 

 

N : M

-- n : m
-- 한명의 아이돌은 소속사를 가지지 않거나 여러개의 소속사를 가질 수 있음 / 소속사는 아이돌을 가지지 않거나 여러명을 소속시킬 수 있음


CREATE TABLE Idol (
    idolId int(11) NOT NULL AUTO_INCREMENT PRIMARY KEY,
    name varchar(255) NOT NULL UNIQUE,
    age int(11) NULL,
    gender enum('F', 'M') NOT NULL
);

CREATE TABLE Production (
    productionId int(11) NOT NULL AUTO_INCREMENT PRIMARY KEY,
    productionName varchar(255) NOT NULL UNIQUE,
    address varchar(255) NOT NULL UNIQUE
);

CREATE TABLE ProductionMember (
    productionMemberId int(11) NOT NULL AUTO_INCREMENT PRIMARY KEY,
    idolId int(11) NOT NULL,
    productionId int(11) NOT NULL,
    debutDate date NOT NULL,
    FOREIGN KEY (idolId) REFERENCES Idol (idolId),
    FOREIGN KEY (productionId) REFERENCES Production (productionId)
);

 

 

 

 

'🪩 > 기타' 카테고리의 다른 글

[AWS] ec2 ssh 터미널 진입 방법  (0) 2024.02.13
[mysql] mac m1Homebrew, mysql 설치 방법  (1) 2024.02.07
관계형, 비관계형 데이터베이스  (1) 2024.01.28
동기(Sync), 비동기(Async)  (1) 2024.01.23
자료구조 스택, 큐  (1) 2024.01.08