카테고리 없음

Oracle(2022.02.04)-DDL(CREATE)

AIN99 2022. 2. 7. 20:29
728x90

DDL(DATA DEFINITION LANGUAGE)

1.CREATE TABLE
-테이블 생성명령
  (사용형식)

 CREATE TABLE 테이블명(
  컬럼명 데이터 타입[(크기)] [NOT NULL] [DEFAULT 값] [,]
                    :
  컬럼명 데이터 타입[(크기)] [NOTNULL] [DEFAULT 값] [,]
 [CONSTRAINT 기본키설정명 PRIMARY KEY(컬럼명[컬럼명,...]) [,]]
 [CONSTRAINT 외래키설정명 FOREIGN KEY(컬럼명)
  REFERENCES 참조테이블명(컬럼명)] [,] 
                 :
 [CONSTRAINT 외래키설정명 FOREIGN KEY(컬럼명)
   REFERENCES 참조테이블명(컬럼명)]);


 -테이블명과 컬럼명은 사용자정의어를 이용하여 구성
 =>첫 글자는 영문자이고 두번째글자부터 숫자도 사용가능
    특수문자는 '_'와 '$'만 사용 가능
    예약어와 같은 단어 사용할 수없음
 -'데이터 타입': CHAR, VARCHAR2, DATE, NUMBER, CLOB, BLOB, BFILE 등 사용
 - '기본키설정명':기본키를 설정한 것에 대한 인덱스로 중복된 단어를 사용할 수 없다.
 - '외래키설정명':외래키를 설정한 것에 대한 인덱스로 중복된 단어를 사용할 수 없다.
 - '참조테이블명':부모테이블명


사용예)
 --상품테이블
  CREATE TABLE GOODS(
    GOOD_ID CHAR(4) NOT NULL, --PK
    GOOD_NAME VARCHAR2(30),
    GOOD_PRICE NUMBER(7),
    CONSTRAINT pk_goods PRIMARY KEY(GOOD_ID));

--고객테이블 
  CREATE TABLE CUSTOMERS(
  CUST_ID CHAR(6), --PK
  CUST_NAME VARCHAR2(50) NOT NULL,
  CUST_ADDR VARCHAR2(100),
  CUST_TEL VARCHAR2(20),
  CUST_MILEAGE NUMBER(5) DEFAULT 0,
  CONSTRAINT pk_customers PRIMARY KEY(CUST_ID));
  
--주문테이블
  CREATE TABLE ORDERS(
  ORDER_ID NUMBER(5), --PK
  CUST_ID CHAR(6), --FK
  GOOD_ID CHAR(4), --FK
  ORDER_DATE DATE DEFAULT SYSDATE,
  ORDER_QTY NUMBER(4),
  CONSTRAINT pk_orders PRIMARY KEY(ORDER_ID),
  CONSTRAINT fk_orders_cust FOREIGN KEY(CUST_ID)
    REFERENCES CUSTOMERS(CUST_ID),
  CONSTRAINT fk_orders_goods FOREIGN KEY(GOOD_ID )
    REFERENCES GOODS(GOOD_ID ));
728x90