본문 바로가기

백엔드/SQL

Oracle SQL : 2023-02-23 (1)

1. 테이블 생성

 

테이블 구상 - VSCode

 

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