CREATE TABLE
테이블 생성형식
CREATE TABLE 테이블 이름 (
컬럼명1 DATATYPE [DEFAULT 형식],
컬럼명2 DATATYPE [DEFAULT 형식],
컬럼명3 DATATYPE [DEFAULT 형식]
);
CREATE TABLE TB_TEST02(
KEY_01 VARCHAR2(10),
KEY_02 VARCHAR2(10),
col_01 VARCHAR2(10),
col_02 VARCHAR2(10),
CONSTRAINT PK_TEST_02 PRIMARY KEY(KEY_01, KEY_02)
);
제약조건은 아래와 같이 붙는다. 테이블 변수명 바로 오른쪽에 선언해 줘도 되지만, 중복선언일때는 바로 위 예제와 같이 바 CONSTRAINT ~~ 부분에 중복선언해주는것이 가능하다.
한 테이블당 PK(Primerykey) 는 32개 까지 가능하다고 한다.
PRIMARY KEY : 고유키라고 하며 데이터를 구별하기 위한 식별키. 다른 테이블에서 참조하고자 할때 해당 칼럼을 통해 다른 값을 불러올 수 있다.
UNIQUE KEY : 테이블에 데이터 저장시 행(세로) 데이터의 중복이 없이 적용되도록함. 주로 EMAIL중복체크를 할때 사용됨.
NOTNULL : NULL값 입력금지 하려 할때 사용한다.
CHECK : 입력할 수 있는 값을 제한한다. (TRUE/FALSE 로 값을 반환)
FOREIGN KEY : 테이블간의 관계를 정의하기위해 다른테이블에 기본키를 다른테이블에 외래키로 지정해둔다. 무결성 제약 조건 옵선을 선택할 수 있다.
테이블 구조확인 : DESC
-> DESC 테이블명;
테이블생성시 테이블 구조와 값을 복사해 올 수 있다.
테이블 복제
CREATE TABEL test01(
AS SELECT * FROM employeers
);
테이블 생성을 선언함과 동시에 AS 를 이용해 복사할 데이터의 양을 SELECT 문을 통해서 설정하면 된다.
테이블 복제 - 데이터값 제외하기
CREATE TABEL test01(
AS SELECT * FROM employeers
WHERE 1=2
);
다음과 같이 구조는 복제하되, 해당 테이블의 값을 제외하고자 할떄 결과 값이 나올수 없는 코드를 입력하면 테이블의 구조만 복사가되고 값은 복사되지 않은 상태로 복제가 된다.
** WHERE 1=2
테이블수정 : 테이블명 수정하기
ALTER TABLE TB_TEST04
RENAME TO TB_TEST99;
테이블수정 : 칼럼추가(단일추가)
ALTER TABLE TB_TEST99
ADD hello VARCHAR(10);
ALTER TABLE [테이블명]
ADD [변경할 테이블명] [자료형](길이);
테이블수정 : 칼럼추가(다수추가)
ALTER TABLE TB_TEST99
ADD (hello1 VARCHAR(10), hello2 VARCHAR(10), hello3 NUMBER(5,2));
ALTER TABLE [테이블명]
ADD (
[변경할 테이블명1] [자료형](길이),
[변경할 테이블명2] [자료형](길이),
[변경할 테이블명3] [자료형](길이),
.........
[변경할 테이블명n ] [자료형](길이)
);
테이블수정 : 칼럼수정(단일)
ALTER TABLE TB_TEST99
ADD hello VARCHAR(10);
ALTER TABLE [테이블명]
MODIFY [변경할 테이블명] [자료형](길이);
테이블수정 : 칼럼수정(복수)
ALTER TABLE TB_TEST99
ADD (hello1 VARCHAR(10), hello2 VARCHAR(10), hello3 NUMBER(5,2));
ALTER TABLE [테이블명]
MODIFY (
[변경할 테이블명1] [자료형](길이),
[변경할 테이블명2] [자료형](길이),
[변경할 테이블명3] [자료형](길이),
.........
[변경할 테이블명n ] [자료형](길이)
);
테이블수정 : 칼럼삭제 (단일삭제)
ALTER TABLE TB_TEST99
ADD hello VARCHAR(10);
ALTER TABLE [테이블명]
DROP [변경할 테이블명] [자료형](길이);
테이블수정 : 칼럼삭제(복수삭제)
ALTER TABLE TB_TEST99
ADD (hello1 VARCHAR(10), hello2 VARCHAR(10), hello3 NUMBER(5,2));
ALTER TABLE [테이블명]
DROP (
[변경할 테이블명1] [자료형](길이),
[변경할 테이블명2] [자료형](길이),
[변경할 테이블명3] [자료형](길이),
.........
[변경할 테이블명n ] [자료형](길이)
);
삭제된 테이블을 복구
FALSHBACK TABLE TB_TEST02
TO BEFORE RECYCLEBIN;