1. 테이블 생성

Oracle SQL 에서 테이블 생성
식당 테이블
CREATE TABLE restaurant
(
phone VARCHAR2(15) NOT NULL,
name VARCHAR2(100),
address VARCHAR2(200),
password VARCHAR2(200),
regdate TIMESTAMP DEFAULT CURRENT_DATE,
CONSTRAINT PK_restaurant PRIMARY KEY (phone)
);
메뉴 테이블
CREATE TABLE menu
(
no NUMBER NOT NULL,
name VARCHAR2(100) NOT NULL,
price NUMBER DEFAULT 0 NOT NULL,
content CLOB,
regdate TIMESTAMP DEFAULT CURRENT_DATE,
phone VARCHAR2(15) NOT NULL,
CONSTRAINT PK_menu PRIMARY KEY (no)
);
--외래키
ALTER TABLE menu
ADD CONSTRAINT FK_restaurant_TO_menu
FOREIGN KEY (phone)
REFERENCES restaurant (phone);
고객 테이블
CREATE TABLE customer
(
email VARCHAR2(200) NOT NULL,
password VARCHAR2(200),
phone VARCHAR2(15) ,
address VARCHAR2(200),
chk NUMBER(1),--블랙리스트 체크용. 0 - 블랙리스트
regdate TIMESTAMP DEFAULT CURRENT_DATE,
CONSTRAINT PK_customer PRIMARY KEY (email)
);
주문 테이블
CREATE TABLE ordertbl
(
no NUMBER NOT NULL,
regdate TIMESTAMP DEFAULT CURRENT_DATE,
cnt NUMBER DEFAULT 1,
email VARCHAR2(200) NOT NULL,
menuno NUMBER NOT NULL,
CONSTRAINT PK_ordertbl PRIMARY KEY (no)
);
--주문 테이블의 email은 고객테이블 기본키인 email로 외래키 생성
ALTER TABLE ordertbl
ADD CONSTRAINT FK_customer_TO_ordertbl
FOREIGN KEY (email)
REFERENCES customer (email);
--주문 테이블의 menuno는 메뉴테이블의 기본키 no로 외래키 생성
ALTER TABLE ordertbl
ADD CONSTRAINT FK_menu_TO_ordertbl
FOREIGN KEY (menuno)
REFERENCES menu (no);
배달원 테이블
CREATE TABLE rider
(
phone VARCHAR2(15) NOT NULL,
name VARCHAR2(20) ,
regdate TIMESTAMP DEFAULT CURRENT_DATE,
password VARCHAR2(200),
CONSTRAINT PK_rider PRIMARY KEY (phone)
);
배달 테이블
CREATE TABLE delivery
(
no NUMBER NOT NULL,
regdate TIMESTAMP DEFAULT CURRENT_DATE,
phone VARCHAR2(15) NOT NULL,
orderno NUMBER NOT NULL,
CONSTRAINT PK_delivery PRIMARY KEY (no)
);
-- 배달테이블의 phone은 배달자 테이블 기본키인 phone으로 외래키 생성
ALTER TABLE delivery
ADD CONSTRAINT FK_rider_TO_delivery
FOREIGN KEY (phone)
REFERENCES rider (phone);
-- 배달테이블의 orderno는 주문 테이블의 기본키 no의 외래키 생성
ALTER TABLE delivery
ADD CONSTRAINT FK_ordertbl_TO_delivery
FOREIGN KEY (orderno)
REFERENCES ordertbl (no);
'백엔드 > SQL' 카테고리의 다른 글
Oracle SQL : 2023-03-02 (1) | 2023.03.02 |
---|---|
Oracle SQL : 2023-02-23 (2) (0) | 2023.02.28 |
Oracle SQL : 2023-02-22 (0) | 2023.02.28 |
Oracle SQL : 2023-02-21 (0) | 2023.02.23 |
Oracle SQL과 Eclipse 연동 (0) | 2023.02.23 |