1. 제8장 테이블 생성, 수정, 제거하기
(TABLE CREATE AND MODIFY AND DROP)
이 상덕
2. 2. 테이블 생성: CREATE TABLE문
4. 테이블 이름 바꾸기: RENAME문
3. 테이블 구조 변경: ALTER TABLE문
6. 테이블 제거: DROP TABLE문
5. 테이블 모든 데이터 삭제: TRUNCATE TABLE문
8. 데이터 사젂
7. 삭제된 테이블 복원 & 완젂제거 기능
9. 예제
CONTENTS
1. 테이블 객체 정의
3. -쿼리의 종류
유형 명령문 기능
질의어
DQL(Data Query Language)
SELECT 데이터 검색
데이터 조작어
DML(Data Manipulation Language)
INSERT
UPDATE
DELETE
데이터 입력
데이터 수정
데이터 삭제
데이터 정의어
DDL(Data Definition Language)
CREATE
ALTER
DROP
RENAME
TRUNCATE
DB 객체 생성
DB 객체 변경
DB 객체 삭제
DB 객체 이름 변경
데이터 및 저장 공갂 삭제
트랜잭션 처리어
TCL(Transaction Control Language)
COMMIT
ROLLBACK
SAVEPOINT
트랜잭션의 정상적인 종료 처리
트랜잭션 취소
트랜잭션내에 임시 저장점 설정
데이터 제어어
DCL(Data Control Language)
GRANT
REVOKE
DB 객체 접근 권한 부여
DB 객체 접근 권한 취소
4. 1. 테이블 객체 정의 및 종류
- DB에서 기본적으로 가장 많이 쓰이는 객체.
- ROW로 구성되어 있음.
- 테이블당 1,000개의 칼럼으로 제한
- 데이터의 최대 로우 개수 무제한
종류 설명
Heap-organized table 힙메모리 방식으로 데이터관리
Relational table 각각의 칼럼들로 구성된 테이블.
External table 읽기젂용 테이블. 데이터는 다른 DB에 있음.
5. 2. 테이블 생성(1) - 규칙
1. 영어 대소문자, 한글 가능.
2. 영어 대소문자, 숫자, 특수문자( _ ,$, # ), 한글 혼합 사용
가능.
3. 대소문자 구별 없음. 테이블 명을 소문자로 저장하려면
쌍 따옴표로 묶어줘야 함.
4. 동일 사용자가 소유한 다른 테이블명과 중복되면 안됨.
5. 예약어[키워드]는 안됨!
7. 2. 테이블 생성(3) – 문법_2
CREATE TABLE 테이블 명
AS
SELECT *(전체) or 칼럼 명 or 산술식 AS 별칭
FROM 복사할 테이블 명
[WHERE 0=1]
문제) 테이블(이름: UNIVERSITY)을 생성 해보세요.
(칼럼명: CLASSES & 데이터타입/크기: VARCHAR2(100))
8. 3. 테이블 구조 변경하기(1)
키워드[ADD, MODIFY, SET UNUSED, DROP]
문법
[칼럼추가]
ALTER TABLE 테이블명
ADD
(칼럼이름 데이터타입(크기));
문제) “UNIVERSITY”테이블에, “PROFESSOR”와 “STUDENT”
칼럼(데이터 타입, 크기: VARCHAR2(100)) 추가 해보세요.
9. 3. 테이블 구조 변경하기(2)
키워드[ADD, MODIFY, SET UNUSED, DROP]
문법
[칼럼수정]
ALTER TABLE 테이블명
MODIFY
칼럼이름 데이터타입(크기변경);
문제) “CLASSES” 칼럼에 데이터 타입과 크기를 NUMBER(10)
으로 변경해보세요.
10. 3. 테이블 구조 변경하기(3-1)
키워드[ADD, MODIFY, SET UNUSED, DROP]
-1개 혹은 2개 이상의 칼럼을 사용하지 않을 때 적용.
-당장 칼럼 못 지울때 적용.
-옵션 적용시, 해당 테이블의 응답시갂 빨라짐.
(디스크 공갂 할당이 안되서 DROP했을 때보다 빨라짐.)
-데이터 사젂을 통해 체크 가능.
-1,000개로 제한
-SET USED젃은 존재하지 않음.
11. 3. 테이블 구조 변경하기(3-2)
키워드[ADD, MODIFY, SET UNUSED, DROP]
문법
[칼럼 비활성화]
ALTER TABLE 테이블명
SET UNUSED (칼럼이름);
문제) “CLASSES” 칼럼에 비활성화 옵션을 적용해보세요.
12. 3. 테이블 구조 변경하기(4)
키워드[ADD, MODIFY, SET UNUSED, DROP]
문법
[칼럼 삭제]
ALTER TABLE 테이블명
DROP
COLUMN 칼럼이름;
문제) “STUDENT” 칼럼을 삭제해보세요.
13. 4. 테이블 이름 바꾸기
키워드[RENAME]
문법 RENAME OLD_NAME TO NEW_NAME
문제) “UNIVERSITY”의 이름을 “SCHOOL”로 변경해보세요.
14. 5. 테이블 모든 데이터 삭제
키워드[TRUNCATE]
문법 TRUNCATE TABLE 테이블명;
- 할당된 저장공갂과 인덱스[INDEX]객체도 함께 삭제
- 되돌리기[ROLLBACK] 불가(DDL / AUTO-COMMIT).
- DELETE or FLASHBACK 추천.
- 외래키 제약조건이 활성화된 부모테이블 삭제 안됨.
16. 7. 삭제된 테이블 복원 & 완젂삭제 기능
키워드[FLASHBACK, RECYCLEBIN, PURGE]
1. 현재 접속한 계정의 테이블 모두 조회.
2. 휴지통에 있는 테이블 조회.
3. 삭제된 테이블 복원.
4. 휴지통에 남기지 말고 바로 완젂삭제.
(삭제 후, 1번 에서 처럼 바로 조회.)
5. 휴지통에 있는 특정 테이블 완젂삭제.
6. 휴지통 비우기.
17. 8. 데이터 사젂(1)
접두어 의미
USER_
현재 디비 접속 사용자가 소유한 객체의
정보 제공
ALL_
사용자가 접근 가능한 모든 스키마 정보
제공
DBA_ 데이터베이스 관리를 위한 정보 제공
데이터 사젂(USER_, ALL_, DBA_)
18. 8. 데이터 사젂(2) - (USER_ / ALL_ / DBA_)
종류 비고
USER_TABLES 유저의 테이블 조회
USER_SEQUENCES 유저의 시퀀스 조회
USER_INDEXES 유저의 인덱스 조회
USER_VIEWS 유저의 뷰 조회
USER_UNUSED_COL_TABS 유저의 비활성화 칼럼 조회
ALL_UNUSED_COL_TABS
접근 가능한 모든 비활성화 칼럼
조회
ALL_TABLES 접근 가능한 모든 테이블 조회
19. 8. 데이터 사젂(3) - (USER_ / ALL_ / DBA_)
-> 시스템 관리와 관렦된 뷰.
-> DBA나 시스템 권한을 가진 사용자만 접근가능.
예 : 계정이 SYSTEM 혹은 시스템 권한 가진 사용자.
종류 비고
DBA_OBJECTS 객체정보보기
DBA_CONS_COLUMNS 칼럼의 제약조건 보기
DBA_UNUSED_COL_TABS 비활성화 칼럼 옵션보기
DBA_TABLES 테이블 정보보기