생각하는 감쟈
[Oracle] SQL - DDL 본문
DDL
- 데이터 베이스내의 객체 (object)를 생성, 변경, 삭제를 위한 명령
1. 테이블 생성 명령
CREATE TABLE 테이블 명(
컬럼명 데이터타입[크기] [DEFAULT 값][,]
:
컬럼명 데이터타입[크기] [DEFAULT 값][,]
[CONSTRAINT 기본키설정명 PRIMARY KEY(컬럼명[,컬럼명,...]) [,]
CONSTRAINT 기본키설정명 PRIMARY KEY(컬럼명) REFERENCES 테이블명 (컬렁명) [ON SELETE CASCADE] [,]
:
CONSTRAINT 기본키설정명 FOREIEN KEY(컬럼명) REFERENCES 테이블명 (컬렁명) [ON SELETE CASCADE] [,]);
- 테이블 명 : 생성할 테이블이름으로 기존의 테이블명과 중복되어서는 안됨
- 컬럼명 : 테이블에 포함될 컬럼명으로 한나의 테이블에서 유일한 값이어야하며 다른 테이블 내에서
같은 이름이 사용 될 수 있음
- 데이터 타임 : 오라클에서 사용되는 자료 타임
- DEFAULT 값 : 데이터 입력시 (INSERT 문) 사용자가 해당 컬럼에 저장될 값을 지정하지 않으면 자동으로 저장될 값
- 기본키설정명 : 기본키설정에 부여되는 이름으로 유일성 최소성을 충족
- PRIMARY KEY(컬럼명[컬러명,...]) : 기본키로 정의할 컬렁명, 기본키가 하나 이상의 컬러으로 구성되면 ','로 구분
- 외래키설정명 : 외래키설정에 부여되는 이름으로 유일한 값이여야하면 하나이상의 외래키가 설정되면
각각 다른 이름이 부여 되어야 함
- FOREIEN KEY(컬럼명) : 외래키로 사용될 컬럼명
- REFERENCES 테이블명 (컬렁명) : 해당 외래키가 참조하는 부모테이블명과 부뫁테이블에서 사용하고있는 컬럼명
- ON SELETE CASCADE : 부모태이블에서 해당 행이 삭제(DELETE) 될 경우 자식 데이블에서 먼저
해당 자료를 삭제한 후 부모테이블의 자료를 삭제할 수 있도록 설정
사용예) 상품테이블(Goods)를 생성하시오
---------------------------------------------------------------
컬럼명 데이터타임 기본값 PK/FK여부
---------------------------------------------------------------
GID VARCHAR2(4) PK
GNAME VARCHAR2(50)
PRICE NUMBER(7) 0
---------------------------------------------------------------
CREATE TABLE GOODS(
GID VARCHAR2(4),
GNAME VARCHAR2(50),
PRICE NUMBER(7) DEFAULT 0,
CONSTRAINT pk_goos PRIMARY KEY(GID));
사용예) 고객테이블(CUSTOMERS)를 생성하시오
---------------------------------------------------------------
컬럼명 데이터타임 기본값 PK/FK여부
---------------------------------------------------------------
GID CHAT(4) PK
CNAME VARCHAR2(30)
---------------------------------------------------------------
CREATE TABLE CUSTOMERS(
CID CHAR(4),
CNAME VARCHAR(30),
CONSTRAINT pk_customers PRIMARY KEY(CID));
사용예) 주문 테이블(ORDERS)를 생성하시오
---------------------------------------------------------------
컬럼명 데이터타임 기본값 PK/FK여부
---------------------------------------------------------------
ORDER_ID NUMBER(5) PK
ORDER_DATE DATE
CID CHAR(40 FK
---------------------------------------------------------------
CREATE TABLE ORDERS(
ORDER_ID NUMBER(5),
ORDER_DATE DATE,
CID CHAR(4),
CONSTRAINT pk_orders PRIMARY KEY(ORDER_ID),
CONSTRAINT fk_ors_cust FOREIGN KEY(CID)
REFERENCES CUSTOMERS(CID));
사용예) 주문상품 테이블(ORDER_GOODS)를 생성하시오
---------------------------------------------------------------
컬럼명 데이터타임 기본값 PK/FK여부
---------------------------------------------------------------
ORDER_ID NUMBER(5) PK & FK
GID VARCHAR2(4) PK & FK
ORDER_QTY NUMBER(4) 0
---------------------------------------------------------------
CREATE TABLE ORDER_GOODS(
ORDER_ID NUMBER(5),
GID VARCHAR2(4),
ORDER_QTY NUMBER(4) DEFAULT 0,
CONSTRAINT pk_order_goods PRIMARY KEY(ORDER_ID,GID),
CONSTRAINT fk_ogoods_orders FOREIGN KEY(ORDER_ID)
REFERENCES ORDERS(ORDER_ID),
CONSTRAINT fk_ogoods_goods FOREIGN KEY(GID)
REFERENCES GOODS(GID));
2. ALTER명령
- 테이블명변경, 컬렁 추가, 컬렁 삭제, 컬럼 데이터 타입 변경, 컬럼명 변경에 사용
1)테이블명 변경
(사용형식)
ALTER TABLE 원본테이블명 RENAME TO 변경된테이블명;
- 부모 테이블의 이름이 변경되면 외래키 설정에 사용된 부모테이블의 이름은 자동 변경된
- 변경된 테이블명은 ROLLBACK되지 않음
사용예) GOODS 테이블 이름을 PRODUCT로 변경하시오.
ALTER TABLE GOODS RENAME TO PRODUCT;
'Language > Oracle' 카테고리의 다른 글
[Oracle] SQL 연산자_02 : 기타 연산자 (1) | 2024.03.12 |
---|---|
[Oracle] SQL 연습 문제 HW01 (0) | 2024.03.11 |
[Oracle] SQL SELECT : 자료 검색 명령 (0) | 2024.03.08 |
[Oracle] SQL Data_Type : 데이터 숫자 날짜 2진수 (0) | 2024.03.08 |
[Oracle] DateBase / 관계형 데이터 모델 개념 (0) | 2024.03.06 |