1. TABLE 정의
테이블이 어떻게 구성될 것인지를 정의 즉 필드 설계
2. TABLE 생성 (CREATE)
-
테이블 생성 명령
CREATE TABLE [테이블이름] (
[컬럼이름] [*데이터타입] {*제약조건},
[컬럼이름] [*데이터타입] {*제약조건},
);
* 필드 데이터 타입
* 필드 제약조건 (Constraint)
(1) PRIMARY KEY - 고유한 키 값이 되는 필드
(2) NOT NULL - 반드시 입력이 되어야 하는 필드 (즉, NULL로 두어서는 안되는 필수요소)
(3) DEFAULT - 입력 안되면 기본값으로 지정된 값이 필드에 저장
-
테이블 생성 예
위의 1. 테이블정의에서 작성한 필드 설계 표를 토대로 테이블을 생성하면 다음과 같다.
SQL> CREATE TABLE phonebook (
id NUMBER PRIMARY KEY,
name VARCHAR2(10) NOT NULL,
phone VARCHAR2(14) DEFAULT '010-0000-0000',
memo CLOB,
regDate DATE
);
-
테이블 생성 주의사항
1) 테이블명은 객체를 의미할 수 있는 적절한 이름을 사용한다. 가능한 단수형을 권고한다.
2) 테이블 명은 다른 테이블의 이름과 중복되지 않아야 한다.
3) 한 테이블 내에서는 컬럼명이 중복될 수 없다.
4) 테이블 이름을 지정하고 각 컬럼들은 괄호 "( )" 로 묶어 지정한다.
5) 컬럼 뒤에 데이터 유형은 꼭 지정되어야 한다.
6) 테이블명과 컬럼명은 반드시 문자로 시작해야 하고, 벤더별로 길이에 대한 한계가 있다.
7) 벤더에서 사전에 정의한 예약어(Reserved word)는 쓸 수 없다.
8) A-Z, a-z, 0-9, _, $, # 문자만 허용된다.
9) 테이블 생성시 대/소문자 구분은 하지 않는다. (기본적으로 테이블이나 컬럼명은 대문자로 만들어진다.)
10) DATE 유형은 별도로 크기를 지정하지 않는다.
11) 문자 데이터 유형은 반드시 가질 수 있는 최대 길이를 표시해야 한다.
-
생성된 테이블의 구조 확인
SQL> DESC [테이블명];
3. TABLE 수정 (ALTER)
생성한 테이블의 구조를 수정하는 작업은 ALTER 명령어로 실행되며 컬럼의 데이터타입, 제약조건등을 수정하거나 /
새로운 컬럼을 추가하거나 / 컬럼을 삭제하는 등 3가지로 분류된다.
(1) 컬럼의 수정 (ALTER - MODIFY)
ALTER TABLE [테이블이름]
MODIFY (
[수정할 컬럼이름] [변경할 컬럼타입],
[수정할 컬럼이름] [변경할 컬럼타입]
);
(2) 새로운 컬럼 추가 (ALTER - ADD)
ALTER TABLE [테이블이름]
ADD (
[컬럼이름] [컬럼타입]{제약조건},
);
* 단! 오라클에서 새로 추가되는 컬럼은 반드시 테이블의 맨 뒤에 위치한다.
(3) 컬럼 삭제 (ALTER - DROP)
ALTER TABLE [테이블이름]
DROP COLUMN [컬럼이름] ;
+) 기존에 설정한 primary key를 해제시키는 것도 컬럼을 삭제하는 명령문과 그 꼴이 같다
ALTER TABLE test_member DROP primary key;
(4) 컬럼 이름 변경 (ALTER - RENAME COLUMN ~TO ~)
ALTER TABLE [테이블이름]
RENAME COLUMN [컬럼이름] TO [변경할 컬럼이름] ;
4. 테이블 목록 확인 (현재 접속된 계정이 소유한)
SQL> SELECT tname FROM tab;
SQL> SELECT table_name FROM all_tables WHERE owner='사용자명(대문자)';
5. 테이블 삭제
DROP TABLE [테이블 명] CASCADE CONSTRAINT PURGE;
* CASCADE CONSTRAINT : 제약조건도 함께 삭제
* PURGE : DB에서 데이터를 삭제하면 PC의 휴지통처럼 삭제된 데이터를 보관하는 기능이 있는데,
그 단계를 거치지 않고 영구적으로 삭제하겠다는 의미
'SQL > Oracle' 카테고리의 다른 글
06_SQL함수(1) 단일행함수: 문자함수 (0) | 2019.09.20 |
---|---|
05 _ SQL기초 (4) Select문 사용과 WHERE 조건절 (0) | 2019.09.18 |
04_SQL 기초 (3) DML의 기본 (0) | 2019.09.16 |
02_SQL 기초 (1) DBMS 접속 (0) | 2019.09.11 |
01 _ DB의 정의와 관계형데이터베이스 (0) | 2019.09.11 |