1. 테이블 생성
-
데이터베이스를 사용하기 위해 테이블을 먼저 생성해야 함
-
테이블 생성은 Create Table문을 사용하고 테이블 변경은 Alter Table문을 사용함
-
생성된 테이블을 삭제하고 싶을 때는 Drop Table문을 사용함
*Create Table
-
새로운 테이블을 생성
-
테이블을 생성할 때 기본키, 외래키, 제약사항 등을 설정
*Alter Table
-
생성된 테이블 변경
-
칼럼을 추가하거나 변경, 삭제함
-
기본키를 설정하거나 외래키 설정함
*Drop Table
-
해당 테이블을 삭제함
-
테이블의 데이터 구조뿐만 아니라 저장된 데이터도 모두 삭제됨
(1) 기본적인 테이블 생성
-
Create Table: 테이블을 생성함, ‘( )’ 사이에 칼럼을 쓰고 마지막은 세미콜론으로 끝남
-
칼럼 정보: 테이블에 생성되는 칼럼 이름과 데이터 타입 입력(영문, 한글, 숫자 모두 가능)
-
데이터 타입: number는 칼럼 데이터 타입을 숫자형으로 varchar2는 가변 길이 문자열로 지정, char는 칼럼의 데이터 타입을 고정된 크기의 문자로 지정, date는 날짜형 타입으로 지정할 때 사용
-
기본키: 기본키 지정 시 칼럼 옆에 primary key를 입력함
(2) 제약조건 사용
-
기본키, 외래키, 기본값, not null 등은 테이블을 생성할 때 지정할 수 있음
-
constraint를 사용해 기본키와 기본키의 이름을 지정할 수 있음
-
sal 칼럼처럼 number(10, 2)를 사용하면 소수점 둘째 자리까지 저장할 수 있음
-
오라클에서 sysdate는 오늘의 날짜를 조회함
-
외래키를 지정하려면, 먼저 마스테 테이블이 생성 되어야 함
(3) 테이블 생성 시 CASCADE 사용
-
테이블 생성 시 CASCADE 옵션을 사용할 수 있음
-
CASCADE 옵션은 참조관계가 있을 경우 참조되는 데이터를 자동으로 반영할 수 있음
-
먼저, 마스터 테이블을 생성함
-
그 다음 소속하는 테이블을 생성함
-
ON DELETE CASCADE 옵션을 사용하면 자신이 참조하고 있는 테이블의 데이터가 삭제되면 자동으로 자신도 삭제됨
-
ON DELETE CASCADE 옵션 사용하면 참조 무결성 준수 가능함
2. 테이블 변경
(1) 테이블명 변경
-
테이블명 변경은 ALTER TABLE ~ RENAME TO문을 사용함
(2) 칼럼 추가
-
생성된 테이블에 ALTER TABLE ~ ADD 문을 사용해서 칼럼을 추가함
(3) 칼럼 변경
-
ALTER TABLE ~ MODIFY 문을 사용해 칼럼을 변경한다.
-
칼럼 변경을 통해 데이터 타입을 변경하거나 데이터의 길이를 변경하고 제약조건을 설정할 수 있음
-
칼럼 데이터 타입 변경 시 기존 데이터가 있는 경우 에러가 발생함
(4) 칼럼 삭제
-
ALTER TABLE ~ DROP COLUMN문으로 삭제 함
(5) 칼럼명 변경
-
ALTER TABLE ~ RENAME COLUMN ~TO문으로 칼럼명 변경함
3. 테이블 삭제
-
DROP TABLE문을 사용해서 테이블을 삭제 함
-
테이블의 구조와 데이터를 모두 삭제함
-
'CASCADE CONSTRAINT’ 옵션을 사용해 해당 테이블의 데이터를 외래키로 참조한 슬레이브 테이블과 관련된 제약사항도 삭제할 수 있음
4. 뷰(View) 생성과 삭제
-
뷰란 테이블로부터 유도된 가상의 테이블
-
실제 데이터를 갖고 있지 않고 테이블을 참조해서 원하는 칼럼만을 조회할 수 있게 함
-
뷰는 데이터 딕셔너리(Data Dictionary)에 SQL문 형태로 저장하되 실행 시에 참조 됨
-
CREATE VIEW문을 사용하며, 참조할 테이블은 SELECT문으로 지정
-
뷰의 조회는 SELECT문을 사용해서 일반 테이블처럼 조회
-
DROP VIEW로 뷰를 삭제함(참조했던 테이블이 삭제되지는 않음)
*뷰의 특징
-
참조한 테이블이 변경되면 뷰도 변경됨
-
뷰의 검색은 참조한 테이블과 동일하게 할 수 있지만, 뷰에 대한 입력, 수정, 삭제에는 제약이 있음
-
특정 컬럼만 조회해서 보완성을 향상 시킴
-
한번 생성된 뷰는 변경할 수 없고 변경을 원하면 삭제 후 재생성해야 함
-
ALTER문을 사용해 뷰를 변경할 수 없음
*뷰의 장점
-
특정 칼럼만 조회할 수 있어서 보안 기능이 있음
-
데이터 관리가 간단함
-
SELECT문이 간단해짐
-
하나의 테이블에 여러 개의 뷰를 생성할 수 있음
*뷰의 단점
-
독자적인 인덱스를 만들 수 없음
-
삽입, 수정, 삭제 연산이 제약됨
-
데이터 구조를 변경할 수는 없음
'SQL 공부' 카테고리의 다른 글
(SQLD)WHERE문 사용 (0) | 2020.08.22 |
---|---|
(SQLD)DML(Data Manipulation Language) (0) | 2020.08.20 |
(SQLD)DML(Data Manipulation Language) (0) | 2020.08.07 |
(SQLD)관계형데이터베이스(Relation Database)/SQL 종류 (0) | 2020.08.07 |
(SQLD)반정규화(De-Normalization)/분산 데이터베이스 (0) | 2020.08.06 |