카테고리 없음
[SQL] 데이터 정의어 - CREATE 문, ALTER 문, DROP 문
혀내
2022. 11. 8. 17:25
반응형
CREATE 문
- 테이블 구성
- 속성과 속성에 관한 제약 정의
- 기본키 및 외래키 정의
- PRIMARY KEY: 기본키
- FOREIGN KEY: 외래키
- 외래키 수정 또는 삭제 시 동작 설정: ON UPDATE , ON DELETE
CREATE TABLE 테이블이름
( {속성이름 데이터타입 [NOT NULL | UNIQUE | DEFAULT 기본값 | CHECK 체크조건]}
[PRIMARY KEY 속성이름들]
{FOREIGN KEY 속성이름 REFERENCES 테이블이름(속성이름)] [ON DELETE] [CASCADE | SET NULL | NO ACTION]}
)
속성의 데이터 타입 종류
데이터 타입 | 설명 | 비슷한 타입 |
NUMBER(p, s) | - p자리 정수, s자리 소수 - p와 s 생략 시 NUMBER(8,2)로 저장 |
DECIMAL(p, s) NUMBER[(p, s)] INTEGER INT SMALLINT |
CHAR(n) | - 문자열 고정길이 - 남은 공간은 공백으로 채움 |
CHARACTER(n) CHAR(n) |
VARCHAR2(n) | - 문자열 가변길이 - 4000 byte까지 저장 |
CHARACTER(n) VARYING(n) CHAR(n) VARYING(n) |
DATE | - 날짜형 - 연도/월/날/시간 지정 |
예시 문제)
다음과 같은 속성을 가진 NewOrders 테이블을 만드시오.
- orderid(주문번호) - NUMBER, 기본키
- custid(고객번호) - NUMBER, NOT NULL, 외래키(NewCustomer.custid, 연쇄삭제)
- bookid(도서번호) - NUMBER, NOT NULL
- saleprice(판매가격) - NUMBER
- orderdate(판매일자) - DATE
CREATE TABLE NewOrders(
orderid NUMBER,
custid NUMBER NOT NULL,
bookid NUMBER NOT NULL,
saleprice NUMBER,
orderdate DATE,
PRIMARY KEY (orderid),
FOREIGN KEY (custid) REFERENCES NewCustomer(custid) ON DELETE CASCADE
);
ALTER 문
- 테이블의 속성과 속성에 관한 제약 변경
- 기본키 및 외래키 변경
- 속성 또는 제약사항 추가/제거: ADD , DROP
- 속성 기본값 설정 및 삭제: MODIFY
ALTER TABLE 테이블이름
[ADD 속성이름 데이터타입]
[DROP COLUMN 속성이름]
[MODIFY 속성이름 데이터타입]
[MODIFY 속성이름 [NULL | NOT NULL]]
[ADD PRIMARY KEY(속성이름)]
[[ADD | DROP] 제약이름]
예시 문제)
NewBook 테이블의 bookid 속성에 NOT NULL 제약조건을 적용하시오.
ALTER TABLE NewBook MODIFY bookid NUMBER NOT NULL;
DROP 문
테이블의 구조와 데이터를 모두 삭제 ↔ DELETE 문: 데이터만 삭제
DROP TABLE 테이블이름
반응형