파게로그
DDL 본문
테이블 생성(Create Table)
- 새로운 테이블 생성
- 기본키, 외래키, 제약사항 등을 설정할 수 있음
Create Table EMP
(
empno number(10) primary key,
ename varchar2(20),
sal number(6)
);
제약조건 사용, CASCADE 사용
Create Table DEPT
(
deptno VARCHAR2(4) PRIMARY KEY,
deptname VARCHAR2(20)
);
Create Table EMP
(
empno number(10),
ename varchar2(20),
sal number(10,2) default 0, -- 기본값을 0으로 지정, 소수점 둘째자리까지 저장
deptno varchar2(4) not null,
createdate date default sysdate, -- 기본값을 sysdate(년/월/일)로 지정
constraint emppk primary key(empno) -- PK와 PK의 이름을 지정
constraint deptfk foreign key(deptno)
references dept(deptno) -- DEPT 테이블의 DEPTNO 칼럼에 대해서 FK 생성
ON DELETE CASCADE -- 참조관계(PK-FK 관계)가 있을 경우 참조되는 데이터를 자동으로 반영
-- 자신이 참조하고 있는 테이블의 데이터가 삭제되면 자동으로 자신도 삭제됨
-- 이를 통해 참조 무결성 준수 가능
);
테이블 변경(Alter Table)
- 생성된 테이블 변경
- 칼럼 추가, 변경, 삭제
- 기본키, 외래키 설정
테이블명 변경
ALTER TABLE EMP
RENAME TO NEP_EMP;
칼럼 추가
ALTER TABLE EMP
ADD (age NUMBER(2) DEFAULT 1);
칼럼 변경(데이터 타입, 데이터의 길이 변경, 제약조건 설정)
ALTER TABLE EMP
MODIFY (ename VARCHAR2(40) NOT NULL);
칼럼 삭제
ALTER TABLE EMP
DROP COLUMN age;
칼럼명 변경
ALTER TABLE EMP
RENAME COLUMN ename TO new_ename;
테이블 삭제(Drop table)
- 해당 테이블 삭제
- 테이블의 데이터 구조와 데이터까지 모두 삭제
DROP TABLE EMP;
옵션: 해당 테이블의 데이터를 FK로 참조한 슬레이브 테이블과 관련된 제약사항도 삭제
DROP TABLE EMP CASCADE CONSTRAINT;
뷰 생성과 삭제
- 뷰란 테이블로부터 유도된 가상의 테이블
- 실제 데이터를 가지고 있지 않음
- 테이블을 참조해서 원하는 칼럼만을 조회할 수 있게 함
- 데이터 딕셔너리(data dictionary)에 SQL문 형태로 저장하되 실행 시에 참조됨
뷰의 특징
- 참조한 테이블이 변경되면 뷰도 변경됨
- 뷰의 검색은 참조한 테이블과 동일하게 할 수 있음
- 뷰에 대한 입력, 수정, 삭제는 제약이 있음
- 한 번 생성된 뷰는 변경할 수 없고, 변경을 원하면 삭제 후 재생성해야 함
- ALTER문을 통한 뷰 변경은 불가
- 장점
- 특정 칼럼만 조회할 수 있기 때문에 보안성이 향상됨
- 데이터 관리가 간단함
- SELECT문이 간단해짐
- 하나의 테이블에 여러 개의 뷰를 생성할 수 있음 - 단점
- 뷰는 독자적인 인덱스를 만들 수 없음
- 삽입, 수정, 삭제 연산이 제약됨
- 데이터 구조를 변경할 수는 없음
CREATE VIEW T_EMP AS
SELECT * FROM EMP;
SELECT * FROM T_EMP; --뷰 조회
DROP VIEW T_EMP; --뷰 삭제 (참조했던 테이블이 삭제되지는 않음)
테이블의 구조 확인(Desc Table)
- 테이블의 구조를 확인
DESC EMP;
'콤퓨타 왕기초 > SQLD/JDBC/Oracle DB' 카테고리의 다른 글
WHERE문 사용 (0) | 2021.03.17 |
---|---|
DML (0) | 2021.03.16 |
SQL의 종류 (0) | 2021.03.16 |
관계형 데이터베이스(relational database) (0) | 2021.03.16 |
분산 데이터베이스 (0) | 2021.03.16 |
Comments